aboutsummaryrefslogtreecommitdiff
path: root/tools/testing/radix-tree/linux/kernel.h
diff options
context:
space:
mode:
authorPavel Tatashin <[email protected]>2018-04-10 16:36:10 -0700
committerLinus Torvalds <[email protected]>2018-04-11 10:28:38 -0700
commit6f84f8d1587f20f60592cf1b1792ca639f37d429 (patch)
tree31e47cbc8e6244613b505727f61e9eb599b57169 /tools/testing/radix-tree/linux/kernel.h
parentad55eac74f2016c6dc132b9502f794156858a3d1 (diff)
xen, mm: allow deferred page initialization for xen pv domains
Juergen Gross noticed that commit f7f99100d8d ("mm: stop zeroing memory during allocation in vmemmap") broke XEN PV domains when deferred struct page initialization is enabled. This is because the xen's PagePinned() flag is getting erased from struct pages when they are initialized later in boot. Juergen fixed this problem by disabling deferred pages on xen pv domains. It is desirable, however, to have this feature available as it reduces boot time. This fix re-enables the feature for pv-dmains, and fixes the problem the following way: The fix is to delay setting PagePinned flag until struct pages for all allocated memory are initialized, i.e. until after free_all_bootmem(). A new x86_init.hyper op init_after_bootmem() is called to let xen know that boot allocator is done, and hence struct pages for all the allocated memory are now initialized. If deferred page initialization is enabled, the rest of struct pages are going to be initialized later in boot once page_alloc_init_late() is called. xen_after_bootmem() walks page table's pages and marks them pinned. Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Pavel Tatashin <[email protected]> Acked-by: Ingo Molnar <[email protected]> Reviewed-by: Juergen Gross <[email protected]> Tested-by: Juergen Gross <[email protected]> Cc: Daniel Jordan <[email protected]> Cc: Pavel Tatashin <[email protected]> Cc: Alok Kataria <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: "H. Peter Anvin" <[email protected]> Cc: Boris Ostrovsky <[email protected]> Cc: Michal Hocko <[email protected]> Cc: Vlastimil Babka <[email protected]> Cc: Andy Lutomirski <[email protected]> Cc: Laura Abbott <[email protected]> Cc: Kirill A. Shutemov <[email protected]> Cc: Borislav Petkov <[email protected]> Cc: Mathias Krause <[email protected]> Cc: Jinbum Park <[email protected]> Cc: Dan Williams <[email protected]> Cc: Baoquan He <[email protected]> Cc: Jia Zhang <[email protected]> Cc: Mel Gorman <[email protected]> Cc: Johannes Weiner <[email protected]> Cc: Stefano Stabellini <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'tools/testing/radix-tree/linux/kernel.h')
0 files changed, 0 insertions, 0 deletions