[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <acef3625-566b-6438-61a8-49d4363a148a@redhat.com>
Date: Thu, 27 Jan 2022 15:47:38 +0800
From: Jason Wang <jasowang@...hat.com>
To: Andrew Melnychenko <andrew@...nix.com>, netdev@...r.kernel.org,
virtualization@...ts.linux-foundation.org,
linux-kernel@...r.kernel.org, davem@...emloft.net, kuba@...nel.org,
mst@...hat.com
Cc: yan@...nix.com, yuri.benditovich@...nix.com
Subject: Re: [PATCH v2 1/4] drivers/net/virtio_net: Fixed padded vheader to
use v1 with hash.
在 2022/1/17 下午4:00, Andrew Melnychenko 写道:
> The header v1 provides additional info about RSS.
> Added changes to computing proper header length.
> In the next patches, the header may contain RSS hash info
> for the hash population.
>
> Signed-off-by: Andrew Melnychenko <andrew@...nix.com>
Acked-by: Jason Wang <jasowang@...hat.com>
> ---
> drivers/net/virtio_net.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
> index 569eecfbc2cd..05fe5ba32187 100644
> --- a/drivers/net/virtio_net.c
> +++ b/drivers/net/virtio_net.c
> @@ -242,13 +242,13 @@ struct virtnet_info {
> };
>
> struct padded_vnet_hdr {
> - struct virtio_net_hdr_mrg_rxbuf hdr;
> + struct virtio_net_hdr_v1_hash hdr;
> /*
> * hdr is in a separate sg buffer, and data sg buffer shares same page
> * with this header sg. This padding makes next sg 16 byte aligned
> * after the header.
> */
> - char padding[4];
> + char padding[12];
> };
>
> static bool is_xdp_frame(void *ptr)
> @@ -1266,7 +1266,8 @@ static unsigned int get_mergeable_buf_len(struct receive_queue *rq,
> struct ewma_pkt_len *avg_pkt_len,
> unsigned int room)
> {
> - const size_t hdr_len = sizeof(struct virtio_net_hdr_mrg_rxbuf);
> + struct virtnet_info *vi = rq->vq->vdev->priv;
> + const size_t hdr_len = vi->hdr_len;
> unsigned int len;
>
> if (room)
> @@ -2851,7 +2852,7 @@ static void virtnet_del_vqs(struct virtnet_info *vi)
> */
> static unsigned int mergeable_min_buf_len(struct virtnet_info *vi, struct virtqueue *vq)
> {
> - const unsigned int hdr_len = sizeof(struct virtio_net_hdr_mrg_rxbuf);
> + const unsigned int hdr_len = vi->hdr_len;
> unsigned int rq_size = virtqueue_get_vring_size(vq);
> unsigned int packet_len = vi->big_packets ? IP_MAX_MTU : vi->dev->max_mtu;
> unsigned int buf_len = hdr_len + ETH_HLEN + VLAN_HLEN + packet_len;
Powered by blists - more mailing lists