All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rongwei Wang <rongwei.wang@linux.alibaba.com>
To: Muchun Song <smuchun@gmail.com>
Cc: akpm@linux-foundation.org, linux-mm@kvack.org
Subject: Re: [PATCH] mm: rectify a page bad reason
Date: Tue, 29 Dec 2020 15:22:39 +0800	[thread overview]
Message-ID: <E1F42F6A-3E2D-4243-8D61-F5C3EAF24B67@linux.alibaba.com> (raw)
In-Reply-To: <CAPSr9jFf4HoODzubWx-JkVKK69YGx0vgaesuVU8od-qyyGOjpw@mail.gmail.com>



> On Dec 29, 2020, at 11:21 AM, Muchun Song <smuchun@gmail.com> wrote:
> 
> Rongwei Wang <rongwei.wang@linux.alibaba.com> 于2020年12月29日周二 上午11:16写道:
>> 
>> Hi
>> 
>> When I was doing some memory-related projects, it always reported error
>> "nonzero mapcount", but its judgment condition was that _mapcount was not equal
>> to -1, so I felt the original string was a bit inappropriate, so I tried to
>> update it.
> 
> Hi Rongwei,
> 
> Because the page_mapcount() just returns atomic_read(&page->_mapcount) + 1,
> reporting "nonzero mapcount" is reasonable when _mapcount is -1.
Hi, Muchun

Thank you for the tip. I read the __dump_page function again.
Indeed here need to combine page_mapcount+page_bad_reason to understand, and reporting "nonzero mapcount" is reasonable. It always feel a little strange ONLY look at page_bad_reason.

Maybe it should be changed (or NOT) to this:

if (unlikely(page_mapcount(page) != 0))
	bad_reason = "nonzero mapcount”;

Anyway, thanks
Rongwei Wang
> 
> Thanks.
> 
>> 
>> Signed-off-by: Rongwei Wang <rongwei.wang@linux.alibaba.com>
>> ---
>> mm/page_alloc.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
>> index 7a2c89b..57d7f26 100644
>> --- a/mm/page_alloc.c
>> +++ b/mm/page_alloc.c
>> @@ -1114,7 +1114,7 @@ static const char *page_bad_reason(struct page *page, unsigned long flags)
>>        const char *bad_reason = NULL;
>> 
>>        if (unlikely(atomic_read(&page->_mapcount) != -1))
>> -               bad_reason = "nonzero mapcount";
>> +               bad_reason = "non-(-1) _mapcount";
>>        if (unlikely(page->mapping != NULL))
>>                bad_reason = "non-NULL mapping";
>>        if (unlikely(page_ref_count(page) != 0))
>> --
>> 1.8.3.1



  parent reply	other threads:[~2020-12-29  7:22 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-29  3:11 [PATCH] mm: rectify a page bad reason Rongwei Wang
     [not found] ` <CAPSr9jFf4HoODzubWx-JkVKK69YGx0vgaesuVU8od-qyyGOjpw@mail.gmail.com>
2020-12-29  7:22   ` Rongwei Wang [this message]
2020-12-29 12:13 ` Matthew Wilcox

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=E1F42F6A-3E2D-4243-8D61-F5C3EAF24B67@linux.alibaba.com \
    --to=rongwei.wang@linux.alibaba.com \
    --cc=akpm@linux-foundation.org \
    --cc=linux-mm@kvack.org \
    --cc=smuchun@gmail.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.