Jason Wang
2023-Jul-12 07:35 UTC
[PATCH net-next V1 1/4] virtio_net: extract interrupt coalescing settings to a structure
On Mon, Jul 10, 2023 at 5:21?PM Gavin Li <gavinl at nvidia.com> wrote:> Extract interrupt coalescing settings to a structure so that it could be > reused in other data structures. > > Signed-off-by: Gavin Li <gavinl at nvidia.com> > Reviewed-by: Dragos Tatulea <dtatulea at nvidia.com> > Reviewed-by: Jiri Pirko <jiri at nvidia.com> > --- > drivers/net/virtio_net.c | 35 +++++++++++++++++++---------------- > 1 file changed, 19 insertions(+), 16 deletions(-) >Acked-by: Jason Wang <jasowang at redhat.com> Thanks> > diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c > index 0db14f6b87d3..dd5fec073a27 100644 > --- a/drivers/net/virtio_net.c > +++ b/drivers/net/virtio_net.c > @@ -126,6 +126,11 @@ static const struct virtnet_stat_desc > virtnet_rq_stats_desc[] = { > #define VIRTNET_SQ_STATS_LEN ARRAY_SIZE(virtnet_sq_stats_desc) > #define VIRTNET_RQ_STATS_LEN ARRAY_SIZE(virtnet_rq_stats_desc) > > +struct virtnet_interrupt_coalesce { > + u32 max_packets; > + u32 max_usecs; > +}; > + > /* Internal representation of a send virtqueue */ > struct send_queue { > /* Virtqueue associated with this send _queue */ > @@ -281,10 +286,8 @@ struct virtnet_info { > u32 speed; > > /* Interrupt coalescing settings */ > - u32 tx_usecs; > - u32 rx_usecs; > - u32 tx_max_packets; > - u32 rx_max_packets; > + struct virtnet_interrupt_coalesce intr_coal_tx; > + struct virtnet_interrupt_coalesce intr_coal_rx; > > unsigned long guest_offloads; > unsigned long guest_offloads_capable; > @@ -3056,8 +3059,8 @@ static int virtnet_send_notf_coal_cmds(struct > virtnet_info *vi, > return -EINVAL; > > /* Save parameters */ > - vi->tx_usecs = ec->tx_coalesce_usecs; > - vi->tx_max_packets = ec->tx_max_coalesced_frames; > + vi->intr_coal_tx.max_usecs = ec->tx_coalesce_usecs; > + vi->intr_coal_tx.max_packets = ec->tx_max_coalesced_frames; > > vi->ctrl->coal_rx.rx_usecs = cpu_to_le32(ec->rx_coalesce_usecs); > vi->ctrl->coal_rx.rx_max_packets > cpu_to_le32(ec->rx_max_coalesced_frames); > @@ -3069,8 +3072,8 @@ static int virtnet_send_notf_coal_cmds(struct > virtnet_info *vi, > return -EINVAL; > > /* Save parameters */ > - vi->rx_usecs = ec->rx_coalesce_usecs; > - vi->rx_max_packets = ec->rx_max_coalesced_frames; > + vi->intr_coal_rx.max_usecs = ec->rx_coalesce_usecs; > + vi->intr_coal_rx.max_packets = ec->rx_max_coalesced_frames; > > return 0; > } > @@ -3132,10 +3135,10 @@ static int virtnet_get_coalesce(struct net_device > *dev, > struct virtnet_info *vi = netdev_priv(dev); > > if (virtio_has_feature(vi->vdev, VIRTIO_NET_F_NOTF_COAL)) { > - ec->rx_coalesce_usecs = vi->rx_usecs; > - ec->tx_coalesce_usecs = vi->tx_usecs; > - ec->tx_max_coalesced_frames = vi->tx_max_packets; > - ec->rx_max_coalesced_frames = vi->rx_max_packets; > + ec->rx_coalesce_usecs = vi->intr_coal_rx.max_usecs; > + ec->tx_coalesce_usecs = vi->intr_coal_tx.max_usecs; > + ec->tx_max_coalesced_frames = vi->intr_coal_tx.max_packets; > + ec->rx_max_coalesced_frames = vi->intr_coal_rx.max_packets; > } else { > ec->rx_max_coalesced_frames = 1; > > @@ -4119,10 +4122,10 @@ static int virtnet_probe(struct virtio_device > *vdev) > } > > if (virtio_has_feature(vi->vdev, VIRTIO_NET_F_NOTF_COAL)) { > - vi->rx_usecs = 0; > - vi->tx_usecs = 0; > - vi->tx_max_packets = 0; > - vi->rx_max_packets = 0; > + vi->intr_coal_rx.max_usecs = 0; > + vi->intr_coal_tx.max_usecs = 0; > + vi->intr_coal_tx.max_packets = 0; > + vi->intr_coal_rx.max_packets = 0; > } > > if (virtio_has_feature(vdev, VIRTIO_NET_F_HASH_REPORT)) > -- > 2.39.1 > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.linuxfoundation.org/pipermail/virtualization/attachments/20230712/c74dcd76/attachment-0001.html>