[PATCH] virtio_blk: don't bounce highmem requests

From: Christoph Hellwig
Date: Fri Jun 19 2009 - 14:20:41 EST



By default a block driver bounces highmem requests, but virtio-blk is
perfectly fine with any request that fit into it's 64 bit addressing scheme,
mapped in the kernel virtual space or not.

Besides improving performance on highmem systems this also makes the
reproducible oops in __bounce_end_io go away (but hiding the real cause).

Signed-off-by: Christoph Hellwig <hch@xxxxxx>

Index: linux-2.6/drivers/block/virtio_blk.c
===================================================================
--- linux-2.6.orig/drivers/block/virtio_blk.c 2009-06-15 16:28:24.225815322 +0200
+++ linux-2.6/drivers/block/virtio_blk.c 2009-06-19 18:03:12.469805377 +0200
@@ -360,6 +360,9 @@ static int __devinit virtblk_probe(struc
blk_queue_max_phys_segments(vblk->disk->queue, vblk->sg_elems-2);
blk_queue_max_hw_segments(vblk->disk->queue, vblk->sg_elems-2);

+ /* No need to bounce any requests */
+ blk_queue_bounce_limit(brd->brd_queue, BLK_BOUNCE_ANY);
+
/* No real sector limit. */
blk_queue_max_sectors(vblk->disk->queue, -1U);

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/