summaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorKirill A. Shutemov <kirill.shutemov@linux.intel.com>2013-11-05 17:06:59 +1100
committerStephen Rothwell <sfr@canb.auug.org.au>2013-11-06 19:59:17 +1100
commitd3c809c9ee55ee5ff9441e8b94c086f4ab135b8a (patch)
treec3e8a338d4d86c55a8a1368b09ed8147c5e54144 /Documentation
parentfa3325e656015e8e17306c53aa13551acdbe76dd (diff)
mm: try to detect that page->ptl is in use
prep_new_page() initialize page->private (and therefore page->ptl) with 0. Make sure nobody took it in use in between allocation of the page and page table constructor. It can happen if arch try to use slab for page table allocation: slab code uses page->slab_cache and page->first_page (for tail pages), which share storage with page->ptl. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/vm/split_page_table_lock4
1 files changed, 4 insertions, 0 deletions
diff --git a/Documentation/vm/split_page_table_lock b/Documentation/vm/split_page_table_lock
index e2f617b732ff..3c54f7dca2d4 100644
--- a/Documentation/vm/split_page_table_lock
+++ b/Documentation/vm/split_page_table_lock
@@ -53,6 +53,10 @@ There's no need in special enabling of PTE split page table lock:
everything required is done by pgtable_page_ctor() and pgtable_page_dtor(),
which must be called on PTE table allocation / freeing.
+Make sure the architecture doesn't use slab allocator for page table
+allacation: slab uses page->slab_cache and page->first_page for its pages.
+These fields share storage with page->ptl.
+
PMD split lock only makes sense if you have more than two page table
levels.