diff options
| author | Vlastimil Babka <[email protected]> | 2017-09-06 23:20:44 +0000 |
|---|---|---|
| committer | Linus Torvalds <[email protected]> | 2017-09-07 00:27:26 +0000 |
| commit | dab4ead1a9d88361c85a8209c7e23a8fd124e8d7 (patch) | |
| tree | 8778ce150001f4846d282efef4ad6c119bfe0200 /Documentation/filesystems/caching/netfs-api.txt | |
| parent | mm, sparse, page_ext: drop ugly N_HIGH_MEMORY branches for allocations (diff) | |
| download | kernel-dab4ead1a9d88361c85a8209c7e23a8fd124e8d7.tar.gz kernel-dab4ead1a9d88361c85a8209c7e23a8fd124e8d7.zip | |
mm, page_owner: make init_pages_in_zone() faster
In init_pages_in_zone() we currently use the generic set_page_owner()
function to initialize page_owner info for early allocated pages. This
means we needlessly do lookup_page_ext() twice for each page, and more
importantly save_stack(), which has to unwind the stack and find the
corresponding stack depot handle. Because the stack is always the same
for the initialization, unwind it once in init_pages_in_zone() and reuse
the handle. Also avoid the repeated lookup_page_ext().
This can significantly reduce boot times with page_owner=on on large
machines, especially for kernels built without frame pointer, where the
stack unwinding is noticeably slower.
[[email protected]: don't duplicate code of __set_page_owner(), per Michal Hocko]
[[email protected]: coding-style fixes]
[[email protected]: create statically allocated fake stack trace for early allocated pages, per Michal]
Link: http://lkml.kernel.org/r/[email protected]
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Vlastimil Babka <[email protected]>
Acked-by: Michal Hocko <[email protected]>
Cc: Joonsoo Kim <[email protected]>
Cc: Mel Gorman <[email protected]>
Cc: Yang Shi <[email protected]>
Cc: Laura Abbott <[email protected]>
Cc: Vinayak Menon <[email protected]>
Cc: zhong jiang <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Diffstat (limited to 'Documentation/filesystems/caching/netfs-api.txt')
0 files changed, 0 insertions, 0 deletions
