]> Git Repo - linux.git/commit
mm, page_alloc: drain per-cpu pages from workqueue context
authorMel Gorman <[email protected]>
Fri, 24 Feb 2017 22:56:32 +0000 (14:56 -0800)
committerLinus Torvalds <[email protected]>
Sat, 25 Feb 2017 01:46:54 +0000 (17:46 -0800)
commit0ccce3b924212e121503619df97cc0f17189b77b
tree8f365e995db4d0dd9cc0735750376c8866f279ba
parent9cd7555875bb09dad875e89a76f41f576e11c638
mm, page_alloc: drain per-cpu pages from workqueue context

The per-cpu page allocator can be drained immediately via
drain_all_pages() which sends IPIs to every CPU.  In the next patch, the
per-cpu allocator will only be used for interrupt-safe allocations which
prevents draining it from IPI context.  This patch uses workqueues to
drain the per-cpu lists instead.

This is slower but no slowdown during intensive reclaim was measured and
the paths that use drain_all_pages() are not that sensitive to
performance.  This is particularly true as the path would only be
triggered when reclaim is failing.  It also makes a some sense to avoid
storming a machine with IPIs when it's under memory pressure.  Arguably,
it should be further adjusted so that only one caller at a time is
draining pages but it's beyond the scope of the current patch.

Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Mel Gorman <[email protected]>
Cc: Vlastimil Babka <[email protected]>
Cc: Hillf Danton <[email protected]>
Cc: Jesper Dangaard Brouer <[email protected]>
Cc: Tejun Heo <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
mm/page_alloc.c
This page took 0.048979 seconds and 4 git commands to generate.