svn commit: r186730 - in head: lib/libusb20
sys/dev/usb2/controller sys/dev/usb2/core
sys/dev/usb2/ethernet sys/dev/usb2/image sys/dev/usb2/include
sys/dev/usb2/serial sys/dev/usb2/sound sys/dev/us...
Mark Tinguely
tinguely at casselton.net
Wed Jan 7 18:46:18 UTC 2009
> On Wed, 7 Jan 2009 17:51:48 +0100
> Hans Petter Selasky <hselasky at c2i.net> mentioned:
>
> >
> > cpu_idcache_wbinv_all(); /* and this line */
> >
> > bus_dmamap_sync(pc->tag, pc->map,
> > BUS_DMASYNC_POSTWRITE | BUS_DMASYNC_POSTREAD);
> > }
> >
> > Then everything worked.
> >
> > I think the ones that have been working on busdma & cache sync issues recently
> > are to blame. I will try to investigate more.
> >
>
> Hmm, this might be the same problem with duplicate dcache entries raj reported
> recently on arm at . I tried replacing cpu_idcache_wbinv_all with busdma PREREAD
> and PREWRITE sync, but this doesn't work.
>
> BTW, even with cpu_idcache_wbinv_all change I'm still observing some CAM
> request retires under high load, so we really seem to have a generic cache
> issue somewhere.
>
> - --
> Stanislav Sedov
> ST4096-RIPE
It could be the same problem if there is a duplicate kernel mapping. If
there is no duplicate kernel mapping, then there is another cache leak
somewhere.
Because a duplicate kernel mapping currently does not turn off the
caches in either mapping, even the wb/inv trick is a cache russian rollette
situation.
If someone wants to look at very rough code - I don't have a current box
to even compile it, I don't know anyone besides myself and Olivier Houchard
that is up on the ARM pmap code, but I am looking for someone who will
give this an eyeball. There can be consequences to adding pv_entrys where none
existed before. I don't want people to blindly download and attempt to run it.
My fix idea is to manage all mapped pages, with the expection of ficticous
pages. I don't think fictiicous pages can be mapped twice. We need to manage
them to turn caching off on all the mappings when there is multiple writers
or a writer/reader case.
--Mark Tinguely.
More information about the freebsd-arm
mailing list