forked from Minki/linux
49076ec2cc
If split page table lock is in use, we embed the lock into struct page of table's page. We have to disable split lock, if spinlock_t is too big be to be embedded, like when DEBUG_SPINLOCK or DEBUG_LOCK_ALLOC enabled. This patch add support for dynamic allocation of split page table lock if we can't embed it to struct page. page->ptl is unsigned long now and we use it as spinlock_t if sizeof(spinlock_t) <= sizeof(long), otherwise it's pointer to spinlock_t. The spinlock_t allocated in pgtable_page_ctor() for PTE table and in pgtable_pmd_page_ctor() for PMD table. All other helpers converted to support dynamically allocated page->ptl. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Reviewed-by: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
---|---|---|
.. | ||
.gitignore | ||
00-INDEX | ||
active_mm.txt | ||
balance | ||
cleancache.txt | ||
frontswap.txt | ||
highmem.txt | ||
hugetlbpage.txt | ||
hwpoison.txt | ||
ksm.txt | ||
locking | ||
numa | ||
numa_memory_policy.txt | ||
overcommit-accounting | ||
page_migration | ||
pagemap.txt | ||
slub.txt | ||
soft-dirty.txt | ||
split_page_table_lock | ||
transhuge.txt | ||
unevictable-lru.txt | ||
zswap.txt |