diff mbox

virtio_blk: don't bounce highmem requests

Message ID 20090620183215.GA24936@lst.de (mailing list archive)
State New, archived
Headers show

Commit Message

Christoph Hellwig June 20, 2009, 6:32 p.m. UTC
Looks like I sent a patch that doesn't actually compile because qui
decided to apply those fixes to a different one.  Here's the correc
one:

--

Subject: virtio_blk: don't bounce highmem requests
From: Christoph Hellwig <hch@lst.de>

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@lst.de>

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Comments

Rusty Russell June 23, 2009, 7:12 a.m. UTC | #1
On Sun, 21 Jun 2009 04:02:15 am Christoph Hellwig wrote:
> Looks like I sent a patch that doesn't actually compile because qui
> decided to apply those fixes to a different one.  Here's the correc
> one:
>
> --
>
> Subject: virtio_blk: don't bounce highmem requests
> From: Christoph Hellwig <hch@lst.de>
>
> 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.

Thanks, applied.

I had no idea we had to set a bounce limit; wonder what else the driver 
doesn't do?

Thanks,
Rusty.
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Christoph Hellwig July 8, 2009, 6:10 p.m. UTC | #2
On Tue, Jun 23, 2009 at 04:42:52PM +0930, Rusty Russell wrote:
> On Sun, 21 Jun 2009 04:02:15 am Christoph Hellwig wrote:
> > Looks like I sent a patch that doesn't actually compile because qui
> > decided to apply those fixes to a different one.  Here's the correc
> > one:
> >
> > --
> >
> > Subject: virtio_blk: don't bounce highmem requests
> > From: Christoph Hellwig <hch@lst.de>
> >
> > 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.
> 
> Thanks, applied.

Can you forward it to Linus for 2.6.31?  It's a trivial fix for an issue
causing a lot of pain to people with highmem enabled.

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

Index: linux-2.6/drivers/block/virtio_blk.c
===================================================================
--- linux-2.6.orig/drivers/block/virtio_blk.c	2009-06-20 20:11:44.769929544 +0200
+++ linux-2.6/drivers/block/virtio_blk.c	2009-06-20 20:20:29.661804686 +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(vblk->disk->queue, BLK_BOUNCE_ANY);
+
 	/* No real sector limit. */
 	blk_queue_max_sectors(vblk->disk->queue, -1U);