From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mailout1.w1.samsung.com (mailout1.w1.samsung.com [210.118.77.11]) by dpdk.org (Postfix) with ESMTP id C506F1B4D3 for ; Fri, 1 Feb 2019 15:27:41 +0100 (CET) Received: from eucas1p1.samsung.com (unknown [182.198.249.206]) by mailout1.w1.samsung.com (KnoxPortal) with ESMTP id 20190201142740euoutp014ad97a1135d3339a06edda531df94e90~-Q7l07hVe1451414514euoutp01I for ; Fri, 1 Feb 2019 14:27:40 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout1.w1.samsung.com 20190201142740euoutp014ad97a1135d3339a06edda531df94e90~-Q7l07hVe1451414514euoutp01I DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1549031260; bh=CW4MeLD0O8yevb4ZR+US63TNpitw+sVxcyYgPcXaPGM=; h=Subject:To:Cc:From:Date:In-Reply-To:References:From; b=CWNyu2F34upVtwyCLoBs1Nf54zI0a9th/k8K1n/+0NSnhghS4rsaCIsc3CNijT8RQ URikDn50GB1949Kp+1kAKpJqoWgTUyhcb9Te2+vAqmuIiQ9FAiLO3hR13fSBGG0s8E dF+QqgloZJ8NlCbfZtSECo67g7oJ91YzY236iw0Q= Received: from eusmges1new.samsung.com (unknown [203.254.199.242]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20190201142740eucas1p22dc149c86d0bd5bf16e6d7acecb5d298~-Q7lUyDyu1806718067eucas1p2y; Fri, 1 Feb 2019 14:27:40 +0000 (GMT) Received: from eucas1p1.samsung.com ( [182.198.249.206]) by eusmges1new.samsung.com (EUCPMTA) with SMTP id 0D.16.04441.B57545C5; Fri, 1 Feb 2019 14:27:39 +0000 (GMT) Received: from eusmtrp2.samsung.com (unknown [182.198.249.139]) by eucas1p1.samsung.com (KnoxPortal) with ESMTPA id 20190201142739eucas1p1eff46b874ee985b7aa2d32b185e837c1~-Q7kS6efn3219932199eucas1p1Z; Fri, 1 Feb 2019 14:27:39 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp2.samsung.com (KnoxPortal) with ESMTP id 20190201142738eusmtrp250e58912466f3666d8d8f6f94e2fb905~-Q7kES0M-0339503395eusmtrp2L; Fri, 1 Feb 2019 14:27:38 +0000 (GMT) X-AuditID: cbfec7f2-5e3ff70000001159-b3-5c54575b41ec Received: from eusmtip2.samsung.com ( [203.254.199.222]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id 79.3C.04284.A57545C5; Fri, 1 Feb 2019 14:27:38 +0000 (GMT) Received: from [106.109.129.180] (unknown [106.109.129.180]) by eusmtip2.samsung.com (KnoxPortal) with ESMTPA id 20190201142738eusmtip29030ee1e147de61caad0fda31d747643~-Q7jtZJvn2753027530eusmtip26; Fri, 1 Feb 2019 14:27:38 +0000 (GMT) To: Jens Freimann , dev@dpdk.org Cc: tiwei.bie@intel.com, maxime.coquelin@redhat.com From: Ilya Maximets Message-ID: Date: Fri, 1 Feb 2019 17:27:37 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.4.0 MIME-Version: 1.0 In-Reply-To: <20190201100348.6730-1-jfreimann@redhat.com> Content-Language: en-GB Content-Transfer-Encoding: 7bit X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFprDKsWRmVeSWpSXmKPExsWy7djPc7rR4SExBh+mGFm8+7SdyeJK+092 i3NrlrJYHOvcw2KxteE/kwOrx68FS1k9Fu95yeTxft9VNo++LasYA1iiuGxSUnMyy1KL9O0S uDL27JjPVPBJpKJj4yPmBsZGwS5GTg4JAROJndNmMHcxcnEICaxglFj/vJcRwvnCKPG+ax8r hPOZUWLZm42sMC23Jz9lg0gsZ5RYOH0CVP9HRomOea/AqoQF7CU+NnUygdgiAmYSy86fAOrg 4GAWMJY42VQAEmYT0JE4tfoII4jNK2Ansa3tPxuIzSKgIjHr5Q+wVlGBCInDve+gagQlTs58 wgJicwpYSizpb2UGsZkFxCWavqxkhbDlJba/nQN2j4TAInaJhufLGCGudpGY9PEgE4QtLPHq +BZ2CFtG4v/O+VDxeon7LS8ZIZo7GCWmH/oHlbCX2PL6HDvEA5oS63fpQ4QdJVqegMKLA8jm k7jxVhDiBj6JSdumM0OEeSU62oQgqlUkfh9czgxhS0ncfPeZfQKj0iwkn81C8s0sJN/MQti7 gJFlFaN4amlxbnpqsWFearlecWJucWleul5yfu4mRmCaOf3v+KcdjF8vJR1iFOBgVOLh3fAr KEaINbGsuDL3EKMEB7OSCO8Kl5AYId6UxMqq1KL8+KLSnNTiQ4zSHCxK4rzVDA+ihQTSE0tS s1NTC1KLYLJMHJxSDYw+u+96tsydxrzkR+Yk536Wxc/Tv1uq/zsV1dNWkjgrWerG2e7OpmkH uEyfflSrnJp99IZq2Ptt7l9kHhiZb9LnDnX6bT7j3sXEu2+9ryWfOb9KuP319WTzgB2rPuuz d19b81SX7dC+bw8dZY8mSn1PuzjjwYm4iOrePklN/60rG717vt26cz5JiaU4I9FQi7moOBEA oOV+fi8DAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrHIsWRmVeSWpSXmKPExsVy+t/xe7pR4SExBg37dC3efdrOZHGl/Se7 xbk1S1ksjnXuYbHY2vCfyYHV49eCpawei/e8ZPJ4v+8qm0ffllWMASxRejZF+aUlqQoZ+cUl tkrRhhZGeoaWFnpGJpZ6hsbmsVZGpkr6djYpqTmZZalF+nYJehl7dsxnKvgkUtGx8RFzA2Oj YBcjJ4eEgInE7clP2boYuTiEBJYySuzc188OkZCS+PHrAiuELSzx51oXVNF7RonGD5uYQRLC AvYSH5s6mUBsEQEziWXnTwAVcXAwCxhLnGwqAAkLCVhIfJy7B6ycTUBH4tTqI4wgNq+AncS2 tv9sIDaLgIrErJc/wMaICkRIfHy6jwmiRlDi5MwnLCA2p4ClxJL+VrA5zALqEn/mXYKyxSWa vqxkhbDlJba/ncM8gVFoFpL2WUhaZiFpmYWkZQEjyypGkdTS4tz03GJDveLE3OLSvHS95Pzc TYzAuNp27OfmHYyXNgYfYhTgYFTi4d3wKyhGiDWxrLgy9xCjBAezkgjvCpeQGCHelMTKqtSi /Pii0pzU4kOMpkDPTWSWEk3OB8Z8Xkm8oamhuYWlobmxubGZhZI473mDyighgfTEktTs1NSC 1CKYPiYOTqkGRu8zC4q9DUvOHHi98EHoE4PXf2avfX/koZGbcZDV/O3FD/pl3/5iiDluFH2w aNbTX1mf77ltdjQVf/x6u6Jxx7fcr/LvdJdP8rrC8u6kWTrDWS+BBc8cLj2cJfLxQ83u4+u2 i0ic28cqvVcnUVBXov2AqcYZljk2zyfb8nME3kk/Z+b9P2PWilolluKMREMt5qLiRAB2R29J wQIAAA== X-CMS-MailID: 20190201142739eucas1p1eff46b874ee985b7aa2d32b185e837c1 X-Msg-Generator: CA Content-Type: text/plain; charset="utf-8" X-RootMTR: 20190201142739eucas1p1eff46b874ee985b7aa2d32b185e837c1 X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20190201142739eucas1p1eff46b874ee985b7aa2d32b185e837c1 References: <20190201100348.6730-1-jfreimann@redhat.com> Subject: Re: [dpdk-dev] [v4] net/virtio: set offload flag for jumbo frames 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: Fri, 01 Feb 2019 14:27:41 -0000 On 01.02.2019 13:03, Jens Freimann wrote: > Port configuration fails because offload flags don't match the expected > value when max-pkt-len is set to a value that should enable receive port > offloading but doesn't. > > There are two cases to consider: > > 1. VIRTIO_NET_F_MTU is set. Then we need to check if the requested > max-pkt-len fits into the MTU plus header. If yes we set the > offload flag. > 2. VIRTIO_NET_F_MTU is not set. We can set the offload flag. > > Fixes: a4996bd89c42 ("ethdev: new Rx/Tx offloads API") > Cc: stable@dpdk.org > > Signed-off-by: Jens Freimann > --- > v3->v4: > * make use of hw-max_mtu which is calculated during device init. This > way we don't have to re-read the mtu from config space again. This > is safe because hw->max_mtu is not changed after init. > > v2->v3: > * remove unnecessary brackets (Maxime) > * fix commit message (David) > > v1->v2: > * include virtnet hdr, ethernet header, vlan tag when comparing against > max-rx-pkt-len (Maxime) > > drivers/net/virtio/virtio_ethdev.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c > index 7c4c1df00..4cf91909d 100644 > --- a/drivers/net/virtio/virtio_ethdev.c > +++ b/drivers/net/virtio/virtio_ethdev.c > @@ -2351,6 +2351,16 @@ virtio_dev_info_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info) > if ((host_features & tso_mask) == tso_mask) > dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_TCP_LRO; > > + if (host_features & (1ULL << VIRTIO_NET_F_MTU)) { > + uint32_t ether_hdr_len = ETHER_HDR_LEN + VLAN_TAG_LEN + > + hw->vtnet_hdr_size; > + if (dev->data->dev_conf.rxmode.max_rx_pkt_len <= > + hw->max_mtu + ether_hdr_len) > + dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_JUMBO_FRAME; > + } else { > + dev_info->rx_offload_capa |= DEV_RX_OFFLOAD_JUMBO_FRAME; > + } > + As I wrote for v3, hw->max_mtu already calculated taking VIRTIO_NET_F_MTU into account. If VIRTIO_NET_F_MTU is not set, hw->max_mtu is equal to "VIRTIO_MAX_RX_PKTLEN - ETHER_HDR_LEN - VLAN_TAG_LEN - hw->vtnet_hdr_size". i.e. "hw->max_mtu + ether_hdr_len" equal to VIRTIO_MAX_RX_PKTLEN which is larger or equal to rxmode.max_rx_pkt_len. So, there is no need to check for VIRTIO_NET_F_MTU here. You may just perform same check for both cases. This doesn't give any performance or so, but will simplify the code. > dev_info->tx_offload_capa = DEV_TX_OFFLOAD_MULTI_SEGS | > DEV_TX_OFFLOAD_VLAN_INSERT; > if (host_features & (1ULL << VIRTIO_NET_F_CSUM)) { >