2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-18 02:04:05 +08:00
linux-next/arch/m68k
Christian Borntraeger 79ab11cdb9 locking/core: Introduce cpu_relax_yield()
For spinning loops people do often use barrier() or cpu_relax().
For most architectures cpu_relax and barrier are the same, but on
some architectures cpu_relax can add some latency.
For example on power,sparc64 and arc, cpu_relax can shift the CPU
towards other hardware threads in an SMT environment.
On s390 cpu_relax does even more, it uses an hypercall to the
hypervisor to give up the timeslice.
In contrast to the SMT yielding this can result in larger latencies.
In some places this latency is unwanted, so another variant
"cpu_relax_lowlatency" was introduced. Before this is used in more
and more places, lets revert the logic and provide a cpu_relax_yield
that can be called in places where yielding is more important than
latency. By default this is the same as cpu_relax on all architectures.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Nicholas Piggin <npiggin@gmail.com>
Cc: Noam Camus <noamc@ezchip.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Will Deacon <will.deacon@arm.com>
Cc: linuxppc-dev@lists.ozlabs.org
Cc: virtualization@lists.linux-foundation.org
Cc: xen-devel@lists.xenproject.org
Link: http://lkml.kernel.org/r/1477386195-32736-2-git-send-email-borntraeger@de.ibm.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2016-11-16 10:15:09 +01:00
..
68000 m68k: Use vsprintf %pM extension 2015-06-16 16:45:38 +10:00
amiga m68k: Use IS_ENABLED() instead of checking for built-in or module 2016-09-19 11:29:45 +02:00
apollo char/genrtc: remove m68k support 2016-06-04 00:23:28 +02:00
atari m68k: Use IS_ENABLED() instead of checking for built-in or module 2016-09-19 11:29:45 +02:00
bvme6000 char/genrtc: remove m68k support 2016-06-04 00:23:28 +02:00
coldfire m68k: let clk_disable() return immediately if clk is NULL 2016-09-26 12:02:59 +10:00
configs m68k/defconfig: Update defconfigs for v4.8-rc1 2016-08-29 10:24:30 +02:00
emu block: change ->make_request_fn() and users to return a queue cookie 2015-11-07 10:40:46 -07:00
fpsp040 Fix common misspellings 2011-03-31 11:26:23 -03:00
hp300 char/genrtc: remove m68k support 2016-06-04 00:23:28 +02:00
ifpsp060 m68k: Assorted spelling fixes 2016-07-03 14:05:28 +02:00
include locking/core: Introduce cpu_relax_yield() 2016-11-16 10:15:09 +01:00
kernel Merge branch 'kbuild' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild 2016-10-14 14:26:58 -07:00
lib m68k: move exports to definitions 2016-08-07 23:47:19 -04:00
mac m68k: Use IS_ENABLED() instead of checking for built-in or module 2016-09-19 11:29:45 +02:00
math-emu m68k: Assorted spelling fixes 2016-07-03 14:05:28 +02:00
mm m68k: move ColdFire _bootmem_alloc code 2016-09-26 12:02:58 +10:00
mvme16x char/genrtc: remove m68k support 2016-06-04 00:23:28 +02:00
mvme147 char/genrtc: remove m68k support 2016-06-04 00:23:28 +02:00
q40 m68k: Use IS_ENABLED() instead of checking for built-in or module 2016-09-19 11:29:45 +02:00
sun3 char/genrtc: remove m68k support 2016-06-04 00:23:28 +02:00
sun3x char/genrtc: remove m68k support 2016-06-04 00:23:28 +02:00
tools/amiga
install.sh kbuild: use INSTALLKERNEL to select customized installkernel script 2009-09-20 12:18:14 +02:00
Kconfig m68k: move CONFIG_FPU set to per-CPU configuration 2016-09-26 12:02:58 +10:00
Kconfig.bus m68k/atari: ROM port ISA adapter support 2013-04-16 21:08:11 +02:00
Kconfig.cpu m68k: move CONFIG_FPU set to per-CPU configuration 2016-09-26 12:02:58 +10:00
Kconfig.debug m68knommu: remove obsolete 68360 support 2016-03-07 10:07:17 +10:00
Kconfig.devices Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k 2014-10-08 05:40:17 -04:00
Kconfig.machine m68knommu: remove obsolete 68360 support 2016-03-07 10:07:17 +10:00
Makefile m68knommu: remove obsolete 68360 support 2016-03-07 10:07:17 +10:00