Messages in this thread | | | Date | Fri, 26 Nov 2010 17:35:23 +0100 | From | Tejun Heo <> | Subject | Re: [thiscpuops upgrade 05/10] x86: Use this_cpu_inc_return for nmi counter |
| |
On 11/24/2010 12:51 AM, Christoph Lameter wrote: > this_cpu_inc_return() saves us a memory access there. > > Signed-off-by: Christoph Lameter <cl@linux.com> > > --- > arch/x86/kernel/apic/nmi.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > Index: linux-2.6/arch/x86/kernel/apic/nmi.c > =================================================================== > --- linux-2.6.orig/arch/x86/kernel/apic/nmi.c 2010-11-23 16:35:19.000000000 -0600 > +++ linux-2.6/arch/x86/kernel/apic/nmi.c 2010-11-23 16:38:29.000000000 -0600 > @@ -432,8 +432,7 @@ nmi_watchdog_tick(struct pt_regs *regs, > * Ayiee, looks like this CPU is stuck ... > * wait a few IRQs (5 seconds) before doing the oops ... > */ > - __this_cpu_inc(alert_counter); > - if (__this_cpu_read(alert_counter) == 5 * nmi_hz) > + if (__this_cpu_inc_return(alert_counter) == 5 * nmi_hz)
Hmmm... one worry I have is that xadd, being not a very popular operation, might be slower than add and read. Using it for atomicity would probably be beneficial in most cases but have you checked this actually is cheaper?
Thanks.
-- tejun
| |