summaryrefslogtreecommitdiffstats
path: root/certs
diff options
context:
space:
mode:
authorMel Gorman2017-02-24 23:56:32 +0100
committerLinus Torvalds2017-02-25 02:46:54 +0100
commit0ccce3b924212e121503619df97cc0f17189b77b (patch)
tree8f365e995db4d0dd9cc0735750376c8866f279ba /certs
parentmm, page_alloc: split alloc_pages_nodemask() (diff)
downloadkernel-qcow2-linux-0ccce3b924212e121503619df97cc0f17189b77b.tar.gz
kernel-qcow2-linux-0ccce3b924212e121503619df97cc0f17189b77b.tar.xz
kernel-qcow2-linux-0ccce3b924212e121503619df97cc0f17189b77b.zip
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/20170123153906.3122-4-mgorman@techsingularity.net Signed-off-by: Mel Gorman <mgorman@techsingularity.net> Cc: Vlastimil Babka <vbabka@suse.cz> Cc: Hillf Danton <hillf.zj@alibaba-inc.com> Cc: Jesper Dangaard Brouer <brouer@redhat.com> Cc: Tejun Heo <tj@kernel.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'certs')
0 files changed, 0 insertions, 0 deletions