io apic question

John Baldwin jhb at freebsd.org
Fri Sep 8 18:45:33 UTC 2006


On Friday 08 September 2006 14:34, Bharath Bhushan wrote:
> Thanks John.
> 
> Can you please point me to the place where cache-disabled mapping is
> being done in 7.0?
> I looked at -- ioapic_create -> pmap_mapdev -> pmap_kenter ->
> pte_store(pte, pa | PG_RW | PG_V | pgeflag);
> 
> I could not find any references to PG_N in code related to pmap or to 
IOAPICs.

In 7.0 pmap_mapdev() calls pmap_mapdev_attr(..., PAT_UNCACHEABLE).
 
> On 9/6/06, John Baldwin <jhb at freebsd.org> wrote:
> > On Saturday 02 September 2006 02:26, Bharath Bhushan wrote:
> > > I am looking at 4.9 sources.
> > >
> > > When the local apic is mapped into SMPpt in
> > > sys/i386/i386/pmap.c:pmap_bootstrap(), it is mapped cache-disabled
> > > (PG_N).
> > >
> > > When the IO apics are being mapped into SMPpt in
> > > sys/i386/i386/mp_machdep.c:mptable_pass2(), it is *not* mapped
> > > cache-disabled.
> > >
> > > Why is this difference?
> >
> > Probably a bug.
> >
> > > In 5.5, I see that ioapic_create() calls pmap_createdev(), which
> > > allocates cache-enabled kind of mapping.
> > >
> > > Am I missing something here?
> >
> > In 7.0 we map them cache-disabled now.
> >
> > --
> > John Baldwin
> >
> 
> 
> -- 
> Thanks
> Bharath
> 

-- 
John Baldwin


More information about the freebsd-ia32 mailing list