linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: David Hildenbrand <david@redhat.com>
To: Andrew Morton <akpm@linux-foundation.org>,
	Wei Yang <richard.weiyang@linux.alibaba.com>
Cc: Wei Yang <richard.weiyang@gmail.com>,
	linux-kernel@vger.kernel.org, linux-mm@kvack.org,
	Michal Hocko <mhocko@suse.com>,
	stable@vger.kernel.org, Johannes Weiner <hannes@cmpxchg.org>,
	Minchan Kim <minchan@kernel.org>,
	Huang Ying <ying.huang@intel.com>,
	Mel Gorman <mgorman@techsingularity.net>,
	Dan Williams <dan.j.williams@intel.com>
Subject: Re: [PATCH v2 1/3] mm/shuffle: don't move pages between zones and don't read garbage memmaps
Date: Fri, 24 Jul 2020 10:20:23 +0200	[thread overview]
Message-ID: <d16a2f0f-6150-d41b-f44c-96e8497bee72@redhat.com> (raw)
In-Reply-To: <20200723200846.768513d7c122ac11b6e73538@linux-foundation.org>

On 24.07.20 05:08, Andrew Morton wrote:
> On Tue, 23 Jun 2020 17:30:18 +0800 Wei Yang <richard.weiyang@linux.alibaba.com> wrote:
> 
>> On Tue, Jun 23, 2020 at 09:55:43AM +0200, David Hildenbrand wrote:
>>> On 23.06.20 09:39, David Hildenbrand wrote:
>>>>> Hmm.. I thought this is the behavior for early section, while it looks current
>>>>> code doesn't work like this:
>>>>>
>>>>>        if (section_is_early && memmap)
>>>>>                free_map_bootmem(memmap);
>>>>>        else
>>>>> 	       depopulate_section_memmap(pfn, nr_pages, altmap);
>>>>>
>>>>> section_is_early is always "true" for early section, while memmap is not-NULL
>>>>> only when sub-section map is empty.
>>>>>
>>>>> If my understanding is correct, when we remove a sub-section in early section,
>>>>> the code would call depopulate_section_memmap(), which in turn free related
>>>>> memmap. By removing the memmap, the return value from pfn_to_online_page() is
>>>>> not a valid one.
>>>>
>>>> I think you're right, and pfn_valid() would also return true, as it is
>>>> an early section. This looks broken.
>>>>
>>>>>
>>>>> Maybe we want to write the code like this:
>>>>>
>>>>>        if (section_is_early)
>>>>>                if (memmap)
>>>>>                        free_map_bootmem(memmap);
>>>>>        else
>>>>> 	       depopulate_section_memmap(pfn, nr_pages, altmap);
>>>>>
>>>>
>>>> I guess that should be the way to go
>>>>
>>>> @Dan, I think what Wei proposes here is correct, right? Or how does it
>>>> work in the VMEMMAP case with early sections?
>>>>
>>>
>>> Especially, if you would re-hot-add, section_activate() would assume
>>> there is a memmap, it must not be removed.
>>>
>>
>> You are right here. I didn't notice it.
>>
>>> @Wei, can you send a patch?
>>>
>>
>> Sure, let me prepare for it.
> 
> Still awaiting this, and the v3 patch was identical to this v2 patch.
> 
> It's tagged for -stable, so there's some urgency.  Should we just go
> ahead with the decently-tested v2?

This patch (mm/shuffle: don't move pages between zones and don't read
garbage memmaps) is good enough for upstream. While the issue reported
by Wei was valid (and needs to be fixed), the user in this patch is just
one of many affected users. Nothing special.

-- 
Thanks,

David / dhildenb



  parent reply	other threads:[~2020-07-24  8:20 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-06-19 12:59 [PATCH v2 0/3] mm/shuffle: fix and cleanups David Hildenbrand
2020-06-19 12:59 ` [PATCH v2 1/3] mm/shuffle: don't move pages between zones and don't read garbage memmaps David Hildenbrand
2020-06-20  1:37   ` Williams, Dan J
2020-06-22  8:26   ` Wei Yang
2020-06-22  8:43     ` David Hildenbrand
2020-06-22  9:22       ` Wei Yang
2020-06-22  9:51         ` David Hildenbrand
2020-06-22 13:10           ` Wei Yang
2020-06-22 14:06             ` David Hildenbrand
2020-06-22 21:55               ` Wei Yang
2020-06-23  7:39                 ` David Hildenbrand
2020-06-23  7:55                   ` David Hildenbrand
2020-06-23  9:30                     ` Wei Yang
2020-07-24  3:08                       ` Andrew Morton
2020-07-24  5:45                         ` Wei Yang
2020-07-24  8:20                         ` David Hildenbrand [this message]
2020-06-22 14:11         ` David Hildenbrand
2020-06-19 12:59 ` [PATCH v2 2/3] mm/memory_hotplug: document why shuffle_zone() is relevant David Hildenbrand
2020-06-20  1:41   ` Dan Williams
2020-06-22  7:27     ` David Hildenbrand
2020-06-23 21:15       ` Dan Williams
2020-06-24  9:31         ` David Hildenbrand
2020-06-22 15:32   ` Michal Hocko
2020-06-19 12:59 ` [PATCH v2 3/3] mm/shuffle: remove dynamic reconfiguration David Hildenbrand
2020-06-20  1:49   ` Dan Williams
2020-06-22  7:33     ` David Hildenbrand
2020-06-22  8:37       ` Wei Yang
2020-06-23 22:18       ` Dan Williams
2020-06-22 15:37   ` Michal Hocko
2020-06-23  1:22   ` Wei Yang

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=d16a2f0f-6150-d41b-f44c-96e8497bee72@redhat.com \
    --to=david@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=dan.j.williams@intel.com \
    --cc=hannes@cmpxchg.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mgorman@techsingularity.net \
    --cc=mhocko@suse.com \
    --cc=minchan@kernel.org \
    --cc=richard.weiyang@gmail.com \
    --cc=richard.weiyang@linux.alibaba.com \
    --cc=stable@vger.kernel.org \
    --cc=ying.huang@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).