cmpxchg_local standardization across architectures
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest28 patches 3 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/28 | Add cmpxchg_local to asm-generic for per cpu atomic operationsinclude/ include/ | +82 | 0 replies | |
| 2/28 | Fall back on interrupt disable in cmpxchg8b on 80386 and 80486arch/ include/ | +85 | 0 replies | |
| 3/28 | Add cmpxchg64 and cmpxchg64_local to alphainclude/ | +2 | 0 replies | |
| 4/28 | Add cmpxchg64 and cmpxchg64_local to mipsinclude/ | +9 | 3 replies | |
| 5/28 | Add cmpxchg64 and cmpxchg64_local to powerpcinclude/ | +6 | 0 replies | |
| 6/28 | Add cmpxchg64 and cmpxchg64_local to x86_64include/ | +2 | 0 replies | |
| 7/28 | Add cmpxchg_local to arminclude/ | +15 | 0 replies | |
| 8/28 | Add cmpxchg_local to avr32include/ | +23 | 0 replies | |
| 9/28 | Add cmpxchg_local to blackfin, replace __cmpxchg by generic cmpxchginclude/ | +12 | 0 replies | |
| 10/28 | Add cmpxchg_local to crisinclude/ | +15 | 0 replies | |
| 11/28 | Add cmpxchg_local to frvinclude/ | +24 | 0 replies | |
| 12/28 | Add cmpxchg_local to h8300include/ | +15 | 0 replies | |
| 13/28 | Add cmpxchg_local, cmpxchg64 and cmpxchg64_local to ia64include/ | +4 | 0 replies | |
| 14/28 | New cmpxchg_local (optimized for UP case) for m32rinclude/ | +97 | 0 replies | |
| 15/28 | Fix m32r __xchginclude/ | +1 | 0 replies | |
| 16/28 | m32r: build fix of arch/m32r/kernel/smpboot.carch/ | +1 | 0 replies | |
| 17/28 | local_t m32r use architecture specific cmpxchg_localinclude/ | +361 | 0 replies | |
| 18/28 | Add cmpxchg_local to m86kinclude/ | +21 | 0 replies | |
| 19/28 | Add cmpxchg_local to m68knommuinclude/ | +11 | 0 replies | |
| 20/28 | Add cmpxchg_local to pariscinclude/ | +29 | 0 replies | |
| 21/28 | Add cmpxchg_local to ppcinclude/ | +48 | 0 replies | |
| 22/28 | Add cmpxchg_local to s390include/ | +34 | 0 replies | |
| 23/28 | Add cmpxchg_local to sh, use generic cmpxchg() instead of cmpxchg_u32include/ | +12 | 0 replies | |
| 24/28 | Add cmpxchg_local to sh64include/ | +15 | 0 replies | |
| 25/28 | Add cmpxchg_local to sparc, move __cmpxchg to system.hinclude/ include/ | +47 | 0 replies | |
| 26/28 | Add cmpxchg_local to sparc64include/ | +25 | 0 replies | |
| 27/28 | Add cmpxchg_local to v850include/ | +15 | 0 replies | |
| 28/28 | Add cmpxchg_local to xtensainclude/ | +22 | 0 replies |
Reviews trailers per patch
6 of 28 patches have a Reviewed-by or Acked-by.
| Patch | Mathieu Desnoyers | Christoph Lameter | Paul Mackerras | Haavard Skinnemoen | Hirokazu Takata |
|---|---|---|---|---|---|
| 1/28 | T-b T-b | T-b | |||
| 2/28 | |||||
| 3/28 | |||||
| 4/28 | |||||
| 5/28 | A-b | ||||
| 6/28 | |||||
| 7/28 | |||||
| 8/28 | A-b | ||||
| 9/28 | |||||
| 10/28 | |||||
| 11/28 | |||||
| 12/28 | |||||
| 13/28 | A-b | ||||
| 14/28 | A-b | ||||
| 15/28 | A-b | ||||
| 16/28 | |||||
| 17/28 | A-b | ||||
| 18/28 | |||||
| 19/28 | |||||
| 20/28 | |||||
| 21/28 | |||||
| 22/28 | |||||
| 23/28 | |||||
| 24/28 | |||||
| 25/28 | |||||
| 26/28 | |||||
| 27/28 | |||||
| 28/28 |
Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes. Scroll the table sideways for all 5 reviewers.
Cover letter [patch 00/28] cmpxchg_local standardization across architectures
Hi,
Here is the patchset that performs cmpxchg_local and cmpxchg64_local standardization across architectures. It uses interrupt save/restore to emulate the atomic operation on architectures lacking such atomic op.
We have seen interesing performance gain in slub on architectures where the local cmpxchg is faster than interrupt disable, namely x86 and amd64. It becomes less interesting on architectures lacking atomic ops and where the only cmpxchg primitive available is almost as fast as irq disable/enable (ia64); a small performance hit can be expected, mostly due to the additionnal memory barriers it adds to the code (and the fact that it is faster to disable interrupts once for a longer time rather than multiple times).
It applies in this order on 2.6.23-mm1 :
add-cmpxchg-local-to-generic-for-up.patch
i386-cmpxchg64-80386-80486-fallback.patch
add-cmpxchg64-to-alpha.patch
add-cmpxchg64-to-mips.patch
add-cmpxchg64-to-powerpc.patch
add-cmpxchg64-to-x86_64.patch
#
add-cmpxchg-local-to-arm.patch
add-cmpxchg-local-to-avr32.patch
add-cmpxchg-local-to-blackfin.patch
add-cmpxchg-local-to-cris.patch
add-cmpxchg-local-to-frv.patch
add-cmpxchg-local-to-h8300.patch
add-cmpxchg-local-to-ia64.patch
add-cmpxchg-local-to-m32r.patch
fix-m32r-__xchg.patch
fix-m32r-include-sched-h-in-smpboot.patch
local_t_m32r_optimized.patch
add-cmpxchg-local-to-m68k.patch
add-cmpxchg-local-to-m68knommu.patch
add-cmpxchg-local-to-parisc.patch
add-cmpxchg-local-to-ppc.patch
add-cmpxchg-local-to-s390.patch
add-cmpxchg-local-to-sh.patch
add-cmpxchg-local-to-sh64.patch
add-cmpxchg-local-to-sparc.patch
add-cmpxchg-local-to-sparc64.patch
add-cmpxchg-local-to-v850.patch
add-cmpxchg-local-to-xtensa.patch
Mathieu
Signature · 9 lines
Mathieu Desnoyers Computer Engineering Ph.D. Student, Ecole Polytechnique de Montreal OpenPGP key fingerprint: 8CD5 52C3 8E3C 4140 715F BA06 3F25 A8FE 3BAE 9A68 -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"[email protected]"> [email protected] </a>