On Fri, 7 Oct 2011, Christoph Lameter wrote: > MCL_FUTURE does not move pages between lru list and draining the LRU per > cpu pagevecs is a nasty activity. Avoid doing it unecessarily. > > Signed-off-by: Christoph Lameter <cl@xxxxxxxxxx> > > > --- > mm/mlock.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > Index: linux-2.6/mm/mlock.c > =================================================================== > --- linux-2.6.orig/mm/mlock.c 2011-10-07 14:57:52.000000000 -0500 > +++ linux-2.6/mm/mlock.c 2011-10-07 15:01:06.000000000 -0500 > @@ -549,7 +549,8 @@ SYSCALL_DEFINE1(mlockall, int, flags) > if (!can_do_mlock()) > goto out; > > - lru_add_drain_all(); /* flush pagevec */ > + if (flags & MCL_CURRENT) > + lru_add_drain_all(); /* flush pagevec */ I understand the intention of lru_add_drain_all() to try to avoid a later failure when moving to the unevictable list and why flushing it's necessary for MCL_FUTURE, but I think this should be written if (!(flags & MCL_FUTURE)) ... since flags may be extended sometime in the future. After that's fixed, feel free to add my Acked-by: David Rientjes <rientjes@xxxxxxxxxx> -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>