From: "Russell King (Oracle)" <linux@armlinux.org.uk> To: Yanfei Xu <yanfei.xu@windriver.com> Cc: rppt@kernel.org, ardb@kernel.org, linus.walleij@linaro.org, akpm@linux-foundation.org, carver4lio@163.com, tiantao6@hisilicon.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] arm: make the size of vmalloc in cmdline and meminfo uniform Date: Tue, 18 May 2021 12:29:32 +0100 [thread overview] Message-ID: <20210518112932.GV12395@shell.armlinux.org.uk> (raw) In-Reply-To: <20210518111254.3820480-1-yanfei.xu@windriver.com> On Tue, May 18, 2021 at 07:12:54PM +0800, Yanfei Xu wrote: > The value of "vmalloc=" set in cmdline is always 8M more than the value > of "VmallocTotal" in meminfo. When use the "vmalloc=" parameter, user > expect to get the size what they input, and no need to consider the 8M > "hole" hided in codes. This commit make real vmalloc size equal to value > of "vmalloc=" in cmdline. > > Also, the commit will reduce the size of vmalloc printed in boot message > by 8M when the size set in cmdline is irrational. Hi, I think I'd like to do several cleanups with this: 1. change vmalloc_min to be an unsigned long. 2. exclude VMALLOC_OFFSET from vmalloc_min, moving it into adjust_lowmem_bounds where vmalloc_min is used. 3. rename vmalloc_min to be vmalloc_start 4. enforce vmalloc_start to be a multiple of 2MiB 5. in early_vmalloc(), calculate vmalloc_max as: VMALLOC_END - (PAGE_OFFSET + SZ_32M + VMALLOC_OFFSET) and use that to set the upper bound of vmalloc_reserve (which is something your patch doesn't do, which I think is a bug. Thoughts? > > Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com> > --- > arch/arm/mm/mmu.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c > index c1e12aab67b8..287c5115af4d 100644 > --- a/arch/arm/mm/mmu.c > +++ b/arch/arm/mm/mmu.c > @@ -1133,19 +1133,20 @@ static int __init early_vmalloc(char *arg) > { > unsigned long vmalloc_reserve = memparse(arg, NULL); > > - if (vmalloc_reserve < SZ_16M) { > - vmalloc_reserve = SZ_16M; > + vmalloc_reserve = ALIGN_DOWN(vmalloc_reserve, SZ_8M); > + if (vmalloc_reserve < SZ_8M) { > + vmalloc_reserve = SZ_8M; > pr_warn("vmalloc area too small, limiting to %luMB\n", > vmalloc_reserve >> 20); > } > > if (vmalloc_reserve > VMALLOC_END - (PAGE_OFFSET + SZ_32M)) { > - vmalloc_reserve = VMALLOC_END - (PAGE_OFFSET + SZ_32M); > + vmalloc_reserve = VMALLOC_END - (PAGE_OFFSET + SZ_32M + VMALLOC_OFFSET); > pr_warn("vmalloc area is too big, limiting to %luMB\n", > vmalloc_reserve >> 20); > } > > - vmalloc_min = (void *)(VMALLOC_END - vmalloc_reserve); > + vmalloc_min = (void *)(VMALLOC_END - vmalloc_reserve - VMALLOC_OFFSET); > return 0; > } > early_param("vmalloc", early_vmalloc); > -- > 2.27.0 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last!
WARNING: multiple messages have this Message-ID (diff)
From: "Russell King (Oracle)" <linux@armlinux.org.uk> To: Yanfei Xu <yanfei.xu@windriver.com> Cc: rppt@kernel.org, ardb@kernel.org, linus.walleij@linaro.org, akpm@linux-foundation.org, carver4lio@163.com, tiantao6@hisilicon.com, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] arm: make the size of vmalloc in cmdline and meminfo uniform Date: Tue, 18 May 2021 12:29:32 +0100 [thread overview] Message-ID: <20210518112932.GV12395@shell.armlinux.org.uk> (raw) In-Reply-To: <20210518111254.3820480-1-yanfei.xu@windriver.com> On Tue, May 18, 2021 at 07:12:54PM +0800, Yanfei Xu wrote: > The value of "vmalloc=" set in cmdline is always 8M more than the value > of "VmallocTotal" in meminfo. When use the "vmalloc=" parameter, user > expect to get the size what they input, and no need to consider the 8M > "hole" hided in codes. This commit make real vmalloc size equal to value > of "vmalloc=" in cmdline. > > Also, the commit will reduce the size of vmalloc printed in boot message > by 8M when the size set in cmdline is irrational. Hi, I think I'd like to do several cleanups with this: 1. change vmalloc_min to be an unsigned long. 2. exclude VMALLOC_OFFSET from vmalloc_min, moving it into adjust_lowmem_bounds where vmalloc_min is used. 3. rename vmalloc_min to be vmalloc_start 4. enforce vmalloc_start to be a multiple of 2MiB 5. in early_vmalloc(), calculate vmalloc_max as: VMALLOC_END - (PAGE_OFFSET + SZ_32M + VMALLOC_OFFSET) and use that to set the upper bound of vmalloc_reserve (which is something your patch doesn't do, which I think is a bug. Thoughts? > > Signed-off-by: Yanfei Xu <yanfei.xu@windriver.com> > --- > arch/arm/mm/mmu.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c > index c1e12aab67b8..287c5115af4d 100644 > --- a/arch/arm/mm/mmu.c > +++ b/arch/arm/mm/mmu.c > @@ -1133,19 +1133,20 @@ static int __init early_vmalloc(char *arg) > { > unsigned long vmalloc_reserve = memparse(arg, NULL); > > - if (vmalloc_reserve < SZ_16M) { > - vmalloc_reserve = SZ_16M; > + vmalloc_reserve = ALIGN_DOWN(vmalloc_reserve, SZ_8M); > + if (vmalloc_reserve < SZ_8M) { > + vmalloc_reserve = SZ_8M; > pr_warn("vmalloc area too small, limiting to %luMB\n", > vmalloc_reserve >> 20); > } > > if (vmalloc_reserve > VMALLOC_END - (PAGE_OFFSET + SZ_32M)) { > - vmalloc_reserve = VMALLOC_END - (PAGE_OFFSET + SZ_32M); > + vmalloc_reserve = VMALLOC_END - (PAGE_OFFSET + SZ_32M + VMALLOC_OFFSET); > pr_warn("vmalloc area is too big, limiting to %luMB\n", > vmalloc_reserve >> 20); > } > > - vmalloc_min = (void *)(VMALLOC_END - vmalloc_reserve); > + vmalloc_min = (void *)(VMALLOC_END - vmalloc_reserve - VMALLOC_OFFSET); > return 0; > } > early_param("vmalloc", early_vmalloc); > -- > 2.27.0 > > > _______________________________________________ > linux-arm-kernel mailing list > linux-arm-kernel@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-arm-kernel > -- RMK's Patch system: https://www.armlinux.org.uk/developer/patches/ FTTP is here! 40Mbps down 10Mbps up. Decent connectivity at last! _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2021-05-18 11:29 UTC|newest] Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-05-18 11:12 [PATCH] arm: make the size of vmalloc in cmdline and meminfo uniform Yanfei Xu 2021-05-18 11:12 ` Yanfei Xu 2021-05-18 11:29 ` Russell King (Oracle) [this message] 2021-05-18 11:29 ` Russell King (Oracle) 2021-05-18 12:06 ` Russell King (Oracle) 2021-05-18 12:06 ` Russell King (Oracle) 2021-05-18 12:15 ` [PATCH 1/4] ARM: change vmalloc_min to be unsigned long Russell King (Oracle) 2021-05-18 12:15 ` Russell King (Oracle) 2021-05-18 22:09 ` Linus Walleij 2021-05-18 22:09 ` Linus Walleij 2021-05-18 12:15 ` [PATCH 2/4] ARM: use a temporary variable to hold maximum vmalloc size Russell King (Oracle) 2021-05-18 12:15 ` Russell King (Oracle) 2021-05-18 22:11 ` Linus Walleij 2021-05-18 22:11 ` Linus Walleij 2021-05-18 12:15 ` [PATCH 3/4] ARM: change vmalloc_min to vmalloc_start Russell King (Oracle) 2021-05-18 12:15 ` Russell King (Oracle) 2021-05-18 22:19 ` Linus Walleij 2021-05-18 22:19 ` Linus Walleij 2021-05-18 22:26 ` Nicolas Pitre 2021-05-18 22:26 ` Nicolas Pitre 2021-05-18 22:32 ` Nicolas Pitre 2021-05-18 22:32 ` Nicolas Pitre 2021-05-18 22:34 ` Linus Walleij 2021-05-18 22:34 ` Linus Walleij 2021-05-18 22:38 ` Nicolas Pitre 2021-05-18 22:38 ` Nicolas Pitre 2021-05-28 9:55 ` Russell King (Oracle) 2021-05-28 9:55 ` Russell King (Oracle) 2021-05-19 4:41 ` Xu, Yanfei 2021-05-19 4:41 ` Xu, Yanfei 2021-05-20 9:00 ` Russell King (Oracle) 2021-05-20 9:00 ` Russell King (Oracle) 2021-05-28 2:52 ` Xu, Yanfei 2021-05-28 2:52 ` Xu, Yanfei 2021-05-28 10:00 ` Russell King (Oracle) 2021-05-28 10:00 ` Russell King (Oracle) 2021-05-19 5:25 ` Xu, Yanfei 2021-05-19 5:25 ` Xu, Yanfei 2021-05-18 12:15 ` [PATCH 4/4] ARM: change vmalloc_start to vmalloc_size Russell King (Oracle) 2021-05-18 12:15 ` Russell King (Oracle) 2021-05-18 22:21 ` Linus Walleij 2021-05-18 22:21 ` Linus Walleij 2021-05-19 4:39 ` [PATCH] arm: make the size of vmalloc in cmdline and meminfo uniform Xu, Yanfei 2021-05-19 4:39 ` Xu, Yanfei 2021-05-19 5:32 ` Xu, Yanfei 2021-05-19 5:32 ` Xu, Yanfei 2021-05-20 4:52 ` Alexander Dahl 2021-05-20 4:52 ` Alexander Dahl 2021-05-20 6:50 ` Xu, Yanfei 2021-05-20 6:50 ` Xu, Yanfei 2021-05-28 10:11 ` [PATCH v2 1/6] ARM: change vmalloc_min to be unsigned long Russell King (Oracle) 2021-05-28 10:11 ` Russell King (Oracle) 2021-05-28 13:10 ` Xu, Yanfei 2021-05-28 13:10 ` Xu, Yanfei 2021-05-28 10:11 ` [PATCH v2 2/6] ARM: use a temporary variable to hold maximum vmalloc size Russell King (Oracle) 2021-05-28 10:11 ` Russell King (Oracle) 2021-05-28 13:11 ` Xu, Yanfei 2021-05-28 13:11 ` Xu, Yanfei 2021-05-28 10:11 ` [PATCH v2 3/6] ARM: change vmalloc_min to vmalloc_start Russell King (Oracle) 2021-05-28 10:11 ` Russell King (Oracle) 2021-05-28 12:21 ` Linus Walleij 2021-05-28 12:21 ` Linus Walleij 2021-05-28 13:05 ` Xu, Yanfei 2021-05-28 13:05 ` Xu, Yanfei 2021-05-28 10:11 ` [PATCH v2 4/6] ARM: change vmalloc_start to vmalloc_size Russell King (Oracle) 2021-05-28 10:11 ` Russell King (Oracle) 2021-05-28 12:22 ` Linus Walleij 2021-05-28 12:22 ` Linus Walleij 2021-05-28 13:15 ` Xu, Yanfei 2021-05-28 13:15 ` Xu, Yanfei 2021-05-28 10:11 ` [PATCH v2 5/6] ARM: use "* SZ_1M" rather than "<< 20" Russell King (Oracle) 2021-05-28 10:11 ` Russell King (Oracle) 2021-05-28 12:23 ` Linus Walleij 2021-05-28 12:23 ` Linus Walleij 2021-05-28 13:17 ` Xu, Yanfei 2021-05-28 13:17 ` Xu, Yanfei 2021-05-28 10:11 ` [PATCH v2 6/6] ARM: use MiB for vmalloc sizes Russell King (Oracle) 2021-05-28 10:11 ` Russell King (Oracle) 2021-05-28 12:24 ` Linus Walleij 2021-05-28 12:24 ` Linus Walleij 2021-05-28 13:20 ` Xu, Yanfei 2021-05-28 13:20 ` Xu, Yanfei
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=20210518112932.GV12395@shell.armlinux.org.uk \ --to=linux@armlinux.org.uk \ --cc=akpm@linux-foundation.org \ --cc=ardb@kernel.org \ --cc=carver4lio@163.com \ --cc=linus.walleij@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=rppt@kernel.org \ --cc=tiantao6@hisilicon.com \ --cc=yanfei.xu@windriver.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: linkBe 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.