2020-01-20 03:05:35

by Wei Yang

[permalink] [raw]
Subject: [Patch v2 2/4] mm/page_alloc.c: bad_[reason|flags] is not necessary when PageHWPoison

Since function returns directly, bad_[reason|flags] is not used any
where.

This is a following cleanup for commit e570f56cccd21 ("mm:
check_new_page_bad() directly returns in __PG_HWPOISON case")

Signed-off-by: Wei Yang <[email protected]>
Acked-by: David Rientjes <[email protected]>
---
mm/page_alloc.c | 2 --
1 file changed, 2 deletions(-)

diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 0cf6218aaba7..a43b9d2482f2 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -2051,8 +2051,6 @@ static void check_new_page_bad(struct page *page)
if (unlikely(page_ref_count(page) != 0))
bad_reason = "nonzero _refcount";
if (unlikely(page->flags & __PG_HWPOISON)) {
- bad_reason = "HWPoisoned (hardware-corrupted)";
- bad_flags = __PG_HWPOISON;
/* Don't complain about hwpoisoned pages */
page_mapcount_reset(page); /* remove PageBuddy */
return;
--
2.17.1


2020-01-20 06:28:56

by Anshuman Khandual

[permalink] [raw]
Subject: Re: [Patch v2 2/4] mm/page_alloc.c: bad_[reason|flags] is not necessary when PageHWPoison



On 01/20/2020 08:34 AM, Wei Yang wrote:
> Since function returns directly, bad_[reason|flags] is not used any
> where.
>
> This is a following cleanup for commit e570f56cccd21 ("mm:
> check_new_page_bad() directly returns in __PG_HWPOISON case")
>
> Signed-off-by: Wei Yang <[email protected]>
> Acked-by: David Rientjes <[email protected]>
> ---
> mm/page_alloc.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 0cf6218aaba7..a43b9d2482f2 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -2051,8 +2051,6 @@ static void check_new_page_bad(struct page *page)
> if (unlikely(page_ref_count(page) != 0))
> bad_reason = "nonzero _refcount";
> if (unlikely(page->flags & __PG_HWPOISON)) {
> - bad_reason = "HWPoisoned (hardware-corrupted)";
> - bad_flags = __PG_HWPOISON;
> /* Don't complain about hwpoisoned pages */
> page_mapcount_reset(page); /* remove PageBuddy */
> return;

This bail out condition should be the first in the function
check_new_page_bad() before evaluating bad_[reason|flags]
as they will never be used.

>

2020-01-20 10:18:44

by Michal Hocko

[permalink] [raw]
Subject: Re: [Patch v2 2/4] mm/page_alloc.c: bad_[reason|flags] is not necessary when PageHWPoison

On Mon 20-01-20 11:04:13, Wei Yang wrote:
> Since function returns directly, bad_[reason|flags] is not used any
> where.
>
> This is a following cleanup for commit e570f56cccd21 ("mm:
> check_new_page_bad() directly returns in __PG_HWPOISON case")
>
> Signed-off-by: Wei Yang <[email protected]>
> Acked-by: David Rientjes <[email protected]>

This is a left over from loong time ago. AFAICS bad_reason and flags hav
never been used.

Acked-by: Michal Hocko <[email protected]>

> ---
> mm/page_alloc.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 0cf6218aaba7..a43b9d2482f2 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -2051,8 +2051,6 @@ static void check_new_page_bad(struct page *page)
> if (unlikely(page_ref_count(page) != 0))
> bad_reason = "nonzero _refcount";
> if (unlikely(page->flags & __PG_HWPOISON)) {
> - bad_reason = "HWPoisoned (hardware-corrupted)";
> - bad_flags = __PG_HWPOISON;
> /* Don't complain about hwpoisoned pages */
> page_mapcount_reset(page); /* remove PageBuddy */
> return;
> --
> 2.17.1

--
Michal Hocko
SUSE Labs

2020-01-20 12:14:17

by Wei Yang

[permalink] [raw]
Subject: Re: [Patch v2 2/4] mm/page_alloc.c: bad_[reason|flags] is not necessary when PageHWPoison

On Mon, Jan 20, 2020 at 11:58:04AM +0530, Anshuman Khandual wrote:
>
>
>On 01/20/2020 08:34 AM, Wei Yang wrote:
>> Since function returns directly, bad_[reason|flags] is not used any
>> where.
>>
>> This is a following cleanup for commit e570f56cccd21 ("mm:
>> check_new_page_bad() directly returns in __PG_HWPOISON case")
>>
>> Signed-off-by: Wei Yang <[email protected]>
>> Acked-by: David Rientjes <[email protected]>
>> ---
>> mm/page_alloc.c | 2 --
>> 1 file changed, 2 deletions(-)
>>
>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>> index 0cf6218aaba7..a43b9d2482f2 100644
>> --- a/mm/page_alloc.c
>> +++ b/mm/page_alloc.c
>> @@ -2051,8 +2051,6 @@ static void check_new_page_bad(struct page *page)
>> if (unlikely(page_ref_count(page) != 0))
>> bad_reason = "nonzero _refcount";
>> if (unlikely(page->flags & __PG_HWPOISON)) {
>> - bad_reason = "HWPoisoned (hardware-corrupted)";
>> - bad_flags = __PG_HWPOISON;
>> /* Don't complain about hwpoisoned pages */
>> page_mapcount_reset(page); /* remove PageBuddy */
>> return;
>
>This bail out condition should be the first in the function
>check_new_page_bad() before evaluating bad_[reason|flags]
>as they will never be used.
>

This is reasonable.

>>

--
Wei Yang
Help you, Help me

2020-01-20 12:21:56

by David Hildenbrand

[permalink] [raw]
Subject: Re: [Patch v2 2/4] mm/page_alloc.c: bad_[reason|flags] is not necessary when PageHWPoison

On 20.01.20 04:04, Wei Yang wrote:
> Since function returns directly, bad_[reason|flags] is not used any
> where.
>
> This is a following cleanup for commit e570f56cccd21 ("mm:
> check_new_page_bad() directly returns in __PG_HWPOISON case")
>
> Signed-off-by: Wei Yang <[email protected]>
> Acked-by: David Rientjes <[email protected]>
> ---
> mm/page_alloc.c | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 0cf6218aaba7..a43b9d2482f2 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -2051,8 +2051,6 @@ static void check_new_page_bad(struct page *page)
> if (unlikely(page_ref_count(page) != 0))
> bad_reason = "nonzero _refcount";
> if (unlikely(page->flags & __PG_HWPOISON)) {
> - bad_reason = "HWPoisoned (hardware-corrupted)";
> - bad_flags = __PG_HWPOISON;
> /* Don't complain about hwpoisoned pages */
> page_mapcount_reset(page); /* remove PageBuddy */
> return;
>

Reviewed-by: David Hildenbrand <[email protected]>

--
Thanks,

David / dhildenb