All of lore.kernel.org
 help / color / mirror / Atom feed
From: "liwei (CM)" <liwei213@huawei.com>
To: "Song Bao Hua (Barry Song)" <song.bao.hua@hisilicon.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Mike Rapoport <rppt@linux.ibm.com>
Cc: "linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"steve.capper@arm.com" <steve.capper@arm.com>,
	"Chenfeng \(puck\)" <puck.chen@hisilicon.com>,
	sujunfei <sujunfei2@hisilicon.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Linuxarm <linuxarm@huawei.com>,
	"Xiaqing \(A\)" <saberlily.xia@hisilicon.com>,
	butao <butao@hisilicon.com>, "will@kernel.org" <will@kernel.org>,
	"nsaenzjulienne@suse.de" <nsaenzjulienne@suse.de>,
	fengbaopeng <fengbaopeng2@hisilicon.com>
Subject: 答复: [PATCH v2] arm64: mm: free unused memmap for sparse memory model that define VMEMMAP
Date: Mon, 16 Nov 2020 08:42:17 +0000	[thread overview]
Message-ID: <f34d3387368a406582bce36627cdc29c@huawei.com> (raw)
In-Reply-To: <eacfa2bb19df4126a476566512d93dab@hisilicon.com>

Hi, Barry

I have changed SECTION_SIZE_BITS to 27 in our products, but I don't have to submit it.

-----邮件原件-----
发件人: Song Bao Hua (Barry Song) 
发送时间: 2020年11月16日 16:34
收件人: Catalin Marinas <catalin.marinas@arm.com>; Mike Rapoport <rppt@linux.ibm.com>; liwei (CM) <liwei213@huawei.com>
抄送: will@kernel.org; Xiaqing (A) <saberlily.xia@hisilicon.com>; Chenfeng (puck) <puck.chen@hisilicon.com>; butao <butao@hisilicon.com>; fengbaopeng <fengbaopeng2@hisilicon.com>; nsaenzjulienne@suse.de; steve.capper@arm.com; linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org; sujunfei <sujunfei2@hisilicon.com>; Linuxarm <linuxarm@huawei.com>
主题: RE: [PATCH v2] arm64: mm: free unused memmap for sparse memory model that define VMEMMAP



> -----Original Message-----
> From: Catalin Marinas [mailto:catalin.marinas@arm.com]
> Sent: Friday, September 4, 2020 12:06 AM
> To: Mike Rapoport <rppt@linux.ibm.com>
> Cc: liwei (CM) <liwei213@huawei.com>; will@kernel.org; Xiaqing (A) 
> <saberlily.xia@hisilicon.com>; Chenfeng (puck) 
> <puck.chen@hisilicon.com>; butao <butao@hisilicon.com>; fengbaopeng 
> <fengbaopeng2@hisilicon.com>; nsaenzjulienne@suse.de; 
> steve.capper@arm.com; Song Bao Hua (Barry Song) 
> <song.bao.hua@hisilicon.com>; linux-arm-kernel@lists.infradead.org;
> linux-kernel@vger.kernel.org; sujunfei <sujunfei2@hisilicon.com>
> Subject: Re: [PATCH v2] arm64: mm: free unused memmap for sparse 
> memory model that define VMEMMAP
> 
> On Mon, Aug 17, 2020 at 11:04:05AM +0300, Mike Rapoport wrote:
> > On Wed, Aug 12, 2020 at 09:06:55AM +0800, Wei Li wrote:
> > > For the memory hole, sparse memory model that define
> SPARSEMEM_VMEMMAP
> > > do not free the reserved memory for the page map, this patch do it.
> >
> > I've been thinking about it a bit more and it seems that instead of 
> > freeing unused memory map it would be better to allocate the exact 
> > memory map from the beginning.
> >
> > In sparse_init_nid() we can replace PAGES_PER_SECTION parameter to
> > __populate_section_memmap() with the calculated value for 
> > architectures that define HAVE_ARCH_PFN_VALID.
> 
> Or just use a smaller PAGES_PER_SECTION and reduce the waste ;).
> 
> Just to be clear, are you suggesting that we should use pfn_valid() on 
> the pages within a section to calculate the actual range? The
> pfn_valid() implementation on arm64 checks for the validity of a 
> sparse section, so this would be called from within the sparse_init() 
> code path. I hope there's no dependency but I haven't checked. If it 
> works, it's fine by me, it solves the FLATMEM mem_map freeing as well.
> 
> With 4KB pages on arm64, vmemmap_populate() stops at the pmd level, so 
> it always allocates PMD_SIZE. Wei's patch also only frees in PMD_SIZE 
> amounts. So, with a sizeof(struct page) of 64 (2^6), a PMD_SIZE 
> mem_map section would cover 2^(21-6) pages, so that's equivalent to a 
> SECTION_SIZE_BITS of 21-6+12 = 27.
> 
> If we reduce SECTION_SIZE_BITS to 27 or less, this patch is a no-op.

It would be the simplest way to fix this issue. It seems X86_64 is also using 27.

@wei, has you ever tried to send a patch to change SECTION_SIZE_BITS to 27 for ARM64?

> 
> --
> Catalin

Thanks
Barry
_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

WARNING: multiple messages have this Message-ID (diff)
From: "liwei (CM)" <liwei213@huawei.com>
To: "Song Bao Hua (Barry Song)" <song.bao.hua@hisilicon.com>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Mike Rapoport <rppt@linux.ibm.com>
Cc: "will@kernel.org" <will@kernel.org>,
	"Xiaqing (A)" <saberlily.xia@hisilicon.com>,
	"Chenfeng (puck)" <puck.chen@hisilicon.com>,
	butao <butao@hisilicon.com>,
	fengbaopeng <fengbaopeng2@hisilicon.com>,
	"nsaenzjulienne@suse.de" <nsaenzjulienne@suse.de>,
	"steve.capper@arm.com" <steve.capper@arm.com>,
	"linux-arm-kernel@lists.infradead.org" 
	<linux-arm-kernel@lists.infradead.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	sujunfei <sujunfei2@hisilicon.com>,
	Linuxarm <linuxarm@huawei.com>
Subject: 答复: [PATCH v2] arm64: mm: free unused memmap for sparse memory model that define VMEMMAP
Date: Mon, 16 Nov 2020 08:42:17 +0000	[thread overview]
Message-ID: <f34d3387368a406582bce36627cdc29c@huawei.com> (raw)
In-Reply-To: <eacfa2bb19df4126a476566512d93dab@hisilicon.com>

Hi, Barry

I have changed SECTION_SIZE_BITS to 27 in our products, but I don't have to submit it.

-----邮件原件-----
发件人: Song Bao Hua (Barry Song) 
发送时间: 2020年11月16日 16:34
收件人: Catalin Marinas <catalin.marinas@arm.com>; Mike Rapoport <rppt@linux.ibm.com>; liwei (CM) <liwei213@huawei.com>
抄送: will@kernel.org; Xiaqing (A) <saberlily.xia@hisilicon.com>; Chenfeng (puck) <puck.chen@hisilicon.com>; butao <butao@hisilicon.com>; fengbaopeng <fengbaopeng2@hisilicon.com>; nsaenzjulienne@suse.de; steve.capper@arm.com; linux-arm-kernel@lists.infradead.org; linux-kernel@vger.kernel.org; sujunfei <sujunfei2@hisilicon.com>; Linuxarm <linuxarm@huawei.com>
主题: RE: [PATCH v2] arm64: mm: free unused memmap for sparse memory model that define VMEMMAP



> -----Original Message-----
> From: Catalin Marinas [mailto:catalin.marinas@arm.com]
> Sent: Friday, September 4, 2020 12:06 AM
> To: Mike Rapoport <rppt@linux.ibm.com>
> Cc: liwei (CM) <liwei213@huawei.com>; will@kernel.org; Xiaqing (A) 
> <saberlily.xia@hisilicon.com>; Chenfeng (puck) 
> <puck.chen@hisilicon.com>; butao <butao@hisilicon.com>; fengbaopeng 
> <fengbaopeng2@hisilicon.com>; nsaenzjulienne@suse.de; 
> steve.capper@arm.com; Song Bao Hua (Barry Song) 
> <song.bao.hua@hisilicon.com>; linux-arm-kernel@lists.infradead.org;
> linux-kernel@vger.kernel.org; sujunfei <sujunfei2@hisilicon.com>
> Subject: Re: [PATCH v2] arm64: mm: free unused memmap for sparse 
> memory model that define VMEMMAP
> 
> On Mon, Aug 17, 2020 at 11:04:05AM +0300, Mike Rapoport wrote:
> > On Wed, Aug 12, 2020 at 09:06:55AM +0800, Wei Li wrote:
> > > For the memory hole, sparse memory model that define
> SPARSEMEM_VMEMMAP
> > > do not free the reserved memory for the page map, this patch do it.
> >
> > I've been thinking about it a bit more and it seems that instead of 
> > freeing unused memory map it would be better to allocate the exact 
> > memory map from the beginning.
> >
> > In sparse_init_nid() we can replace PAGES_PER_SECTION parameter to
> > __populate_section_memmap() with the calculated value for 
> > architectures that define HAVE_ARCH_PFN_VALID.
> 
> Or just use a smaller PAGES_PER_SECTION and reduce the waste ;).
> 
> Just to be clear, are you suggesting that we should use pfn_valid() on 
> the pages within a section to calculate the actual range? The
> pfn_valid() implementation on arm64 checks for the validity of a 
> sparse section, so this would be called from within the sparse_init() 
> code path. I hope there's no dependency but I haven't checked. If it 
> works, it's fine by me, it solves the FLATMEM mem_map freeing as well.
> 
> With 4KB pages on arm64, vmemmap_populate() stops at the pmd level, so 
> it always allocates PMD_SIZE. Wei's patch also only frees in PMD_SIZE 
> amounts. So, with a sizeof(struct page) of 64 (2^6), a PMD_SIZE 
> mem_map section would cover 2^(21-6) pages, so that's equivalent to a 
> SECTION_SIZE_BITS of 21-6+12 = 27.
> 
> If we reduce SECTION_SIZE_BITS to 27 or less, this patch is a no-op.

It would be the simplest way to fix this issue. It seems X86_64 is also using 27.

@wei, has you ever tried to send a patch to change SECTION_SIZE_BITS to 27 for ARM64?

> 
> --
> Catalin

Thanks
Barry

  reply	other threads:[~2020-11-16  8:43 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-12  1:06 [PATCH v2] arm64: mm: free unused memmap for sparse memory model that define VMEMMAP Wei Li
2020-08-12  1:06 ` Wei Li
2020-08-17  8:04 ` Mike Rapoport
2020-08-17  8:04   ` Mike Rapoport
2020-09-03 12:05   ` Catalin Marinas
2020-09-03 12:05     ` Catalin Marinas
2020-09-03 12:27     ` Mike Rapoport
2020-09-03 12:27       ` Mike Rapoport
2020-11-16  8:33     ` Song Bao Hua (Barry Song)
2020-11-16  8:33       ` Song Bao Hua (Barry Song)
2020-11-16  8:42       ` liwei (CM) [this message]
2020-11-16  8:42         ` 答复: " liwei (CM)
2020-11-16 10:46         ` Catalin Marinas
2020-11-16 10:46           ` Catalin Marinas
2020-11-23  3:45           ` 答复: " liwei (CM)
2020-11-23  3:45             ` liwei (CM)

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=f34d3387368a406582bce36627cdc29c@huawei.com \
    --to=liwei213@huawei.com \
    --cc=butao@hisilicon.com \
    --cc=catalin.marinas@arm.com \
    --cc=fengbaopeng2@hisilicon.com \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linuxarm@huawei.com \
    --cc=nsaenzjulienne@suse.de \
    --cc=puck.chen@hisilicon.com \
    --cc=rppt@linux.ibm.com \
    --cc=saberlily.xia@hisilicon.com \
    --cc=song.bao.hua@hisilicon.com \
    --cc=steve.capper@arm.com \
    --cc=sujunfei2@hisilicon.com \
    --cc=will@kernel.org \
    /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.