https://github.com/torvalds/linux
Revision f9e35b3b41f47c4e17d8132edbcab305a6aaa4b0 authored by Mel Gorman on 15 June 2011, 22:08:52 UTC, committed by Linus Torvalds on 16 June 2011, 03:04:02 UTC
Asynchronous compaction is used when promoting to huge pages.  This is all
very nice but if there are a number of processes in compacting memory, a
large number of pages can be isolated.  An "asynchronous" process can
stall for long periods of time as a result with a user reporting that
firefox can stall for 10s of seconds.  This patch aborts asynchronous
compaction if too many pages are isolated as it's better to fail a
hugepage promotion than stall a process.

[minchan.kim@gmail.com: return COMPACT_PARTIAL for abort]
Reported-and-tested-by: Ury Stankevich <urykhy@gmail.com>
Signed-off-by: Mel Gorman <mgorman@suse.de>
Reviewed-by: Minchan Kim <minchan.kim@gmail.com>
Reviewed-by: Michal Hocko <mhocko@suse.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent d179e84
History
Tip revision: f9e35b3b41f47c4e17d8132edbcab305a6aaa4b0 authored by Mel Gorman on 15 June 2011, 22:08:52 UTC
mm: compaction: abort compaction if too many pages are isolated and caller is asynchronous V2
Tip revision: f9e35b3
File Mode Size
apparmor
integrity
keys
selinux
smack
tomoyo
Kconfig -rw-r--r-- 7.8 KB
Makefile -rw-r--r-- 938 bytes
capability.c -rw-r--r-- 23.3 KB
commoncap.c -rw-r--r-- 27.2 KB
device_cgroup.c -rw-r--r-- 11.7 KB
inode.c -rw-r--r-- 8.7 KB
lsm_audit.c -rw-r--r-- 8.9 KB
min_addr.c -rw-r--r-- 1.3 KB
security.c -rw-r--r-- 32.5 KB

back to top