linux/arch
Juergen Gross de7689cf8f x86/xen: Support the vCPU preemption check
Support the vcpu_is_preempted() functionality under Xen. This will
enhance lock performance on overcommitted hosts (more runnable vCPUs
than physical CPUs in the system) as doing busy waits for preempted
vCPUs will hurt system performance far worse than early yielding.

A quick test (4 vCPUs on 1 physical CPU doing a parallel build job
with "make -j 8") reduced system time by about 5% with this patch.

Signed-off-by: Juergen Gross <jgross@suse.com>
Signed-off-by: Pan Xinhui <xinhui.pan@linux.vnet.ibm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: David.Laight@ACULAB.COM
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: benh@kernel.crashing.org
Cc: boqun.feng@gmail.com
Cc: borntraeger@de.ibm.com
Cc: bsingharora@gmail.com
Cc: dave@stgolabs.net
Cc: kernellwp@gmail.com
Cc: konrad.wilk@oracle.com
Cc: linuxppc-dev@lists.ozlabs.org
Cc: mpe@ellerman.id.au
Cc: paulmck@linux.vnet.ibm.com
Cc: paulus@samba.org
Cc: pbonzini@redhat.com
Cc: rkrcmar@redhat.com
Cc: virtualization@lists.linux-foundation.org
Cc: will.deacon@arm.com
Cc: xen-devel-request@lists.xenproject.org
Cc: xen-devel@lists.xenproject.org
Link: http://lkml.kernel.org/r/1478077718-37424-11-git-send-email-xinhui.pan@linux.vnet.ibm.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2016-11-22 12:48:09 +01:00
..
alpha locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
arc Merge branch 'linus' into locking/core, to pick up fixes 2016-11-22 12:37:38 +01:00
arm Merge branch 'linus' into locking/core, to pick up fixes 2016-11-22 12:37:38 +01:00
arm64 Merge branch 'linus' into locking/core, to pick up fixes 2016-11-22 12:37:38 +01:00
avr32 locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
blackfin locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
c6x locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
cris locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
frv locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
h8300 locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
hexagon locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
ia64 locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
m32r locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
m68k locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
metag locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
microblaze locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
mips locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
mn10300 locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
nios2 Merge branch 'linus' into locking/core, to pick up fixes 2016-11-22 12:37:38 +01:00
openrisc locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
parisc locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
powerpc locking/core, powerpc: Implement vcpu_is_preempted(cpu) 2016-11-22 12:48:06 +01:00
s390 locking/spinlocks, s390: Implement vcpu_is_preempted(cpu) 2016-11-22 12:48:06 +01:00
score locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
sh locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
sparc Merge branch 'linus' into locking/core, to pick up fixes 2016-11-22 12:37:38 +01:00
tile Merge branch 'linus' into locking/core, to pick up fixes 2016-11-22 12:37:38 +01:00
um locking/mutex: Kill arch specific code 2016-10-25 11:31:51 +02:00
unicore32 locking/core: Provide common cpu_relax_yield() definition 2016-11-17 08:17:36 +01:00
x86 x86/xen: Support the vCPU preemption check 2016-11-22 12:48:09 +01:00
xtensa Merge branch 'linus' into locking/core, to pick up fixes 2016-11-22 12:37:38 +01:00
.gitignore
Kconfig This adds a new gcc plugin named "latent_entropy". It is designed to 2016-10-15 10:03:15 -07:00