Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 20 Dec 2005 09:59:15 -0500
From:      John Baldwin <jhb@freebsd.org>
To:        Maxim.Sobolev@portaone.com
Cc:        cvs-src@freebsd.org, src-committers@freebsd.org, cvs-all@freebsd.org
Subject:   Re: cvs commit: src/sys/boot/i386/loader main.c
Message-ID:  <200512200959.16641.jhb@freebsd.org>
In-Reply-To: <43A7895C.9060608@portaone.com>
References:  <200512190926.jBJ9QhbD078141@repoman.freebsd.org> <200512191420.03927.jhb@freebsd.org> <43A7895C.9060608@portaone.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Monday 19 December 2005 11:32 pm, Maxim Sobolev wrote:
> John Baldwin wrote:
> > On Monday 19 December 2005 01:32 pm, Maxim Sobolev wrote:
> >> John Baldwin wrote:
> >>> On Monday 19 December 2005 04:26 am, Maxim Sobolev wrote:
> >>>> sobomax     2005-12-19 09:26:42 UTC
> >>>>
> >>>>   FreeBSD src repository
> >>>>
> >>>>   Modified files:
> >>>>     sys/boot/i386/loader main.c
> >>>>   Log:
> >>>>   If LOADER_BZIP2_SUPPORT is defined allocate heap in the 1MB-4MB
> >>>> range to provide enough room for decompression (up to 2.5MB is
> >>>> necessary). This should be safe to do since we load i386 kernels after
> >>>> 8MB mark now, so that 16MB is the minimum amount of RAM necessary to
> >>>> even boot FreeBSD.
> >>>
> >>> Err, I thought we loaded PAE kernels at 2MB and non-PAE kernels at 4MB
> >>> to skip the first PSE page (PSE pages are 2MB on PAE).
> >>
> >> You are right, my mistake, sorry. In any case memory in the range
> >> 1MB-4MB can be used by default.
> >
> > Errm, no it can't.  PAE kernels (and amd64 kernels I think) are both
> > loaded at 2MB, so that only leaves memory in the range 1MB-2MB.
>
> I see, did not know about amd64 (PAE is less a concern for me since it's
> not a default kernel). What do you think about the following patch:
>
> http://www.pbxpress.com/~sobomax/loader.diff
>
> It moves heap to the top of the extended memory and teaches
> i386_copyin() to avoid messing up this region, so that in low memory
> situation it will just fail, not trash heap.

So, if I understand correctly, you're now sticking the heap at the last 3MB of 
RAM.  FYI, as long as you have a PPro or newer you can test booting a PAE 
kernel.  You don't have to have > 4GB of RAM. So, you can test this locally 
to see if you can boot a PAE kernel (bzipped at that!) before committing.

-- 
John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200512200959.16641.jhb>