Thread (1 message) 1 message, 1 author, 2017-09-06

Re: [PATCH v2 1/2] paravirt/locks: use new static key for controlling call of virt_spin_lock()

From: Juergen Gross <jgross@suse.com>
Date: 2017-09-06 17:53:45
Also in: lkml

On 06/09/17 18:13, Waiman Long wrote:
On 09/06/2017 12:04 PM, Peter Zijlstra wrote:
quoted
On Wed, Sep 06, 2017 at 11:49:49AM -0400, Waiman Long wrote:
quoted
quoted
 #define virt_spin_lock virt_spin_lock
 static inline bool virt_spin_lock(struct qspinlock *lock)
 {
+	if (!static_branch_likely(&virt_spin_lock_key))
+		return false;
 	if (!static_cpu_has(X86_FEATURE_HYPERVISOR))
 		return false;
 
Now native has two NOPs instead of one. Can't we merge these two static
branches?

I guess we can remove the static_cpu_has() call. Just that any spin_lock
calls before native_pv_lock_init() will use the virt_spin_lock(). That
is still OK as the init call is done before SMP starts.
Hmm, right. I'll send V3 in some minutes.


Juergen
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help