]> git.baikalelectronics.ru Git - kernel.git/commit
mm: make lru_add_drain_all() selective
authorChris Metcalf <cmetcalf@tilera.com>
Thu, 12 Sep 2013 22:13:55 +0000 (15:13 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 12 Sep 2013 22:38:02 +0000 (15:38 -0700)
commit6b1f8d43a30a24770cbc9bf95b18cfddf3447a9e
tree119599fe279ba3daf94422d54cfc7bd2a5ae4a80
parent8d0ad462980f82207b9fd3d1207c6428d5ba733b
mm: make lru_add_drain_all() selective

make lru_add_drain_all() only selectively interrupt the cpus that have
per-cpu free pages that can be drained.

This is important in nohz mode where calling mlockall(), for example,
otherwise will interrupt every core unnecessarily.

This is important on workloads where nohz cores are handling 10 Gb traffic
in userspace.  Those CPUs do not enter the kernel and place pages into LRU
pagevecs and they really, really don't want to be interrupted, or they
drop packets on the floor.

Signed-off-by: Chris Metcalf <cmetcalf@tilera.com>
Reviewed-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
include/linux/swap.h
mm/swap.c