All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Rapoport <rppt@linux.ibm.com>
To: Catalin Marinas <catalin.marinas@arm.com>
Cc: "Song Bao Hua \(Barry Song\)" <song.bao.hua@hisilicon.com>,
	sujunfei <sujunfei2@hisilicon.com>,
	"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>,
	"Xiaqing \(A\)" <saberlily.xia@hisilicon.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	fengbaopeng <fengbaopeng2@hisilicon.com>,
	zhaojiapeng <zhaojiapeng@huawei.com>,
	"liwei \(CM\)" <liwei213@huawei.com>,
	"will@kernel.org" <will@kernel.org>,
	"nsaenzjulienne@suse.de" <nsaenzjulienne@suse.de>,
	butao <butao@hisilicon.com>
Subject: Re: 答复: 答复: [PATCH] arm64: mm: free unused memmap for sparse memory model that define VMEMMAP
Date: Thu, 23 Jul 2020 16:18:37 +0300	[thread overview]
Message-ID: <20200723131837.GC1975360@linux.ibm.com> (raw)
In-Reply-To: <20200723112926.GB7315@gaia>

On Thu, Jul 23, 2020 at 12:29:26PM +0100, Catalin Marinas wrote:
> On Wed, Jul 22, 2020 at 01:40:34PM +0000, liwei (CM) wrote:
> > Catalin Marinas wrote:
> > > On Wed, Jul 22, 2020 at 08:41:17AM +0000, liwei (CM) wrote:
> > > > Mike Rapoport wrote:
> > > > > On Tue, Jul 21, 2020 at 03:32:03PM +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.
> > > > > 
> > > > > Are there numbers showing how much memory is actually freed?
> > > > > 
> > > > > The freeing of empty memmap would become rather complex with these 
> > > > > changes, do the memory savings justify it?
> > > > 
> > > > In the sparse memory model, the size of a section is 1 GB 
> > > > (SECTION_SIZE_BITS 30) by default.
> > > 
> > > Can we reduce SECTION_SIZE_BITS instead? Say 26?
> > 
> > Yes, you are right, reduce SECTION_SIZE_BITS to 26 can save almost the
> > same memory as the patch. 
> > 
> > 1) However, it is not clear whether changing the section size has any
> > other impact.
> 
> Well, we should analyse this.
> 
> > 2) Just like the flat memory model and the sparse memory model that
> > does not define VMEMMAP, both of them have their own ways to free
> > unused memmap. I think we've given a similar way for sparse memory
> > define VMEMMAP.
> 
> I think we did it for flatmem initially (on arm32) and added support for
> sparsemem later on, so free_unused_memmap() had to cope with sparse
> sections. On arm64 we introduced vmemmap support and didn't bother with
> the freeing at all because of the added complexity of the vmemmap page
> tables.
> 
> I wonder whether we should just disallow flatmem and non-vmemmap
> sparsemem on arm64. Is there any value in keeping them around?

FLATMEM is useful for UMA systems with a single memory bank, so probably
it's worth keeping it for low end machines.

Non-vmemmap sparsemem is essentially disable in arch/arm64/Kconfig, so
for NUMA configurations SPARSEMEM_VMEMMAP is the only choice.
 
> > 3) This explicit free unused memmap method does reduce unnecessary
> > memory waste for users who do not notice the section size
> > modification.
> 
> But if we changed SECTION_SIZE_BITS in the mainline kernel, then we
> wouldn't need additional code to free the unused memmap.

Moreover if we reduce SECTION_SIZE_BITS, we can drop
free_unused_memmap() and since the arm64 memory map for sparse will not
differ from other arches we can drop custom pfn_valid() as well.
 
> -- 
> Catalin

-- 
Sincerely yours,
Mike.

_______________________________________________
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: Mike Rapoport <rppt@linux.ibm.com>
To: Catalin Marinas <catalin.marinas@arm.com>
Cc: "liwei (CM)" <liwei213@huawei.com>,
	"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>,
	"Song Bao Hua (Barry Song)" <song.bao.hua@hisilicon.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>,
	zhaojiapeng <zhaojiapeng@huawei.com>
Subject: Re: 答复: 答复: [PATCH] arm64: mm: free unused memmap for sparse memory model that define VMEMMAP
Date: Thu, 23 Jul 2020 16:18:37 +0300	[thread overview]
Message-ID: <20200723131837.GC1975360@linux.ibm.com> (raw)
In-Reply-To: <20200723112926.GB7315@gaia>

On Thu, Jul 23, 2020 at 12:29:26PM +0100, Catalin Marinas wrote:
> On Wed, Jul 22, 2020 at 01:40:34PM +0000, liwei (CM) wrote:
> > Catalin Marinas wrote:
> > > On Wed, Jul 22, 2020 at 08:41:17AM +0000, liwei (CM) wrote:
> > > > Mike Rapoport wrote:
> > > > > On Tue, Jul 21, 2020 at 03:32:03PM +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.
> > > > > 
> > > > > Are there numbers showing how much memory is actually freed?
> > > > > 
> > > > > The freeing of empty memmap would become rather complex with these 
> > > > > changes, do the memory savings justify it?
> > > > 
> > > > In the sparse memory model, the size of a section is 1 GB 
> > > > (SECTION_SIZE_BITS 30) by default.
> > > 
> > > Can we reduce SECTION_SIZE_BITS instead? Say 26?
> > 
> > Yes, you are right, reduce SECTION_SIZE_BITS to 26 can save almost the
> > same memory as the patch. 
> > 
> > 1) However, it is not clear whether changing the section size has any
> > other impact.
> 
> Well, we should analyse this.
> 
> > 2) Just like the flat memory model and the sparse memory model that
> > does not define VMEMMAP, both of them have their own ways to free
> > unused memmap. I think we've given a similar way for sparse memory
> > define VMEMMAP.
> 
> I think we did it for flatmem initially (on arm32) and added support for
> sparsemem later on, so free_unused_memmap() had to cope with sparse
> sections. On arm64 we introduced vmemmap support and didn't bother with
> the freeing at all because of the added complexity of the vmemmap page
> tables.
> 
> I wonder whether we should just disallow flatmem and non-vmemmap
> sparsemem on arm64. Is there any value in keeping them around?

FLATMEM is useful for UMA systems with a single memory bank, so probably
it's worth keeping it for low end machines.

Non-vmemmap sparsemem is essentially disable in arch/arm64/Kconfig, so
for NUMA configurations SPARSEMEM_VMEMMAP is the only choice.
 
> > 3) This explicit free unused memmap method does reduce unnecessary
> > memory waste for users who do not notice the section size
> > modification.
> 
> But if we changed SECTION_SIZE_BITS in the mainline kernel, then we
> wouldn't need additional code to free the unused memmap.

Moreover if we reduce SECTION_SIZE_BITS, we can drop
free_unused_memmap() and since the arm64 memory map for sparse will not
differ from other arches we can drop custom pfn_valid() as well.
 
> -- 
> Catalin

-- 
Sincerely yours,
Mike.

  reply	other threads:[~2020-07-23 13:21 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-21  7:32 [PATCH] arm64: mm: free unused memmap for sparse memory model that define VMEMMAP Wei Li
2020-07-21  7:32 ` Wei Li
2020-07-21 16:29 ` kernel test robot
2020-07-22  1:58   ` 答复: " liwei
2020-07-22  6:07 ` Mike Rapoport
2020-07-22  6:07   ` Mike Rapoport
2020-07-22  8:41   ` 答复: " liwei (CM)
2020-07-22  8:41     ` liwei (CM)
2020-07-22 12:49     ` Catalin Marinas
2020-07-22 12:49       ` Catalin Marinas
2020-07-22 13:40       ` 答复: " liwei (CM)
2020-07-22 13:40         ` liwei (CM)
2020-07-23 11:29         ` Catalin Marinas
2020-07-23 11:29           ` Catalin Marinas
2020-07-23 13:18           ` Mike Rapoport [this message]
2020-07-23 13:18             ` Mike Rapoport
2020-07-24  3:40             ` 答复: " liwei (CM)
2020-07-24  3:40               ` liwei (CM)
2020-07-23  2:33 ` Anshuman Khandual
2020-07-23  2:33   ` Anshuman Khandual
2020-07-23  3:28   ` 答复: " liwei (CM)
2020-07-23  3:28     ` liwei (CM)
     [not found] <20200708015555.14946-1-liwei213@huawei.com>
2020-07-08  7:18 ` Song Bao Hua (Barry Song)
2020-07-08  7:51   ` 答复: " liwei (CM)
2020-07-09 12:27     ` Song Bao Hua (Barry Song)
2020-07-21  1:56       ` 答复: " liwei (CM)
2020-07-21  6:35         ` Mike Rapoport
2020-07-21 12:27           ` 答复: " liwei (CM)
2020-07-21 12:27             ` 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=20200723131837.GC1975360@linux.ibm.com \
    --to=rppt@linux.ibm.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=liwei213@huawei.com \
    --cc=nsaenzjulienne@suse.de \
    --cc=puck.chen@hisilicon.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 \
    --cc=zhaojiapeng@huawei.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.