On Mon, Jul 10, 2023 at 5:21 PM Gavin Li <[email protected]> wrote:

> Extract interrupt coalescing settings to a structure so that it could be
> reused in other data structures.
>
> Signed-off-by: Gavin Li <[email protected]>
> Reviewed-by: Dragos Tatulea <[email protected]>
> Reviewed-by: Jiri Pirko <[email protected]>
> ---
>  drivers/net/virtio_net.c | 35 +++++++++++++++++++----------------
>  1 file changed, 19 insertions(+), 16 deletions(-)
>

Acked-by: Jason Wang <[email protected]>

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
>
>
_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/virtualization

Reply via email to