diff options
author | Jeremy Fitzhardinge <jeremy@goop.org> | 2013-08-09 10:21:54 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2013-08-09 10:53:37 -0400 |
commit | b8fa70b51aa76737bdb6b493901ef7376977489c (patch) | |
tree | ae8815641c8c6fccf88266d43f703d333e70b2aa | |
parent | 80bd58fef495d000a02fc5b55ca76d423400e748 (diff) |
xen, pvticketlocks: Add xen_nopvspin parameter to disable xen pv ticketlocks
Signed-off-by: Jeremy Fitzhardinge <jeremy@goop.org>
Link: http://lkml.kernel.org/r/1376058122-8248-7-git-send-email-raghavendra.kt@linux.vnet.ibm.com
Reviewed-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Signed-off-by: Raghavendra K T <raghavendra.kt@linux.vnet.ibm.com>
Acked-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
-rw-r--r-- | arch/x86/xen/spinlock.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c index a458729be25f..669a971c78fd 100644 --- a/arch/x86/xen/spinlock.c +++ b/arch/x86/xen/spinlock.c | |||
@@ -244,6 +244,8 @@ void xen_uninit_lock_cpu(int cpu) | |||
244 | per_cpu(irq_name, cpu) = NULL; | 244 | per_cpu(irq_name, cpu) = NULL; |
245 | } | 245 | } |
246 | 246 | ||
247 | static bool xen_pvspin __initdata = true; | ||
248 | |||
247 | void __init xen_init_spinlocks(void) | 249 | void __init xen_init_spinlocks(void) |
248 | { | 250 | { |
249 | /* | 251 | /* |
@@ -253,10 +255,22 @@ void __init xen_init_spinlocks(void) | |||
253 | if (xen_hvm_domain()) | 255 | if (xen_hvm_domain()) |
254 | return; | 256 | return; |
255 | 257 | ||
258 | if (!xen_pvspin) { | ||
259 | printk(KERN_DEBUG "xen: PV spinlocks disabled\n"); | ||
260 | return; | ||
261 | } | ||
262 | |||
256 | pv_lock_ops.lock_spinning = xen_lock_spinning; | 263 | pv_lock_ops.lock_spinning = xen_lock_spinning; |
257 | pv_lock_ops.unlock_kick = xen_unlock_kick; | 264 | pv_lock_ops.unlock_kick = xen_unlock_kick; |
258 | } | 265 | } |
259 | 266 | ||
267 | static __init int xen_parse_nopvspin(char *arg) | ||
268 | { | ||
269 | xen_pvspin = false; | ||
270 | return 0; | ||
271 | } | ||
272 | early_param("xen_nopvspin", xen_parse_nopvspin); | ||
273 | |||
260 | #ifdef CONFIG_XEN_DEBUG_FS | 274 | #ifdef CONFIG_XEN_DEBUG_FS |
261 | 275 | ||
262 | static struct dentry *d_spin_debug; | 276 | static struct dentry *d_spin_debug; |