abstract pagetable locking and pte updates
Get series with b4
b4 am [email protected]Versions newest first
- v1 Latest7 patches 12 repliesIn review
Patches in v1 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/7 | abstract pagetable locking and pte updatesmm/ | +38 | 0 replies | |
| 2/7 | abstract pagetable locking and pte updatesinclude/ mm/ mm/ | +38 | 0 replies | |
| 3/7 | abstract pagetable locking and pte updatesmm/ | +7 | 0 replies | |
| 4/7 | abstract pagetable locking and pte updatesarch/ arch/ arch/ +17 more | +1104 | 0 replies | |
| 5/7 | abstract pagetable locking and pte updatesarch/ arch/ include/ | +131 | 0 replies | |
| 6/7 | abstract pagetable locking and pte updatesinclude/ include/ include/ | +58 | 0 replies | |
| 7/7 | abstract pagetable locking and pte updatesarch/ include/ | +38 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.
Cover letter [PATCH 0/7] abstract pagetable locking and pte updates
Hello,
Following are patches that abstract page table operations to allow lockless implementations by using cmpxchg or per-pte locks.
The work is inspired by and uses parts of Christoph Lameter's pte cmpxchg work. It is not a clearly superior approach, but an alternative way to tackle the problem.
It is a lot more intrusive, but it has also gone a bit further in reducing page_table_lock usage. It is also designed with pte locking in mind, which may be needed for PPC64, and will allow 100% removal of the page table lock.
The API is a transactional one, which fitted the problem quite well in my mind. Please read comments for patch 4/7 for a more detailed overview.
It is stable so far on i386 and x86-64. Page fault performance on a quad opteron is up maybe 150%. Oh and it also rids page_referenced_one of the page_table_lock, which could be a win in some situations.
Known issues: Hugepages, nonlinear pages haven't been looked at and are quite surely broken. TLB flushing (gather/finish) runs without the page table lock, which will break at least SPARC64. Additional atomic ops in copy_page_range slow down lmbench fork by 7%.
Comments and discussion about this and/or Christoph's patches welcome. They apply to 2.6.10-rc1-bk7
Thanks,
Nick
--
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>