RE: Cache queue_congestion_on/off_threshold

Chen, Kenneth W
2004-05-12T05:32:24Z

>>>> 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.

- Ken