On 8/30/2022 12:58 PM, Michael S. Tsirkin wrote:> On Tue, Aug 30, 2022 at 06:22:31AM +0000, Eli Cohen wrote:
>>
>>
>> Hi,
>>
>>
>>
>> I have been experimenting with different queue sizes with mlx5_vdpa and
noticed
>> that queue size can affect performance.
>>
>> I would like to propose an extension to vdpa tool to allow to specify
the queue
>> size. Valid values will conform to the max of 32768 specified by the
spec.
>>
>>
>>
>> ?vdpa mgmtdev show? will have another line specifying the valid range
for a
>> management device which could be narrower than the spec allows. This
range will
>> be valid for data queues only (not for control VQ).
>>
>> Another line will display the default queue size
>>
>>
>>
>> Example:
>>
>> $ vdpa mgmtdev show
>>
>> auxiliary/mlx5_core.sf.6:
>>
>> supported_classes net
>>
>> max_supported_vqs 65
>>
>> dev_features CSUM GUEST_CSUM MTU HOST_TSO4 HOST_TSO6 STATUS CTRL_VQ
CTRL_VLAN
>> MQ CTRL_MAC_ADDR VERSION_1 ACCESS_PLATFORM
>>
>> data queue range 256-4096
>>
>> default queue size 256
>>
>>
>>
>> When you create the vdpa device you can specify the requested value:
>>
>> $ vdpa dev add name vdpa-a mgmtdev auxiliary/mlx5_core.sf.6 max_vqp 1
mtu 9000
>> queue_size 1024
>>
>>
>
> A follow up question: isn't it enough to control the size
> from qemu? do we need ability to control it at the kernel level?
>
Right, I think today we can optionally control the queue size from qemu
via rx_queue_size or tx_queue_size, but it has a limit of 1024 (btw why
it has such limit, which is relatively lower in my opinion). I think
what was missing for QEMU is to query the max number of queue size that
the hardware can support from the backend.
-Siwei