2018-07-02 21:15:25

by Nikunj Kela (nkela)

[permalink] [raw]
Subject: [PATCH 2/2] arm64: add support for 43bit physical address

This patch adds support for 43bit physical address. Additionally,
this patch adds support for 27bit section size. This is useful in
reducing kernel memory usage. One usecase is in kdump kernel.

Cc: [email protected]
Cc: Nikunj Kela <[email protected]>
Signed-off-by: Nikunj Kela <[email protected]>
---
arch/arm64/Kconfig | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index edf327f..76d0bfb 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -665,6 +665,9 @@ choice
Choose the maximum physical address range that the kernel will
support.

+config ARM64_PA_BITS_43
+ bool "43-bit"
+
config ARM64_PA_BITS_48
bool "48-bit"

@@ -684,6 +687,7 @@ endchoice

config ARM64_PA_BITS
int
+ default 43 if ARM64_PA_BITS_43
default 48 if ARM64_PA_BITS_48
default 52 if ARM64_PA_BITS_52

@@ -693,6 +697,9 @@ choice
help
Choose the maximum amount of memory in a section.

+config ARM64_SEC_BITS_27
+ bool "27-bit"
+
config ARM64_SEC_BITS_30
bool "30-bit"

@@ -700,6 +707,7 @@ endchoice

config ARM64_SEC_BITS
int
+ default 27 if ARM64_SEC_BITS_27
default 30 if ARM64_SEC_BITS_30

config CPU_BIG_ENDIAN
--
2.5.0



2018-07-03 14:57:34

by Catalin Marinas

[permalink] [raw]
Subject: Re: [PATCH 2/2] arm64: add support for 43bit physical address

On Mon, Jul 02, 2018 at 02:04:51PM -0700, Nikunj Kela wrote:
> This patch adds support for 43bit physical address. Additionally,
> this patch adds support for 27bit section size. This is useful in
> reducing kernel memory usage. One usecase is in kdump kernel.

Some numbers please.

--
Catalin

2018-07-03 18:36:29

by Nikunj Kela (nkela)

[permalink] [raw]
Subject: Re: [PATCH 2/2] arm64: add support for 43bit physical address

We are trying to reduce the memory allocation needed for kdump kernel. We want to reserve less than 32M for kdump kernel if possible. We are able to get ~14M saving by the proposed change. Below are the numbers before and after the proposed change:

With 48 bit physical address and 30 bit section size:
--------------------------------------------------------------------

Memory: 23052K/49152K available (3460K kernel code, 296K rwdata, 2436K rodata, 204K init, 179K bss, 26100K reserved, 0K cma-reserved)

With 43 bit physical address and 27bit section size:
--------------------------------------------------------------------

Memory: 37284K/49152K available (3596K kernel code, 296K rwdata, 2408K rodata, 208K init, 173K bss, 11868K reserved, 0K cma-reserved)

Thanks,
-Nikunj
________________________________________
From: Catalin Marinas <[email protected]>
Sent: Tuesday, July 3, 2018 7:56 AM
To: Nikunj Kela (nkela)
Cc: Will Deacon; [email protected]; [email protected]; [email protected]
Subject: Re: [PATCH 2/2] arm64: add support for 43bit physical address

On Mon, Jul 02, 2018 at 02:04:51PM -0700, Nikunj Kela wrote:
> This patch adds support for 43bit physical address. Additionally,
> this patch adds support for 27bit section size. This is useful in
> reducing kernel memory usage. One usecase is in kdump kernel.

Some numbers please.

--
Catalin

2018-07-05 18:35:57

by Catalin Marinas

[permalink] [raw]
Subject: Re: [PATCH 2/2] arm64: add support for 43bit physical address

On Tue, Jul 03, 2018 at 06:35:32PM +0000, Nikunj Kela (nkela) wrote:
> We are trying to reduce the memory allocation needed for kdump kernel.
> We want to reserve less than 32M for kdump kernel if possible. We are
> able to get ~14M saving by the proposed change.

Have you tried disabling SPARSEMEM and using FLATMEM for this case? With
32M you wouldn't need more than a section anyway. It needs some tweaking
of the arm64 Kconfig and probably fail to build.

--
Catalin

2018-07-05 23:46:02

by Nikunj Kela (nkela)

[permalink] [raw]
Subject: Re: [PATCH 2/2] arm64: add support for 43bit physical address

I didn’t try FLATMEM. Thanks for advising, I enabled FLATMEM for ARM64 and am able to save ~14M. Will post a new patch for Kconfig changes.

Thanks,
-Nikunj

On 7/5/18, 11:35 AM, "Catalin Marinas" <[email protected]> wrote:

On Tue, Jul 03, 2018 at 06:35:32PM +0000, Nikunj Kela (nkela) wrote:
> We are trying to reduce the memory allocation needed for kdump kernel.
> We want to reserve less than 32M for kdump kernel if possible. We are
> able to get ~14M saving by the proposed change.

Have you tried disabling SPARSEMEM and using FLATMEM for this case? With
32M you wouldn't need more than a section anyway. It needs some tweaking
of the arm64 Kconfig and probably fail to build.

--
Catalin