svn commit: r208589 - head/sys/mips/mips

C. Jayachandran c.jayachandran at gmail.com
Tue Jun 8 06:42:35 UTC 2010


On Tue, Jun 8, 2010 at 11:56 AM, Juli Mallett <jmallett at freebsd.org> wrote:
> On Mon, Jun 7, 2010 at 23:13, C. Jayachandran <c.jayachandran at gmail.com> wrote:
>> On Tue, Jun 8, 2010 at 9:43 AM, Juli Mallett <jmallett at freebsd.org> wrote:
>>> Do you intend to support o32 kernels in your port indefinitely?  I
>>> wonder whether this work is just stopgap until the systems which have
>>> large amounts of RAM can just use n64 kernels.
>>
>> I think the page table work will be needed for o32 and n32, and I
>> would like to support one of them as the preferred 32bit mode for our
>> port.
>
> OK.
>
>> BTW, n32 with >4GB RAM can be supported with XKPHYS for page table
>> entries. The options there would be either special allocator for the
>> segtab (11+9+12 addr space split), or to use special allocator for all
>> the page table pages (10+10+12 split).
>
> Yeah, but we have a disinterest in supporting n32 kernels in base
> because it breaks assumptions in so many parts of the kernel, so I
> think the most reasonable expectation for base is to support o32 and
> n64, and to strongly prefer n64 for systems where it's more
> appropriate.

I've been maintaining a version of n32 kernel (completely based on  on
your patches) against CURRENT, which boots into multi-user.  I would
like to compare the performance with n64 before ruling it out fully.

>>> At least on Octeon it
>>> seems to me that n64-only is the right answer if at all possible,
>>> since there are really a lot of parts of the kernel that just can't
>>> reasonably work otherwise (use of rman_get_virtual with io ports, for
>>> instance.)
>>
>> Not sure I understand this part - I thought pmap_mapdev() would handle
>> these - but I may be mistaken.
>
> There's nothing pmap_mapdev can do on an o32 kernel with 32-bit PTEs
> for a physical address >2^36.  (There are rather a lot of those on
> Octeon.)

In XLR the boot-loader sets up the base registers to fall within 2^32.
 It even sets up some of the SoC, FLASH and PCI memory areas in KSEG0,
so we end up with 256MB usable in KSEG0.  These can be easily
re-mapped, but I'd rather not change the boot loader settings just for
FreeBSD.

JC.


More information about the freebsd-mips mailing list