On x86 platform, if we use "/sys/devices/system/memory/soft_offline_page" to offline a free page twice, the value of mce_bad_pages will be added twice. So this is an error, since the page was already marked HWPoison, we should skip the page and don't add the value of mce_bad_pages. $ cat /proc/meminfo | grep HardwareCorrupted soft_offline_page() get_any_page() atomic_long_add(1, &mce_bad_pages) Signed-off-by: Xishi Qiu <qiuxishi@xxxxxxxxxx> Signed-off-by: Jiang Liu <jiang.liu@xxxxxxxxxx> --- mm/memory-failure.c | 7 +++++-- 1 files changed, 5 insertions(+), 2 deletions(-) diff --git a/mm/memory-failure.c b/mm/memory-failure.c index 8b20278..de760ca 100644 --- a/mm/memory-failure.c +++ b/mm/memory-failure.c @@ -1582,8 +1582,11 @@ int soft_offline_page(struct page *page, int flags) return ret; done: - atomic_long_add(1, &mce_bad_pages); - SetPageHWPoison(page); /* keep elevated page count for bad page */ + if (!PageHWPoison(page)) { + atomic_long_add(1, &mce_bad_pages); + SetPageHWPoison(page); + } + return ret; } -- 1.7.6.1 -- 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/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>