]> git.karo-electronics.de Git - karo-tx-linux.git/commit
mm: avoid unnecessary atomic operations during end_page_writeback()
authorMel Gorman <mgorman@suse.de>
Thu, 22 May 2014 00:43:23 +0000 (10:43 +1000)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 22 May 2014 00:43:23 +0000 (10:43 +1000)
commitc705f3261005a42b2c917c11dc0459547ae06cf3
tree39d06db442d05e768dfae9ad62d37c71fcd8be3b
parent9db32096edfa3f8f487d24fb48c784f403936033
mm: avoid unnecessary atomic operations during end_page_writeback()

If a page is marked for immediate reclaim then it is moved to the tail of
the LRU list.  This occurs when the system is under enough memory pressure
for pages under writeback to reach the end of the LRU but we test for this
using atomic operations on every writeback.  This patch uses an optimistic
non-atomic test first.  It'll miss some pages in rare cases but the
consequences are not severe enough to warrant such a penalty.

While the function does not dominate profiles during a simple dd test the
cost of it is reduced.

73048     0.7428  vmlinux-3.15.0-rc5-mmotm-20140513 end_page_writeback
23740     0.2409  vmlinux-3.15.0-rc5-lessatomic     end_page_writeback

Signed-off-by: Mel Gorman <mgorman@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/filemap.c