On Wed, Jun 07, 2017 at 09:04:29AM +0800, Wei Wang wrote: > On 06/05/2017 11:38 PM, Michael S. Tsirkin wrote: > > On Mon, Jun 05, 2017 at 04:57:29PM +0800, Wei Wang wrote: > > > This patch enables the virtio-net tx queue size to be configurable > > > between 256 and 1024 by the user. The queue size specified by the > > > user should be power of 2. If "tx_queue_size" is not offered by the > > > user, the default queue size, 1024, will be used. > > > > > > For the traditional QEMU backend, setting the tx queue size to be 1024 > > > requires the guest virtio driver to support the VIRTIO_F_MAX_CHAIN_SIZE > > > feature. This feature restricts the guest driver from chaining 1024 > > > vring descriptors, which may cause the device side implementation to > > > send more than 1024 iov to writev. > > > > > > VIRTIO_F_MAX_CHAIN_SIZE is a common transport feature added for all > > > virtio devices. However, each device has the flexibility to set the max > > > chain size to limit its driver to chain vring descriptors. Currently, > > > the max chain size of the virtio-net device is set to 1023. > > > > > > In the case that the tx queue size is set to 1024 and the > > > VIRTIO_F_MAX_CHAIN_SIZE feature is not supported by the guest driver, > > > the tx queue size will be reconfigured to be 512. > > I'd like to see the reverse. Start with the current default. > > If VIRTIO_F_MAX_CHAIN_SIZE is negotiated, increase the queue size. > > > > OK, we can let the queue size start with 256, and how about > increasing it to 1024 in the following two cases:
I think it should be 1) VIRTIO_F_MAX_CHAIN_SIZE is negotiated and 2) user requested large size > 1) VIRTIO_F_MAX_CHAIN_SIZE is negotiated; or > 2) the backend is vhost. For vhost we also need vhost backend to support VIRTIO_F_MAX_CHAIN_SIZE. We also need to send the max chain size to backend. > Best, > Wei