]> git.baikalelectronics.ru Git - kernel.git/commit
mm: compaction: fix COMPACTPAGEFAILED counting
authorMinchan Kim <minchan.kim@gmail.com>
Tue, 26 Oct 2010 21:21:29 +0000 (14:21 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 26 Oct 2010 23:52:06 +0000 (16:52 -0700)
commit3f107856b775a5ccb01c4e60e8c82407a2a4ba1c
treea84d37df2b0bb57bd9a4b0b466726f5343fa5448
parent5b3a7467a0d5158ff303feba9ede1f895b3abcd8
mm: compaction: fix COMPACTPAGEFAILED counting

Presently update_nr_listpages() doesn't have a role.  That's because lists
passed is always empty just after calling migrate_pages.  The
migrate_pages cleans up page list which have failed to migrate before
returning by 75bdb73a.

 [PATCH] page migration: handle freeing of pages in migrate_pages()

 Do not leave pages on the lists passed to migrate_pages().  Seems that we will
 not need any postprocessing of pages.  This will simplify the handling of
 pages by the callers of migrate_pages().

At that time, we thought we don't need any postprocessing of pages.  But
the situation is changed.  The compaction need to know the number of
failed to migrate for COMPACTPAGEFAILED stat

This patch makes new rule for caller of migrate_pages to call
putback_lru_pages.  So caller need to clean up the lists so it has a
chance to postprocess the pages.  [suggested by Christoph Lameter]

Signed-off-by: Minchan Kim <minchan.kim@gmail.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Andi Kleen <andi@firstfloor.org>
Reviewed-by: Mel Gorman <mel@csn.ul.ie>
Reviewed-by: Wu Fengguang <fengguang.wu@intel.com>
Acked-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
mm/memory-failure.c
mm/memory_hotplug.c
mm/mempolicy.c
mm/migrate.c