Re: Cache queue_congestion_on/off_threshold

Jens Axboe
2004-05-12T14:23:11Z

On Tue, May 11 2004, Chen, Kenneth W wrote:
> >>>> Jens Axboe wrote on Monday, May 10, 2004 7:30 AM
> > > >
> > > > Actually, with the good working batching we might get away with killing
> > > > freereq completely. Have you tested that (if not, could you?)
> > >
> > > Sorry, I'm clueless on "good working batching". If you could please give
> > > me some pointers, I will definitely test it.
> >
> > Something like this.
> >
> > --- linux-2.6.6/drivers/block/ll_rw_blk.c~ 2004-05-10 16:23:45.684726955 +0200
> > +++ linux-2.6.6/drivers/block/ll_rw_blk.c 2004-05-10 16:29:04.333792268 +0200
> > @@ -2138,8 +2138,8 @@
> >
> > static int __make_request(request_queue_t *q, struct bio *bio)
> > {
> > - struct request *req, *freereq = NULL;
> > int el_ret, rw, nr_sectors, cur_nr_sectors, barrier, ra;
> > + struct request *req;
> > sector_t sector;
> >
> >
> > [snip] ...
>
> I'm still working on this. With this patch, several processes stuck
> in "D" state and never finish. Suspect it's the barrier thing, it
> jumps through blk_plug_device() and might goof up the queue afterwards.

BTW, the barrier bit was buggy, but it could not make a difference since
the stock kernels + -mm doesn't use barriers. So you are right it's
wrong, but no impact on this test.

--
Jens Axboe