Re: [PATCH net 5/6] virtio-net: fix the vq coalescing setting for vq resize
From: Heng Qi <hidden>
Date: 2023-09-22 05:02:51
在 2023/9/22 下午12:29, Jason Wang 写道:
On Tue, Sep 19, 2023 at 3:49 PM Heng Qi [off-list ref] wrote:quoted
According to the definition of virtqueue coalescing spec[1]: Upon disabling and re-enabling a transmit virtqueue, the device MUST set the coalescing parameters of the virtqueue to those configured through the VIRTIO_NET_CTRL_NOTF_COAL_TX_SET command, or, if the driver did not set any TX coalescing parameters, to 0. Upon disabling and re-enabling a receive virtqueue, the device MUST set the coalescing parameters of the virtqueue to those configured through the VIRTIO_NET_CTRL_NOTF_COAL_RX_SET command, or, if the driver did not set any RX coalescing parameters, to 0. We need to add this setting for vq resize (ethtool -G) where vq_reset happens. [1] https://lists.oasis-open.org/archives/virtio-dev/202303/msg00415.html Fixes: 394bd87764b6 ("virtio_net: support per queue interrupt coalesce command")I'm not sure this is a real fix as spec allows it to go zero?
The spec says that if the user has configured interrupt coalescing parameters, parameters need to be restored after vq_reset, otherwise set to 0. vi->intr_coal_tx and vi->intr_coal_rx always save the newest global parameters, regardless of whether the command is sent or not. So I think we need this patch it complies with the specification requirements. Thanks!
Thanks