DPDK patches and discussions
 help / color / mirror / Atom feed
From: Maxime Coquelin <maxime.coquelin@redhat.com>
To: Wenwu Ma <wenwux.ma@intel.com>, chenbo.xia@intel.com
Cc: dev@dpdk.org, jiayu.hu@intel.com, yinan.wang@intel.com,
	xingguang.he@intel.com
Subject: Re: [PATCH] net/vhost: get csum offload capabilities of vhost backend
Date: Thu, 5 May 2022 16:15:36 +0200	[thread overview]
Message-ID: <d6a7513b-66de-93e9-ae78-32d8deea200c@redhat.com> (raw)
In-Reply-To: <20220217151628.441165-1-wenwux.ma@intel.com>

Hi Wenwu,

On 2/17/22 16:16, Wenwu Ma wrote:
> The current vhost backend lacks csum offloads information,
> which will cause testpmd command such as "csum set tcp hw
> <port_id>" to fail. This patch adds the information according
> to the device features.
> 
> Signed-off-by: Wenwu Ma <wenwux.ma@intel.com>
> ---
>   drivers/net/vhost/rte_eth_vhost.c | 18 ++++++++++++++++++
>   1 file changed, 18 insertions(+)
> 
> diff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c
> index 070f0e6dfd..7593d5a9ae 100644
> --- a/drivers/net/vhost/rte_eth_vhost.c
> +++ b/drivers/net/vhost/rte_eth_vhost.c
> @@ -1281,6 +1281,24 @@ eth_dev_info(struct rte_eth_dev *dev,
>   				RTE_ETH_TX_OFFLOAD_VLAN_INSERT;
>   	dev_info->rx_offload_capa = RTE_ETH_RX_OFFLOAD_VLAN_STRIP;
>   
> +	if (internal->vid != -1) {
> +		uint64_t features = 0;
> +		if (rte_vhost_get_negotiated_features(internal->vid, &features) != 0)
> +			return 0;
> +
> +		if (features & (1ULL << VIRTIO_NET_F_CSUM)) {
> +			dev_info->tx_offload_capa |= RTE_ETH_TX_OFFLOAD_TCP_CKSUM |
> +						RTE_ETH_TX_OFFLOAD_UDP_CKSUM |
> +						RTE_ETH_TX_OFFLOAD_IPV4_CKSUM;
> +		}
> +
> +		if (features & (1ULL << VIRTIO_NET_F_GUEST_CSUM)) {
> +			dev_info->rx_offload_capa |= RTE_ETH_RX_OFFLOAD_TCP_CKSUM |
> +						RTE_ETH_RX_OFFLOAD_UDP_CKSUM |
> +						RTE_ETH_RX_OFFLOAD_IPV4_CKSUM;
> +		}
> +	}
> +
>   	return 0;
>   }
>   
> 

This patch has lots of gaps, since the negotiated Virtio features can
change if the guest driver decides so, so the exposed ethdev offload
capabilities may not represent what is really supported by the guest
driver.

I have done a series that handles this issue by implementing SW
fallbacks in case of misalignment between host application and guest
application:

http://patches.dpdk.org/project/dpdk/cover/20220505102729.821075-1-maxime.coquelin@redhat.com/

Please help reviewing & testing the series if possible.

Thanks,
Maxime


      parent reply	other threads:[~2022-05-05 14:15 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-17 15:16 Wenwu Ma
2022-03-15  2:56 ` Hu, Jiayu
2022-05-05 14:15 ` Maxime Coquelin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=d6a7513b-66de-93e9-ae78-32d8deea200c@redhat.com \
    --to=maxime.coquelin@redhat.com \
    --cc=chenbo.xia@intel.com \
    --cc=dev@dpdk.org \
    --cc=jiayu.hu@intel.com \
    --cc=wenwux.ma@intel.com \
    --cc=xingguang.he@intel.com \
    --cc=yinan.wang@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).