From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by dpdk.org (Postfix) with ESMTP id CE74A1B21E for ; Thu, 7 Jun 2018 07:13:10 +0200 (CEST) X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Jun 2018 22:13:09 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,486,1520924400"; d="scan'208";a="61094997" Received: from debian.sh.intel.com (HELO debian) ([10.67.104.203]) by fmsmga004.fm.intel.com with ESMTP; 06 Jun 2018 22:13:08 -0700 Date: Thu, 7 Jun 2018 13:13:21 +0800 From: Tiwei Bie To: Maxime Coquelin Cc: zhihong.wang@intel.com, dev@dpdk.org Message-ID: <20180607051321.GC32696@debian> References: <20180606123128.7868-1-maxime.coquelin@redhat.com> <20180606123128.7868-4-maxime.coquelin@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20180606123128.7868-4-maxime.coquelin@redhat.com> User-Agent: Mutt/1.9.5 (2018-04-13) Subject: Re: [dpdk-dev] [PATCH v2 3/5] net/vhost: improve Tx path selection X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Jun 2018 05:13:11 -0000 On Wed, Jun 06, 2018 at 02:31:26PM +0200, Maxime Coquelin wrote: [...] > @@ -1886,6 +1888,15 @@ virtio_dev_configure(struct rte_eth_dev *dev) > (1ULL << VIRTIO_NET_F_GUEST_TSO4) | > (1ULL << VIRTIO_NET_F_GUEST_TSO6); > > + if (tx_offloads & (DEV_TX_OFFLOAD_TCP_CKSUM | > + DEV_TX_OFFLOAD_UDP_CKSUM)) > + req_features |= (1ULL << VIRTIO_NET_F_CSUM); Hmm.. I still prefer to keep the DEV_TX_OFFLOAD_TCP_CKSUM and DEV_TX_OFFLOAD_UDP_CKSUM aligned to make the coding style consistent with the existing code of Rx: 1901 ¦ if (rx_offloads & (DEV_RX_OFFLOAD_UDP_CKSUM | 1902 ¦ ¦ ¦ DEV_RX_OFFLOAD_TCP_CKSUM)) 1903 ¦ ¦ req_features |= (1ULL << VIRTIO_NET_F_GUEST_CSUM); But it's up to you. > + > + if (tx_offloads & DEV_TX_OFFLOAD_TCP_TSO) > + req_features |= > + (1ULL << VIRTIO_NET_F_HOST_TSO4) | > + (1ULL << VIRTIO_NET_F_HOST_TSO6); > + > /* if request features changed, reinit the device */ > if (req_features != hw->req_guest_features) { > ret = virtio_init_device(dev, req_features); > @@ -1955,6 +1966,12 @@ virtio_dev_configure(struct rte_eth_dev *dev) > DEV_RX_OFFLOAD_TCP_CKSUM)) > hw->use_simple_rx = 0; > > + if (tx_offloads & (DEV_TX_OFFLOAD_TCP_CKSUM | > + DEV_TX_OFFLOAD_UDP_CKSUM | > + DEV_TX_OFFLOAD_TCP_TSO | > + DEV_TX_OFFLOAD_VLAN_INSERT)) > + hw->use_simple_tx = 0; Ditto. Below is the code for Rx: 1987 ¦ if (rx_offloads & (DEV_RX_OFFLOAD_UDP_CKSUM | 1988 ¦ ¦ ¦ DEV_RX_OFFLOAD_TCP_CKSUM | 1989 ¦ ¦ ¦ DEV_RX_OFFLOAD_TCP_LRO | 1990 ¦ ¦ ¦ DEV_RX_OFFLOAD_VLAN_STRIP)) 1991 ¦ ¦ hw->use_simple_rx = 0; So, instead of: 1987 ¦ if (rx_offloads & (DEV_RX_OFFLOAD_UDP_CKSUM | 1988 ¦ ¦ ¦ DEV_RX_OFFLOAD_TCP_CKSUM | 1989 ¦ ¦ ¦ DEV_RX_OFFLOAD_TCP_LRO | 1990 ¦ ¦ ¦ DEV_RX_OFFLOAD_VLAN_STRIP)) 1991 ¦ ¦ hw->use_simple_rx = 0; 1992 1993 ¦ if (tx_offloads & (DEV_TX_OFFLOAD_TCP_CKSUM | 1994 ¦ ¦ ¦ ¦ DEV_TX_OFFLOAD_UDP_CKSUM | 1995 ¦ ¦ ¦ ¦ DEV_TX_OFFLOAD_TCP_TSO | 1996 ¦ ¦ ¦ ¦ DEV_TX_OFFLOAD_VLAN_INSERT)) 1997 ¦ ¦ hw->use_simple_tx = 0; I would prefer: 1987 ¦ if (rx_offloads & (DEV_RX_OFFLOAD_UDP_CKSUM | 1988 ¦ ¦ ¦ DEV_RX_OFFLOAD_TCP_CKSUM | 1989 ¦ ¦ ¦ DEV_RX_OFFLOAD_TCP_LRO | 1990 ¦ ¦ ¦ DEV_RX_OFFLOAD_VLAN_STRIP)) 1991 ¦ ¦ hw->use_simple_rx = 0; 1992 1993 ¦ if (tx_offloads & (DEV_TX_OFFLOAD_UDP_CKSUM | 1994 ¦ ¦ ¦ DEV_TX_OFFLOAD_TCP_CKSUM | 1995 ¦ ¦ ¦ DEV_TX_OFFLOAD_TCP_TSO | 1996 ¦ ¦ ¦ DEV_TX_OFFLOAD_VLAN_INSERT)) 1997 ¦ ¦ hw->use_simple_tx = 0; But anyway, it's up to you. :) Reviewed-by: Tiwei Bie Best regards, Tiwei Bie