PERFORCE change 153267 for review
Nathan Whitehorn
nwhitehorn at freebsd.org
Thu Nov 20 10:22:46 PST 2008
Marcel Moolenaar wrote:
>
> On Nov 20, 2008, at 9:07 AM, Nathan Whitehorn wrote:
>
>> http://perforce.freebsd.org/chv.cgi?CH=153267
>>
>> Change 153267 by nwhitehorn at nwhitehorn_trantor on 2008/11/20 17:07:25
>>
>> Make ofw_real work on kernels with options SMP by making the bounce
>> page static. On SMP systems, we can get OF calls after the MMU is on
>> but before the VM is up. This means contigmalloc() is not available.
>> This is not a good solution, but I can't think of anything else.
>
> You can grab pages by adjusting phys_avail. This achieves
> pretty much the same, but avoids bloating the kernel. If
> it's possible to give those pages back to the VM after the
> VM has been initialized, then that would be another
> benefit...
The trouble with doing things like this is that the OF access code can
be called at unpredictable times, so it may not be called between the
time the MMU turns on (and phys_avail is created), and when the VM has
taken ownership of phys_avail. It then needs knowledge of how far along
it is in the boot process in much more detail than !pmap_bootstrapped in
order to determine exactly what it is allowed to do at that time. An
alternative is that the MMU init code could allocate the page, but it
then needs to know about the internals of the OF access, which I would
like to avoid.
I suppose we could checkpoint this with some sysinits bracketed around
the VM system, but that starts getting ugly. It might be the only way to
proceed that doesn't bloat the kernel, though.
-Nathan
More information about the p4-projects
mailing list