Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1727660

[PATCH v3 0/2] guard virt_spin_lock() with a static key

From Juergen Gross <jgross@suse.com>
Newsgroups linux.kernel
Subject [PATCH v3 0/2] guard virt_spin_lock() with a static key
Date 2017-09-06 19:40 +0200
Message-ID <umMsV-4XV-3@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Show all headers | View raw


With virt_spin_lock() being guarded by a static key the bare metal case
can be optimized by patching the call away completely. In case a kernel
running as a guest it can decide whether to use paravitualized
spinlocks, the current fallback to the unfair test-and-set scheme, or
to mimic the bare metal behavior.

V3:
- remove test for hypervisor environment from virt_spin_lock(9 as
  suggested by Waiman Long

V2:
- use static key instead of making virt_spin_lock() a pvops function

Juergen Gross (2):
  paravirt/locks: use new static key for controlling call of
    virt_spin_lock()
  paravirt,xen: correct xen_nopvspin case

 arch/x86/include/asm/qspinlock.h     | 11 ++++++++++-
 arch/x86/kernel/paravirt-spinlocks.c |  6 ++++++
 arch/x86/kernel/smpboot.c            |  2 ++
 arch/x86/xen/spinlock.c              |  2 ++
 kernel/locking/qspinlock.c           |  4 ++++
 5 files changed, 24 insertions(+), 1 deletion(-)

-- 
2.12.3

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

[PATCH v3 0/2] guard virt_spin_lock() with a static key Juergen Gross <jgross@suse.com> - 2017-09-06 19:40 +0200
  [PATCH v3 2/2] paravirt,xen: correct xen_nopvspin case Juergen Gross <jgross@suse.com> - 2017-09-06 19:40 +0200
  [PATCH v3 1/2] paravirt/locks: use new static key for controlling call of virt_spin_lock() Juergen Gross <jgross@suse.com> - 2017-09-06 19:40 +0200

csiph-web