Thread (28 messages) 28 messages, 4 authors, 2019-01-29

Re: [PATCH 5/5] virtio-blk: Consider virtio_max_dma_size() for maximum segment size

From: "Michael S. Tsirkin" <mst@redhat.com>
Date: 2019-01-23 22:25:12
Also in: linux-iommu, lkml

On Wed, Jan 23, 2019 at 10:31:39PM +0100, Christoph Hellwig wrote:
On Wed, Jan 23, 2019 at 05:30:49PM +0100, Joerg Roedel wrote:
quoted
+	max_size = virtio_max_dma_size(vdev);
+
 	/* Host can optionally specify maximum segment size and number of
 	 * segments. */
 	err = virtio_cread_feature(vdev, VIRTIO_BLK_F_SIZE_MAX,
 				   struct virtio_blk_config, size_max, &v);
 	if (!err)
-		blk_queue_max_segment_size(q, v);
-	else
-		blk_queue_max_segment_size(q, -1U);
+		max_size = min(max_size, v);
+
+	blk_queue_max_segment_size(q, max_size);
I wonder if we should just move the dma max segment size check
into blk_queue_max_segment_size so that all block drivers benefit
from it.  Even if not I think at least the SCSI midlayer should
be updated to support it.

Btw, I wonder why virtio-scsi sticks to the default segment size,
unlike virtio-blk.
Well no one bothered exposing that through that device.
Why does virtio block have it? Hard for me to say. First driver version
had it already but QEMU does not seem to use it and it seems that it
never did.


-- 
MST
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help