[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <5AD483BD.70804@gmail.com>
Date: Mon, 16 Apr 2018 19:06:37 +0800
From: zoucao-ipc <zoucaox@...il.com>
To: zoucao@...ux.alibaba.com, tglx@...utronix.de, mingo@...hat.com,
hpa@...or.com
CC: x86@...nel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] x86/boot/e820: add new chareater "-" to free BIOS memory
in memmap bootargs
any suggestions?
On 2018/4/10 上午10:59, zoucao@...ux.alibaba.com wrote:
> From: zoucao <zoucao@...alhost.localdomain>
>
> Normally every BIOS reserved memory is used for some features, we can't
> use them, but in some conditions, users can ensure some BIOS memories
> are not used and reserved memory is well to free, they have not a good
> way to free these memories, here add a new chareater "-" in memmap to
> free reserved memory.
>
> Signed-off-by: zou cao <zoucao@...ux.alibaba.com>
> ---
> 7u/Documentation/kernel-parameters.txt | 6 ++++++
> 7u/arch/x86/kernel/e820.c | 3 +++
> 2 files changed, 9 insertions(+)
>
> diff --git a/7u/Documentation/kernel-parameters.txt b/7u/Documentation/kernel-parameters.txt
> index 9a1abb99a..dbea75e12 100644
> --- a/7u/Documentation/kernel-parameters.txt
> +++ b/7u/Documentation/kernel-parameters.txt
> @@ -1677,6 +1677,12 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
> or
> memmap=0x10000$0x18690000
>
> + memmap=nn[KMG]-ss[KMG]
> + Free E820 reserved memory, as specified by the user.
> + Region of reserved memory to be free, from ss to ss+nn.
> + Example: free reserved memory from 0x18690000-0x186a0000
> + memmap=0x4101000-0x6aeff000
> +
> memory_corruption_check=0/1 [X86]
> Some BIOSes seem to corrupt the first 64k of
> memory when doing things like suspend/resume.
> diff --git a/7u/arch/x86/kernel/e820.c b/7u/arch/x86/kernel/e820.c
> index 174da5fc5..b8a042981 100644
> --- a/7u/arch/x86/kernel/e820.c
> +++ b/7u/arch/x86/kernel/e820.c
> @@ -875,6 +875,9 @@ static int __init parse_memmap_one(char *p)
> } else if (*p == '$') {
> start_at = memparse(p+1, &p);
> e820_add_region(start_at, mem_size, E820_RESERVED);
> + } else if (*p == '-') {
> + start_at = memparse(p+1, &p);
> + e820_remove_range(start_at, mem_size, E820_RESERVED, E820_RAM);
> } else
> e820_remove_range(mem_size, ULLONG_MAX - mem_size, E820_RAM, 1);
>
Powered by blists - more mailing lists