lkml.org 
[lkml]   [2018]   [Aug]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] x86, mm: Reserver some memory for bootmem allocator for NO_BOOTMEM
On Thu, 30 Aug 2018, Feng Tang wrote:
> On Thu, Aug 30, 2018 at 03:05:31PM +0200, Thomas Gleixner wrote:
> > > Those [_text, __bss_stop] is not able to be used by alloc_bootmem(). And I
> > > only got this patch, and really appreciate any good suggestions.
> >
> > And why do you want to use bootmem in the first place? If boot mem is going
> > away, why are you not fixing the early console crap to NOT use bootmem at
> > all?
>
> The earlycon need use fixmap to map the mmio register, while fixmap will
> need a new page for page table if the pmd/pte is not already their, as shown
> in the commit log:
>
> panic+0xd2/0x220
> __alloc_bootmem+0x31/0x34
> spp_getpage+0x60/0x8a
> fill_pte+0x71/0x130
> __set_pte_vaddr+0x1d/0x50
> set_pte_vaddr+0x3c/0x60
> __native_set_fixmap+0x23/0x30
> native_set_fixmap+0x30/0x40
> setup_earlycon+0x1e0/0x32f
> param_setup_earlycon+0x13/0x22
> do_early_param+0x5b/0x90
> parse_args+0x1f7/0x300
> parse_early_options+0x24/0x28
> parse_early_param+0x65/0x73
> setup_arch+0x31e/0x9f1
> start_kernel+0x58/0x44e
>
> inside the spp_getpage():
>
> if (after_bootmem)
> ptr = (void *) get_zeroed_page(GFP_ATOMIC);
> else
> ptr = alloc_bootmem_pages(PAGE_SIZE);

And where is the problem? We know that we need the fixmap during early boot
anyway, so allocating the PTE page statically and setting it up early
enough is not really rocket science. No allocator required.

Thanks,

tglx

\
 
 \ /
  Last update: 2018-08-30 15:25    [W:0.089 / U:0.112 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site