Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Aug 2012 08:31:19 -0600
From:      Ian Lepore <freebsd@damnhippie.dyndns.org>
To:        Warner Losh <imp@bsdimp.com>
Cc:        freebsd-arm@freebsd.org, Hans Petter Selasky <hans.petter.selasky@bitfrost.no>, freebsd-mips@freebsd.org, freebsd-arch@freebsd.org
Subject:   Re: Partial cacheline flush problems on ARM and MIPS
Message-ID:  <1346164279.1140.328.camel@revolution.hippie.lan>
In-Reply-To: <AAA06FDC-19E1-47B3-B29F-FD2E8F57022B@bsdimp.com>
References:  <1345757300.27688.535.camel@revolution.hippie.lan> <3A08EB08-2BBF-4B0F-97F2-A3264754C4B7@bsdimp.com> <1345763393.27688.578.camel@revolution.hippie.lan> <FD8DC82C-AD3B-4EBC-A625-62A37B9ECBF1@bsdimp.com> <1345765503.27688.602.camel@revolution.hippie.lan> <CAJ-VmonOwgR7TNuYGtTOhAbgz-opti_MRJgc8G%2BB9xB3NvPFJQ@mail.gmail.com> <1345766109.27688.606.camel@revolution.hippie.lan> <CAJ-VmomFhqV5rTDf-kKQfbSuW7SSiSnqPEjGPtxWjaHFA046kQ@mail.gmail.com> <F8C9E811-8597-4ED0-9F9D-786EB2301D6F@bsdimp.com> <1346002922.1140.56.camel@revolution.hippie.lan> <CAP%2BM-_HZ4yARwZA2koPJDeJWHT-1LORupjymuVnMtLBzeXe=DA@mail.gmail.com> <1346005507.1140.69.camel@revolution.hippie.lan> <10307B47-13F3-45C0-87F7-66FD3ACA3F86@bsdimp.com> <1346081557.1140.181.camel@revolution.hippie.lan> <AAA06FDC-19E1-47B3-B29F-FD2E8F57022B@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 2012-08-27 at 09:57 -0600, Warner Losh wrote:
> >> I don't think the cache line problem can be solved with bounce
> buffers.  Trying to accommodate broken drivers is what lead us to this
> spot.  We need to fix the broken drivers.  If that's impossible, then
> the best we can do is have the driver set a 'always bounce' flag in
> the tag it creates and use that to always bounce for operations
> through that tag.
> > 
> > So you'd be okay with a driver setting a flag that says "always
> bounce"
> > but not okay with the busdma layer bouncing only when it's actually
> > necessary?  I'm confused -- do you think the busdma layer will be
> unable
> > to detect when it's necessary unless directed from the outside?
> 
> Actually, it is good you are confused.  I was wrong when I said I'd be
> happy with a flag that says always bounce. The reason is that the
> driver can do this all the time for those cases like the at91 mci
> driver does. 

After studying the busdma implementation code and pondering this some
more, I now understand why the automatic bouncing that I think is the
ideal solution to this is so hard to accomplish.  I'm not sure
"Impossible" is the right description, but I'm afraid that in the long
run "impractical" might turn out to be the case.  I'm going to think all
this over for a few days, maybe do a bit of actual paying work, before
revisiting it.

-- Ian




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1346164279.1140.328.camel>