2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-12-18 10:13:57 +08:00
linux-next/arch/sh/include
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
..
asm locking/core: Introduce cpu_relax_yield() 2016-11-16 10:15:09 +01:00
cpu-common/cpu sh: Remove unused sh_pfc_register_info() function 2013-01-25 09:24:30 +09:00
cpu-sh2/cpu sh: prefix sh-specific "CCR" and "CCR2" by "SH_" 2014-03-04 07:55:49 -08:00
cpu-sh2a/cpu sh: prefix sh-specific "CCR" and "CCR2" by "SH_" 2014-03-04 07:55:49 -08:00
cpu-sh3/cpu sh: prefix sh-specific "CCR" and "CCR2" by "SH_" 2014-03-04 07:55:49 -08:00
cpu-sh4/cpu sh: remove CPU_SUBTYPE_SH7764 2014-08-06 18:01:12 -07:00
cpu-sh4a/cpu sh: remove CPU_SUBTYPE_SH7764 2014-08-06 18:01:12 -07:00
cpu-sh5/cpu sh: Tidy up some of the cpu legacy dma header mess. 2012-05-19 18:30:31 +09:00
mach-common/mach gpio: Include linux/gpio.h instead of asm/gpio.h 2016-02-16 00:20:03 +01:00
mach-dreamcast/mach sh: Kill off MAX_DMA_ADDRESS leftovers. 2012-05-19 18:50:09 +09:00
mach-ecovec24/mach UAPI: (Scripted) Convert #include "..." to #include <path/...> in kernel system headers 2012-10-02 18:01:25 +01:00
mach-kfr2r09/mach sh: kfr2r09: Use lv5207lp backlight 2013-07-17 10:06:18 +09:00
mach-landisk/mach sh: landisk evt2irq migration. 2012-05-18 16:51:36 +09:00
mach-migor/mach fbdev: sh_mobile_lcdc: Remove board configuration board_data field 2012-03-12 22:40:49 +01:00
mach-sdk7786/mach sh: mach-sdk7786: Handle baseboard NMI source selection. 2010-12-17 18:58:04 +09:00
mach-se/mach Merge branch 'sh/dynamic-irq-cleanup' into sh-latest 2012-06-13 12:12:41 +09:00
mach-sh03/mach
mach-x3proto/mach sh: mach-x3proto: Support for baseboard GPIOs. 2010-10-04 02:59:29 +09:00
uapi/asm sh: system call wire up 2016-08-05 03:29:44 +00:00