Message ID | 20241204050724.307544-4-koichiro.den@canonical.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | virtio_net: correct netdev_tx_reset_queue() invocation points | expand |
On Wed, Dec 4, 2024 at 1:08 PM Koichiro Den <koichiro.den@canonical.com> wrote: > > This will be used in the following commits, to ensure DQL reset occurs > iff. all unused buffers are actually recycled. > > Cc: <stable@vger.kernel.org> # v6.11+ > Signed-off-by: Koichiro Den <koichiro.den@canonical.com> Acked-by: Jason Wang <jasowang@redhat.com> Thanks
On Wed, Dec 04, 2024 at 02:07:20PM +0900, Koichiro Den wrote: > This will be used in the following commits, to ensure DQL reset occurs > iff. all unused buffers are actually recycled. > > Cc: <stable@vger.kernel.org> # v6.11+ > Signed-off-by: Koichiro Den <koichiro.den@canonical.com> to avoid adding an unused function, squash with a patch that uses it. > --- > drivers/net/virtio_net.c | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > index 1b7a85e75e14..b3cbbd8052e4 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -503,6 +503,7 @@ struct virtio_net_common_hdr { > static struct virtio_net_common_hdr xsk_hdr; > > static void virtnet_sq_free_unused_buf(struct virtqueue *vq, void *buf); > +static void virtnet_sq_free_unused_buf_done(struct virtqueue *vq); > static int virtnet_xdp_handler(struct bpf_prog *xdp_prog, struct xdp_buff *xdp, > struct net_device *dev, > unsigned int *xdp_xmit, > @@ -6233,6 +6234,14 @@ static void virtnet_sq_free_unused_buf(struct virtqueue *vq, void *buf) > } > } > > +static void virtnet_sq_free_unused_buf_done(struct virtqueue *vq) > +{ > + struct virtnet_info *vi = vq->vdev->priv; > + int i = vq2txq(vq); > + > + netdev_tx_reset_queue(netdev_get_tx_queue(vi->dev, i)); > +} > + > static void free_unused_bufs(struct virtnet_info *vi) > { > void *buf; > -- > 2.43.0
On Thu, Dec 05, 2024 at 05:40:33AM -0500, Michael S. Tsirkin wrote: > On Wed, Dec 04, 2024 at 02:07:20PM +0900, Koichiro Den wrote: > > This will be used in the following commits, to ensure DQL reset occurs > > iff. all unused buffers are actually recycled. > > > > Cc: <stable@vger.kernel.org> # v6.11+ > > Signed-off-by: Koichiro Den <koichiro.den@canonical.com> > > to avoid adding an unused function, squash with a patch that uses it. I originally seperated this out because some were supposed to land stable tree while others not, and this was the common prerequisite. However, this can be squahsed with [5/7] regardless of that, and should be done so as you pointed out. I'll do so and send v4 later, thanks for the review. > > > > --- > > drivers/net/virtio_net.c | 9 +++++++++ > > 1 file changed, 9 insertions(+) > > > > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > > index 1b7a85e75e14..b3cbbd8052e4 100644 > > --- a/drivers/net/virtio_net.c > > +++ b/drivers/net/virtio_net.c > > @@ -503,6 +503,7 @@ struct virtio_net_common_hdr { > > static struct virtio_net_common_hdr xsk_hdr; > > > > static void virtnet_sq_free_unused_buf(struct virtqueue *vq, void *buf); > > +static void virtnet_sq_free_unused_buf_done(struct virtqueue *vq); > > static int virtnet_xdp_handler(struct bpf_prog *xdp_prog, struct xdp_buff *xdp, > > struct net_device *dev, > > unsigned int *xdp_xmit, > > @@ -6233,6 +6234,14 @@ static void virtnet_sq_free_unused_buf(struct virtqueue *vq, void *buf) > > } > > } > > > > +static void virtnet_sq_free_unused_buf_done(struct virtqueue *vq) > > +{ > > + struct virtnet_info *vi = vq->vdev->priv; > > + int i = vq2txq(vq); > > + > > + netdev_tx_reset_queue(netdev_get_tx_queue(vi->dev, i)); > > +} > > + > > static void free_unused_bufs(struct virtnet_info *vi) > > { > > void *buf; > > -- > > 2.43.0 >
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c index 1b7a85e75e14..b3cbbd8052e4 100644 --- a/drivers/net/virtio_net.c +++ b/drivers/net/virtio_net.c @@ -503,6 +503,7 @@ struct virtio_net_common_hdr { static struct virtio_net_common_hdr xsk_hdr; static void virtnet_sq_free_unused_buf(struct virtqueue *vq, void *buf); +static void virtnet_sq_free_unused_buf_done(struct virtqueue *vq); static int virtnet_xdp_handler(struct bpf_prog *xdp_prog, struct xdp_buff *xdp, struct net_device *dev, unsigned int *xdp_xmit, @@ -6233,6 +6234,14 @@ static void virtnet_sq_free_unused_buf(struct virtqueue *vq, void *buf) } } +static void virtnet_sq_free_unused_buf_done(struct virtqueue *vq) +{ + struct virtnet_info *vi = vq->vdev->priv; + int i = vq2txq(vq); + + netdev_tx_reset_queue(netdev_get_tx_queue(vi->dev, i)); +} + static void free_unused_bufs(struct virtnet_info *vi) { void *buf;
This will be used in the following commits, to ensure DQL reset occurs iff. all unused buffers are actually recycled. Cc: <stable@vger.kernel.org> # v6.11+ Signed-off-by: Koichiro Den <koichiro.den@canonical.com> --- drivers/net/virtio_net.c | 9 +++++++++ 1 file changed, 9 insertions(+)