Terry Lambert wrote:
> "Cameron, Frank" wrote:
> > From what was posted on the linux-kernel list the problem is the OS
> > doing the wrong thing not the hardware.  I originally asked the
> > question (albeit not worded as clearly as I should have) because if
> > Microsoft and Linux programmers made the same mistake, might
> > FreeBSD have also.
> 
> No.  FreeBSD does not make active use of 4M pages for anything
> other than the initial kernel text and data, which is obvious,
> if you look at /sys/i386/machdep.c.

Actually, it is obvious if you actually do look at the pmap.c that we *do*
use 4MB pages for device mappings.

        /*
         * This code maps large physical mmap regions into the
         * processor address space.  Note that some shortcuts
         * are taken, but the code works.
         */
        if (pseflag && (object->type == OBJT_DEVICE) &&
            ((addr & (NBPDR - 1)) == 0) && ((size & (NBPDR - 1)) == 0)) {
...
                for(i = 0; i < npdes; i++) {
                        pmap->pm_pdir[ptepindex] =
                            ptepa | PG_U | PG_RW | PG_V | PG_PS;
                        ptepa += NBPDR;
                        ptepindex += 1;
                }
...

Even doing a simple grep for the 4MB page flag (PG_PS) and using a
little initiative would have shown this.

Cheers,
-Peter
--
Peter Wemm - [EMAIL PROTECTED]; [EMAIL PROTECTED]; [EMAIL PROTECTED]
"All of this is for nothing if we don't go to the stars" - JMS/B5


To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to