Boot loader + malloc
Jordan Gordeev
jgordeev at dir.bg
Thu Aug 21 17:50:26 UTC 2008
Oliver Fromme wrote:
> Hello,
>
> I've got a small question regarding $subject. I'm looking
> at this code snippet from src/sys/boot/i386/loader/main.c:
>
> #if defined(LOADER_BZIP2_SUPPORT) || defined(LOADER_FIREWIRE_SUPPORT)
> heap_top = PTOV(memtop_copyin);
> memtop_copyin -= 0x300000;
> heap_bottom = PTOV(memtop_copyin);
> #else
> heap_top = (void *)bios_basemem;
> heap_bottom = (void *)end;
> #endif
> setheap(heap_bottom, heap_top);
>
> If I understand correctly, the boot loader will use only
> low memory (i.e. below 0x100000) for malloc by default.
> Extended memory is only used if bzip2 or firewire support
> are enabled (not default). Is this intentional? Would it
> make sense to toggle the default and always use extended
> memory, unless disabled?
>
> I'm asking because the upcoming graphics support requires
> a little bit of memory for fonts and images, but there's
> only less than about 80 KB left in low memory, which is
> insufficient except for very trivial things. The loader
> kept crashing on me in nasty ways because of that.
>
> In my p4 branch I modified the above #if to also use
> extended memory if LOADER_GRAPHICS_SUPPORT is defined,
> giving me 3 MB of memory to play with, which is plenty.
> Is that OK, or should I expect trouble?
>
> Any comments are appreciated.
>
> Best regards
> Oliver
>
>
At present the amd64 kernel is loaded just above the first megabyte of
physical memory.
I have no idea if the loader uses malloc()/free() after the kernel is
loaded though.
More information about the freebsd-hackers
mailing list