All of lore.kernel.org
 help / color / mirror / Atom feed
From: Wanpeng Li <liwanp@linux.vnet.ibm.com>
To: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Andi Kleen <andi@firstfloor.org>,
	Fengguang Wu <fengguang.wu@intel.com>,
	Tony Luck <tony.luck@intel.com>,
	gong.chen@linux.intel.com, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH 6/6] mm/hwpoison: centralize set PG_hwpoison flag and increase num_poisoned_pages
Date: Fri, 23 Aug 2013 08:03:27 +0800	[thread overview]
Message-ID: <20130823000327.GC17669@hacker.(null)> (raw)
In-Reply-To: <1377202401-mrb1wzdx-mutt-n-horiguchi@ah.jp.nec.com>

Hi Naoya,
On Thu, Aug 22, 2013 at 04:13:21PM -0400, Naoya Horiguchi wrote:
>On Thu, Aug 22, 2013 at 05:48:27PM +0800, Wanpeng Li wrote:
>> soft_offline_page will invoke __soft_offline_page for in-use normal pages 
>> and soft_offline_huge_page for in-use hugetlbfs pages. Both of them will 
>> done the same effort as for soft offline free pages set PG_hwpoison, increase 
>> num_poisoned_pages etc, this patch centralize do them in soft_offline_page.
>> 
>> Signed-off-by: Wanpeng Li <liwanp@linux.vnet.ibm.com>
>> ---
>>  mm/memory-failure.c | 16 ++++------------
>>  1 file changed, 4 insertions(+), 12 deletions(-)
>> 
>> diff --git a/mm/memory-failure.c b/mm/memory-failure.c
>> index 0a52571..3226de1 100644
>> --- a/mm/memory-failure.c
>> +++ b/mm/memory-failure.c
>> @@ -1486,15 +1486,9 @@ static int soft_offline_huge_page(struct page *page, int flags)
>>  	ret = migrate_huge_page(hpage, new_page, MPOL_MF_MOVE_ALL,
>>  				MIGRATE_SYNC);
>>  	put_page(hpage);
>> -	if (ret) {
>> +	if (ret)
>>  		pr_info("soft offline: %#lx: migration failed %d, type %lx\n",
>>  			pfn, ret, page->flags);
>> -	} else {
>> -		set_page_hwpoison_huge_page(hpage);
>> -		dequeue_hwpoisoned_huge_page(hpage);
>> -		atomic_long_add(1 << compound_order(hpage),
>> -				&num_poisoned_pages);
>> -	}
>>  	return ret;
>>  }
>>  
>> @@ -1530,8 +1524,6 @@ static int __soft_offline_page(struct page *page, int flags)
>>  	if (ret == 1) {
>>  		put_page(page);
>>  		pr_info("soft_offline: %#lx: invalidated\n", pfn);
>> -		SetPageHWPoison(page);
>> -		atomic_long_inc(&num_poisoned_pages);
>>  		return 0;
>>  	}
>>  
>> @@ -1572,11 +1564,9 @@ static int __soft_offline_page(struct page *page, int flags)
>>  				lru_add_drain_all();
>>  			if (!is_free_buddy_page(page))
>>  				drain_all_pages();
>> -			SetPageHWPoison(page);
>>  			if (!is_free_buddy_page(page))
>>  				pr_info("soft offline: %#lx: page leaked\n",
>>  					pfn);
>> -			atomic_long_inc(&num_poisoned_pages);
>>  		}
>>  	} else {
>>  		pr_info("soft offline: %#lx: isolation failed: %d, page count %d, type %lx\n",
>
>This change does not simply clean up code, but affects the behavior.
>This memory leak check should come after SetPageHWPoison().
>

Thanks for pointing out. ;-)

Regards,
Wanpeng Li 

>Thanks,
>Naoya Horiguchi
>
>> @@ -1633,7 +1623,9 @@ int soft_offline_page(struct page *page, int flags)
>>  			ret = soft_offline_huge_page(page, flags);
>>  		else
>>  			ret = __soft_offline_page(page, flags);
>> -	} else { /* for free pages */
>> +	}
>> +
>> +	if (!ret) {
>>  		if (PageHuge(page)) {
>>  			set_page_hwpoison_huge_page(hpage);
>>  			dequeue_hwpoisoned_huge_page(hpage);
>> -- 
>> 1.8.1.2
>> 
>> --
>> To unsubscribe, send a message with 'unsubscribe linux-mm' in
>> the body to majordomo@kvack.org.  For more info on Linux MM,
>> see: http://www.linux-mm.org/ .
>> Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
>>
>
>--
>To unsubscribe, send a message with 'unsubscribe linux-mm' in
>the body to majordomo@kvack.org.  For more info on Linux MM,
>see: http://www.linux-mm.org/ .
>Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2013-08-23  0:03 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-08-22  9:48 [PATCH 1/6] mm/hwpoison: fix lose PG_dirty flag for errors on mlocked pages Wanpeng Li
2013-08-22  9:48 ` Wanpeng Li
2013-08-22  9:48 ` [PATCH 2/6] mm/hwpoison: don't need to hold compound lock for hugetlbfs page Wanpeng Li
2013-08-22  9:48   ` Wanpeng Li
2013-08-22 15:52   ` Naoya Horiguchi
2013-08-22 15:52     ` Naoya Horiguchi
2013-08-22 23:54     ` Wanpeng Li
2013-08-22 23:54     ` Wanpeng Li
2013-08-22  9:48 ` [PATCH 3/6] mm/hwpoison: fix num_poisoned_pages error statistics for thp Wanpeng Li
2013-08-22  9:48   ` Wanpeng Li
2013-08-22 16:43   ` Naoya Horiguchi
2013-08-22 16:43     ` Naoya Horiguchi
2013-08-22 17:00     ` Naoya Horiguchi
2013-08-22 17:00       ` Naoya Horiguchi
2013-08-22 23:52     ` Wanpeng Li
2013-08-22 23:52     ` Wanpeng Li
     [not found]     ` <5216a46f.a800310a.2351.ffffa95cSMTPIN_ADDED_BROKEN@mx.google.com>
2013-08-23  3:27       ` Naoya Horiguchi
2013-08-23  3:27         ` Naoya Horiguchi
2013-08-23  4:24         ` Wanpeng Li
2013-08-23  4:24         ` Wanpeng Li
2013-08-22  9:48 ` [PATCH 4/6] mm/hwpoison: don't set migration type twice to avoid hold heavy contend zone->lock Wanpeng Li
2013-08-22  9:48   ` Wanpeng Li
2013-08-22 19:06   ` Naoya Horiguchi
2013-08-22 19:06     ` Naoya Horiguchi
2013-08-23  0:15     ` Wanpeng Li
2013-08-23  0:15     ` Wanpeng Li
2013-08-22  9:48 ` [PATCH 5/6] mm/hwpoison: drop forward reference declarations __soft_offline_page() Wanpeng Li
2013-08-22  9:48   ` Wanpeng Li
2013-08-22 19:24   ` Naoya Horiguchi
2013-08-22 19:24     ` Naoya Horiguchi
2013-08-22  9:48 ` [PATCH 6/6] mm/hwpoison: centralize set PG_hwpoison flag and increase num_poisoned_pages Wanpeng Li
2013-08-22  9:48   ` Wanpeng Li
2013-08-22 20:13   ` Naoya Horiguchi
2013-08-22 20:13     ` Naoya Horiguchi
2013-08-23  0:03     ` Wanpeng Li [this message]
2013-08-23  0:03     ` Wanpeng Li
2013-08-22 15:51 ` [PATCH 1/6] mm/hwpoison: fix lose PG_dirty flag for errors on mlocked pages Naoya Horiguchi
2013-08-22 15:51   ` Naoya Horiguchi
2013-08-22 23:34   ` Wanpeng Li
2013-08-22 23:34   ` Wanpeng Li

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='20130823000327.GC17669@hacker.(null)' \
    --to=liwanp@linux.vnet.ibm.com \
    --cc=akpm@linux-foundation.org \
    --cc=andi@firstfloor.org \
    --cc=fengguang.wu@intel.com \
    --cc=gong.chen@linux.intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=n-horiguchi@ah.jp.nec.com \
    --cc=tony.luck@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.