Re: [PATCH] x86/pvqspinlock: Use LOCK_PREFIX in __pv_queued_spin_unlock assembly code
From: Peter Zijlstra
Date: Wed Jul 18 2018 - 04:19:27 EST
On Tue, Jul 17, 2018 at 04:16:00PM -0400, Waiman Long wrote:
> The LOCK_PREFIX macro should be used in the assembly
> __raw_callee_save___pv_queued_spin_unlock code so that the lock prefix
> can be patched out on UP systems.
True; but does paravirt locking realy make sense on UP guests?
> Signed-off-by: Waiman Long <longman@xxxxxxxxxx>
> ---
> arch/x86/include/asm/qspinlock_paravirt.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/arch/x86/include/asm/qspinlock_paravirt.h b/arch/x86/include/asm/qspinlock_paravirt.h
> index 9ef5ee0..159622e 100644
> --- a/arch/x86/include/asm/qspinlock_paravirt.h
> +++ b/arch/x86/include/asm/qspinlock_paravirt.h
> @@ -43,7 +43,7 @@
> "push %rdx;"
> "mov $0x1,%eax;"
> "xor %edx,%edx;"
> - "lock cmpxchg %dl,(%rdi);"
> + LOCK_PREFIX "cmpxchg %dl,(%rdi);"
> "cmp $0x1,%al;"
> "jne .slowpath;"
> "pop %rdx;"
> --
> 1.8.3.1
>