lkml.org 
[lkml]   [2018]   [Apr]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] x86/boot/e820: add new chareater "-" to free BIOS memory in memmap bootargs
    any suggestions?

    On 2018/4/10 上午10:59, zoucao@linux.alibaba.com wrote:
    > From: zoucao <zoucao@localhost.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@linux.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);
    >

    \
     
     \ /
      Last update: 2018-04-16 13:07    [W:3.356 / U:0.284 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site