Messages in this thread | | | Date | Fri, 25 Feb 2011 11:38:50 -0600 | From | Christoph Lameter <> | Subject | [cpuops cmpxchg double V3 0/5] this_cpu_cmpxchg_double support |
| |
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. 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.
V2->V3: - Do not use CONFIG_DEBUG_VM to enable cmpxchg diagnostics. Use custom SLUB define instead. - Add patch to move min_partial into a different cacheline. - Rediff
| |