]> git.baikalelectronics.ru Git - kernel.git/commit
ARC: remove SYNC from __switch_to()
authorVineet Gupta <vgupta@synopsys.com>
Tue, 17 Nov 2015 12:16:48 +0000 (17:46 +0530)
committerVineet Gupta <vgupta@synopsys.com>
Tue, 17 Nov 2015 16:35:30 +0000 (22:05 +0530)
commit07438816bd25a4f14fe706c9549d3998dda1cde5
tree1fefc2f6d91f5183a21b6d0708908b2516a0f6ec
parente5f59e7bb7aa4c6f6ea2e21c75c2fde84b551dca
ARC: remove SYNC from __switch_to()

SYNC in __switch_to() is a historic relic and not needed at all.

 - In UP context it is obviously useless, why would we want to stall
   the core for all updates to stack memory of t0 to complete before
   loading kernel mode callee registers from t1 stack's memory.

 - In SMP, there could be potential race in which outgoing task could
   be concurrently picked for running on a different core, thus writes
   to stack here need to be visible before the reads from stack on
   other core. Peter confirmed that generic schedular already has needed
   barriers (by way of rq lock) so there is no need for additional arch
   barrier.

This came up when Noam was trying to replace this SYNC with EZChip
specific hardware thread scheduling instruction for their platform
support.

Link: http://lkml.kernel.org/r/20151102092654.GM17308@twins.programming.kicks-ass.net
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: linux-kernel@vger.kernel.org
Cc: Noam Camus <noamc@ezchip.com>
Signed-off-by: Vineet Gupta <vgupta@synopsys.com>
arch/arc/kernel/ctx_sw.c
arch/arc/kernel/ctx_sw_asm.S