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

From: Michael S. Tsirkin
Date: Wed Jan 23 2019 - 17:25:12 EST


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:
> > + 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