All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Chris Metcalf <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: tglx@linutronix.de, hpa@zytor.com, peterz@infradead.org,
	cmetcalf@ezchip.com, linux-kernel@vger.kernel.org, efault@gmx.de,
	torvalds@linux-foundation.org, mingo@kernel.org
Subject: [tip:sched/core] tile: Reorganize _switch_to()
Date: Sun, 9 Aug 2015 03:22:59 -0700	[thread overview]
Message-ID: <tip-1eaef888158dc441dcd00c20779251cfa5e756b3@git.kernel.org> (raw)
In-Reply-To: <1438783412-10990-1-git-send-email-cmetcalf@ezchip.com>

Commit-ID:  1eaef888158dc441dcd00c20779251cfa5e756b3
Gitweb:     http://git.kernel.org/tip/1eaef888158dc441dcd00c20779251cfa5e756b3
Author:     Chris Metcalf <cmetcalf@ezchip.com>
AuthorDate: Wed, 5 Aug 2015 10:03:32 -0400
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Sat, 8 Aug 2015 10:29:21 +0200

tile: Reorganize _switch_to()

Move the simulator bits into finish_arch_post_lock_switch() and
properly call __switch_to() from _switch_to().

Signed-off-by: Chris Metcalf <cmetcalf@ezchip.com>
Cc: <efault@gmx.de>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1438783412-10990-1-git-send-email-cmetcalf@ezchip.com
[ Made it a delta to: fe363adb9225 ("sched, tile: Remove finish_arch_switch"). ]
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 arch/tile/include/asm/switch_to.h |  2 ++
 arch/tile/kernel/process.c        | 16 ++++------------
 2 files changed, 6 insertions(+), 12 deletions(-)

diff --git a/arch/tile/include/asm/switch_to.h b/arch/tile/include/asm/switch_to.h
index 422842a..34ee727 100644
--- a/arch/tile/include/asm/switch_to.h
+++ b/arch/tile/include/asm/switch_to.h
@@ -56,6 +56,8 @@ extern unsigned long get_switch_to_pc(void);
  * We defer homecache migration until the runqueue lock is released.
  */
 #define finish_arch_post_lock_switch() do {                               \
+	__insn_mtspr(SPR_SIM_CONTROL, SIM_CONTROL_OS_SWITCH |             \
+		(current->pid << _SIM_CONTROL_OPERATOR_BITS));            \
 	if (current->mm == NULL && !kstack_hash &&                        \
 	    current_thread_info()->homecache_cpu != raw_smp_processor_id()) \
 		homecache_migrate_kthread();                              \
diff --git a/arch/tile/kernel/process.c b/arch/tile/kernel/process.c
index 1087375..7d57693 100644
--- a/arch/tile/kernel/process.c
+++ b/arch/tile/kernel/process.c
@@ -446,26 +446,18 @@ struct task_struct *__sched _switch_to(struct task_struct *prev,
 	hardwall_switch_tasks(prev, next);
 #endif
 
-	/*
-	 * Switch kernel SP, PC, and callee-saved registers.
-	 * Pass the value to use for SYSTEM_SAVE_K_0 when we reset our sp.
-	 * Once we return from this function we will have changed stacks
-	 * and be running with current == next.
-	 */
-	__switch_to(prev, next, next_current_ksp0(next));
-
-	/* Notify the simulator of task switch and task exit. */
+	/* Notify the simulator of task exit. */
 	if (unlikely(prev->state == TASK_DEAD))
 		__insn_mtspr(SPR_SIM_CONTROL, SIM_CONTROL_OS_EXIT |
 			     (prev->pid << _SIM_CONTROL_OPERATOR_BITS));
-	__insn_mtspr(SPR_SIM_CONTROL, SIM_CONTROL_OS_SWITCH |
-		(next->pid << _SIM_CONTROL_OPERATOR_BITS));
 
 	/*
+	 * Switch kernel SP, PC, and callee-saved registers.
 	 * In the context of the new task, return the old task pointer
 	 * (i.e. the task that actually called __switch_to).
+	 * Pass the value to use for SYSTEM_SAVE_K_0 when we reset our sp.
 	 */
-	return prev;
+	return __switch_to(prev, next, next_current_ksp0(next));
 }
 
 /*

      reply	other threads:[~2015-08-09 10:23 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <tip-fe363adb922583bacfbd5a30a4c773ccff9bb393@git.kernel.org>
2015-08-04 13:46 ` [tip:sched/core] sched, tile: Remove finish_arch_switch Chris Metcalf
2015-08-05  7:43   ` Ingo Molnar
2015-08-05 14:03     ` [PATCH v2] " Chris Metcalf
2015-08-09 10:22       ` tip-bot for Chris Metcalf [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=tip-1eaef888158dc441dcd00c20779251cfa5e756b3@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=cmetcalf@ezchip.com \
    --cc=efault@gmx.de \
    --cc=hpa@zytor.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-tip-commits@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.