[cpuops cmpxchg double V2 0/4] this_cpu_cmpxchg_double support

From: Christoph Lameter
Date: Thu Jan 06 2011 - 15:45:34 EST


This patch series introduces this_cpu_cmpxchg_double().

x86 cpus support cmpxchg16b and cmpxchg8b instuction which are capable of
switching two words instead of one during a cmpxchg.
Two words allow to swap more state in an atomic instruction.

this_cpu_cmpxchg_double() is used in the slub allocator to avoid
interrupt disable/enable in both alloc and free fastpath.
this_cpu_cmpxchg_double() works nicely with the per cpu data of the
allocator. Using the new operation significantly speeds up the fastpaths.

V1->V2
- Change parameter convention for this_cpu_cmpxchg_double. Specify both
percpu variables in same way as the two old and new values.
- Do not require a per cpu pointer but a variable to conform to the
convention used in other this_cpu_ops.


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/