All of lore.kernel.org
 help / color / mirror / Atom feed
From: Baoquan He <bhe@redhat.com>
To: Wei Yang <richard.weiyang@gmail.com>
Cc: Dan Williams <dan.j.williams@intel.com>,
	Wei Yang <richardw.yang@linux.intel.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Oscar Salvador <osalvador@suse.de>, Linux MM <linux-mm@kvack.org>,
	Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
	David Hildenbrand <david@redhat.com>
Subject: Re: [PATCH 2/3] mm/sparsemem: get physical address to page struct instead of virtual address to pfn
Date: Sun, 9 Feb 2020 21:50:15 +0800	[thread overview]
Message-ID: <20200209135015.GX8965@MiWiFi-R3L-srv> (raw)
In-Reply-To: <20200207112632.5inklkwyiewhrd75@master>

On 02/07/20 at 11:26am, Wei Yang wrote:
> On Thu, Feb 06, 2020 at 06:19:46PM -0800, Dan Williams wrote:
> >On Thu, Feb 6, 2020 at 3:17 PM Wei Yang <richardw.yang@linux.intel.com> wrote:
> >>
> >> memmap should be the physical address to page struct instead of virtual
> >> address to pfn.
> >>
> >> Since we call this only for SPARSEMEM_VMEMMAP, pfn_to_page() is valid at
> >> this point.
> >>
> >> Fixes: ba72b4c8cf60 ("mm/sparsemem: support sub-section hotplug")
> >> Signed-off-by: Wei Yang <richardw.yang@linux.intel.com>
> >> CC: Dan Williams <dan.j.williams@intel.com>
> >> ---
> >>  mm/sparse.c | 2 +-
> >>  1 file changed, 1 insertion(+), 1 deletion(-)
> >>
> >> diff --git a/mm/sparse.c b/mm/sparse.c
> >> index b5da121bdd6e..56816f653588 100644
> >> --- a/mm/sparse.c
> >> +++ b/mm/sparse.c
> >> @@ -888,7 +888,7 @@ int __meminit sparse_add_section(int nid, unsigned long start_pfn,
> >>         /* Align memmap to section boundary in the subsection case */
> >>         if (IS_ENABLED(CONFIG_SPARSEMEM_VMEMMAP) &&
> >>                 section_nr_to_pfn(section_nr) != start_pfn)
> >> -               memmap = pfn_to_kaddr(section_nr_to_pfn(section_nr));
> >> +               memmap = pfn_to_page(section_nr_to_pfn(section_nr));
> >
> >Yes, this looks obviously correct. This might be tripping up
> >makedumpfile. Do you see any practical effects of this bug? The kernel
> >mostly avoids ->section_mem_map in the vmemmap case and in the
> >!vmemmap case section_nr_to_pfn(section_nr) should always equal
> >start_pfn.
> 
> I took another look into the code. Looks there is no practical effect after
> this. Because in the vmemmap case, we don't need ->section_mem_map to retrieve
> the real memmap.
> 
> But leave a inconsistent data in section_mem_map is not a good practice.

Yeah, it does has no pratical effect. I tried to create sub-section
alighed namespace, then trigger crash, makedumpfile isn't impacted.
Because pmem memory is only added, but not onlined. We don't report it
to kdump, makedumpfile will ignore it.

I think it's worth fixing it to encode a correct memmap address. We
don't know if in the future this will break anything.

Thanks
Baoquan


  reply	other threads:[~2020-02-09 13:50 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-06 23:16 [PATCH 0/3] Fixes "mm/sparsemem: support sub-section hotplug" Wei Yang
2020-02-06 23:16 ` [PATCH 1/3] mm/sparsemem: adjust memmap only for SPARSEMEM_VMEMMAP Wei Yang
2020-02-07  2:00   ` Dan Williams
2020-02-07  2:00     ` Dan Williams
2020-02-07 11:06     ` Wei Yang
2020-02-06 23:16 ` [PATCH 2/3] mm/sparsemem: get physical address to page struct instead of virtual address to pfn Wei Yang
2020-02-07  2:19   ` Dan Williams
2020-02-07  2:19     ` Dan Williams
2020-02-07  3:10     ` Baoquan He
2020-02-07  3:21       ` Dan Williams
2020-02-07  3:21         ` Dan Williams
2020-02-07  3:36         ` Baoquan He
2020-02-07  4:05           ` Dan Williams
2020-02-07  4:05             ` Dan Williams
2020-02-07 11:13           ` Wei Yang
2020-02-07 12:14         ` Wei Yang
2020-02-07 16:44           ` Dan Williams
2020-02-07 16:44             ` Dan Williams
2020-02-07 10:51     ` Wei Yang
2020-02-07 11:26     ` Wei Yang
2020-02-09 13:50       ` Baoquan He [this message]
2020-02-09 14:14         ` David Hildenbrand
2020-02-10  0:36           ` Wei Yang
2020-02-07  4:11   ` Baoquan He
2020-02-07 10:53     ` Wei Yang
2020-02-06 23:16 ` [PATCH 3/3] mm/sparsemem: avoid memmap overwrite for non-SPARSEMEM_VMEMMAP Wei Yang
2020-02-07  2:06   ` Dan Williams
2020-02-07  2:06     ` Dan Williams
2020-02-07  3:50     ` Baoquan He
2020-02-07 11:02     ` 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=20200209135015.GX8965@MiWiFi-R3L-srv \
    --to=bhe@redhat.com \
    --cc=akpm@linux-foundation.org \
    --cc=dan.j.williams@intel.com \
    --cc=david@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=osalvador@suse.de \
    --cc=richard.weiyang@gmail.com \
    --cc=richardw.yang@linux.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.