| .. | .. |
|---|
| 54 | 54 | Support of split page table lock by an architecture |
|---|
| 55 | 55 | =================================================== |
|---|
| 56 | 56 | |
|---|
| 57 | | -There's no need in special enabling of PTE split page table lock: |
|---|
| 58 | | -everything required is done by pgtable_page_ctor() and pgtable_page_dtor(), |
|---|
| 59 | | -which must be called on PTE table allocation / freeing. |
|---|
| 57 | +There's no need in special enabling of PTE split page table lock: everything |
|---|
| 58 | +required is done by pgtable_pte_page_ctor() and pgtable_pte_page_dtor(), which |
|---|
| 59 | +must be called on PTE table allocation / freeing. |
|---|
| 60 | 60 | |
|---|
| 61 | 61 | Make sure the architecture doesn't use slab allocator for page table |
|---|
| 62 | 62 | allocation: slab uses page->slab_cache for its pages. |
|---|
| .. | .. |
|---|
| 74 | 74 | |
|---|
| 75 | 75 | With everything in place you can set CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK. |
|---|
| 76 | 76 | |
|---|
| 77 | | -NOTE: pgtable_page_ctor() and pgtable_pmd_page_ctor() can fail -- it must |
|---|
| 77 | +NOTE: pgtable_pte_page_ctor() and pgtable_pmd_page_ctor() can fail -- it must |
|---|
| 78 | 78 | be handled properly. |
|---|
| 79 | 79 | |
|---|
| 80 | 80 | page->ptl |
|---|
| .. | .. |
|---|
| 94 | 94 | split lock with enabled DEBUG_SPINLOCK or DEBUG_LOCK_ALLOC, but costs |
|---|
| 95 | 95 | one more cache line for indirect access; |
|---|
| 96 | 96 | |
|---|
| 97 | | -The spinlock_t allocated in pgtable_page_ctor() for PTE table and in |
|---|
| 97 | +The spinlock_t allocated in pgtable_pte_page_ctor() for PTE table and in |
|---|
| 98 | 98 | pgtable_pmd_page_ctor() for PMD table. |
|---|
| 99 | 99 | |
|---|
| 100 | 100 | Please, never access page->ptl directly -- use appropriate helper. |
|---|