> Some initial results with the attached patch, I'll try and do some more
> fine grained tomorrow. Base kernel was 2.4.22-pre5 (obviously), drive
> tested is a SCSI drive (on aic7xxx, tcq fixed at 4), fs is ext3. I would
> have done ide testing actually, but the drive in that machine appears to
> have gone dead. I'll pop in a new one tomorrow and test on that too.
>
Thanks Jens, the results so far are very interesting (although I'm
curious to hear how 2.4.21 did).
> --- 1.47/drivers/block/ll_rw_blk.c Fri Jul 11 10:30:54 2003
> +++ edited/drivers/block/ll_rw_blk.c Mon Jul 14 20:42:36 2003
> @@ -549,10 +549,12 @@
> static struct request *get_request(request_queue_t *q, int rw)
> {
> struct request *rq = NULL;
> - struct request_list *rl;
> + struct request_list *rl = &q->rq;
>
> - rl = &q->rq;
> - if (!list_empty(&rl->free) && !blk_oversized_queue(q)) {
> + if ((rw == WRITE) && (blk_oversized_queue(q) || (rl->count < 4)))
> + return NULL;
> +
> + if (!list_empty(&rl->free)) {
> rq = blkdev_free_rq(&rl->free);
> list_del(&rq->queue);
> rl->count--;
> @@ -947,7 +949,7 @@
Could I talk you into trying a form of this patch that honors
blk_oversized_queue for everything except the BH_sync requests?
-chris
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/