Re: How to map high memory for block io

Jens Axboe
2006-03-02T07:21:51Z

On Wed, Mar 01 2006, Russell King wrote:
> On Tue, Jan 31, 2006 at 07:39:02PM +0100, Pierre Ossman wrote:
> > Jens Axboe wrote:
> > > On Mon, Jan 30 2006, Pierre Ossman wrote:
> > >
> > >> Jens Axboe wrote:
> > >>
> > >>>
> > >>> Ah, you need to disable clustering to prevent that from happening! I was
> > >>> confused there for a while.
> > >>>
> > >>>
> > >>>
> > >> And which is the lesser evil, highmem bounce buffers or disabling
> > >> clustering? I'd probably vote for the former since the MMC overhead can
> > >> be quite large.
> > >>
> > >
> > > Disabling clustering is by far the least expensive way to accomplish it.
> > >
> > >
> >
> > Russell, what's your view on this? And how should we handle it with
> > regard to MMC drivers?
>
> Okay, I've hit this same problem (but in a slightly different way) with
> mmci.c. The way I'm proposing to fix this for mmci is to introduce a
> new capability which says "clustering is supported by this driver."
>
> I'm unconvinced that we can safely fiddle with the queue's flags once
> the queue is in use, hence why I've gone for the init-time only solution.
> Maybe Jens can comment on that?

You can set it anytime, basically, provided you use the atomic bit
operations on it. Of course you may be left with clustered and
non-clustered requests in the queue until everything has drained out,
but I doubt that would be a problem :-)

--
Jens Axboe