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
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
mm: compaction: abort compaction if too many pages are isolated and caller is asynchronous V2
Tip revision: f9e35b3
File | Mode | Size |
---|---|---|
802 | ||
8021q | ||
9p | ||
appletalk | ||
atm | ||
ax25 | ||
batman-adv | ||
bluetooth | ||
bridge | ||
caif | ||
can | ||
ceph | ||
core | ||
dcb | ||
dccp | ||
decnet | ||
dns_resolver | ||
dsa | ||
econet | ||
ethernet | ||
ieee802154 | ||
ipv4 | ||
ipv6 | ||
ipx | ||
irda | ||
iucv | ||
key | ||
l2tp | ||
lapb | ||
llc | ||
mac80211 | ||
netfilter | ||
netlabel | ||
netlink | ||
netrom | ||
packet | ||
phonet | ||
rds | ||
rfkill | ||
rose | ||
rxrpc | ||
sched | ||
sctp | ||
sunrpc | ||
tipc | ||
unix | ||
wanrouter | ||
wimax | ||
wireless | ||
x25 | ||
xfrm | ||
Kconfig | -rw-r--r-- | 10.5 KB |
Makefile | -rw-r--r-- | 1.9 KB |
TUNABLE | -rw-r--r-- | 2.2 KB |
compat.c | -rw-r--r-- | 24.3 KB |
nonet.c | -rw-r--r-- | 552 bytes |
socket.c | -rw-r--r-- | 81.2 KB |
sysctl_net.c | -rw-r--r-- | 3.0 KB |
Computing file changes ...