Jason Wang
2023-Sep-22 07:32 UTC
[PATCH net 5/6] virtio-net: fix the vq coalescing setting for vq resize
On Fri, Sep 22, 2023 at 1:02?PM Heng Qi <hengqi at linux.alibaba.com> wrote:> > > > ? 2023/9/22 ??12:29, Jason Wang ??: > > On Tue, Sep 19, 2023 at 3:49?PM Heng Qi <hengqi at linux.alibaba.com> wrote: > >> 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.How can we make sure the old coalescing parameters still make sense for the new ring size? Thanks> > Thanks! > > > > > Thanks >
Xuan Zhuo
2023-Sep-22 09:50 UTC
[PATCH net 5/6] virtio-net: fix the vq coalescing setting for vq resize
On Fri, 22 Sep 2023 15:32:39 +0800, Jason Wang <jasowang at redhat.com> wrote:> On Fri, Sep 22, 2023 at 1:02?PM Heng Qi <hengqi at linux.alibaba.com> wrote: > > > > > > > > ? 2023/9/22 ??12:29, Jason Wang ??: > > > On Tue, Sep 19, 2023 at 3:49?PM Heng Qi <hengqi at linux.alibaba.com> wrote: > > >> 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. > > How can we make sure the old coalescing parameters still make sense > for the new ring size?For the user, I don't think we should drop the config for the coalescing. Maybe the config does not make sense for the new ring size, but when the user just change the ring size, the config for the coalesing is missing, I think that is not good. Thanks.> > Thanks > > > > > Thanks! > > > > > > > > Thanks > > >