From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 41CF0A0032; Fri, 29 Oct 2021 12:37:03 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 312704111F; Fri, 29 Oct 2021 12:37:03 +0200 (CEST) Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mails.dpdk.org (Postfix) with ESMTP id 82F38410E0 for ; Fri, 29 Oct 2021 12:37:01 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1635503821; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=JQIuop4yjO5r9BLhBr151Q3cVEEKVDjztn6uPS4hwdY=; b=Zg5HWXY2YbHKVe2ZKrV/MjBmfmpLz1YJ3d5ckvKXZYdONoIzrWqeh2RsypgrZnn1kIGv8x XG67jpIgZofFnh1r99I95bvwo4k/r1bH7D0qUvZveN/hF50xCPgzHqhTkutnxDiAsvUuRa 9MAI0HB76jbrCGm8YyYOSh5P2GoDmNo= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-462-hMoNfBHmPyyT7w9nrQgkTA-1; Fri, 29 Oct 2021 06:36:45 -0400 X-MC-Unique: hMoNfBHmPyyT7w9nrQgkTA-1 Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.phx2.redhat.com [10.5.11.15]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id C2B779F92B; Fri, 29 Oct 2021 10:36:43 +0000 (UTC) Received: from [10.39.208.19] (unknown [10.39.208.19]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 50D735F4EC; Fri, 29 Oct 2021 10:36:26 +0000 (UTC) Message-ID: <828e4f21-5b3f-2f28-f915-9fa128807d2c@redhat.com> Date: Fri, 29 Oct 2021 12:36:24 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.2.0 To: dev@dpdk.org, chenbo.xia@intel.com, amorenoz@redhat.com, david.marchand@redhat.com, andrew.rybchenko@oktetlabs.ru, ferruh.yigit@intel.com, michaelba@nvidia.com, viacheslavo@nvidia.com, xiaoyun.li@intel.com Cc: nelio.laranjeiro@6wind.com, yvugenfi@redhat.com, ybendito@redhat.com References: <20211027142213.556166-1-maxime.coquelin@redhat.com> From: Maxime Coquelin In-Reply-To: <20211027142213.556166-1-maxime.coquelin@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.15 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=maxime.coquelin@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [dpdk-dev] [PATCH v6 0/5] Virtio PMD RSS support & RSS fixes X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 10/27/21 16:22, Maxime Coquelin wrote: > This series is mainly adding support for RSS to Virtio PMD > driver. The two last patches are fixing an issue in testpmd > that could cause out of bounds access, and fix > an issue spotted in the mlx5 driver while looking for > inspiration. > > The first motivation for this series is to eventually > support RSS down to the Vhost-user library, so that OVS can > benefit from it. But it will be also useful with vDPA > devices in the future. > > Regarding the testing, I have tested it with qemu v5.2 from > Fedora 34. Since libvirt does not support yet enabling RSS > feature in the Qemu virtio-net device, and this feature is > disabled by default, the tester can either rebuild the qemu > package to enable it by default or use the qemu cmdline to > do the same. > > The tester can use testpmd in icmpecho mode in the guest > and scapy on the host to inject random traffic on the tap > interface, e.g.: > sendp(Ether(src=RandMAC()) / IP(src=RandIP(), dst='192.168.123.9') / UDP(sport=RandShort(), dport=RandShort()), loop=True, iface='vnet7') > > Then it can play with RSS config in testpmd to change the > RETA, or hash type and see traffic being steered > accordingly by checking the Rx xstats. > > Changes in v6: > ============== > - Rebased on top of main, including convertion to new naming of some defines > - Convert hash types definition to RTE_BIT32() (Andrew) > - Add build check for RETA size being a pow2 (Andrew) > - Restore RSS config if device update fails (Andrew) > - Prevent RSS config if RXq number == 0 (Andrew) > - Reconfigure the RETA if the number of RXq changed (Andrew) > - Apply rss_conf even if the RSS key had previously been configured (Andrew) > > Changes in v5: > ============== > - Remove unneeded index init (Chenbo) > - Improve error print (Chenbo) > - Add missed comment on RSS ctrl message > > Changes in v4: > ============== > - s/GPTU/GTPU/ (Xiaoyun) > > Changes in v3: > ============== > - Add applying user-specified RSS conf a device config time (Andrew) > - Remove useless checks (Chenbo) > - Clean control message payload dlen variable (Chenbo) > - Add GTPU offload type (Xiaoyun) > - Add missing types to str2flowtype() (Xiaoyun) > > Changes in v2: > ============== > - Rework patch 2 to keep old behaviour, but fix possible out of bounds due to key length (Andrew/Nelio/Xiaoyun) > - s/reta/RETA/ (Andrew) > - Applied A-by on patch 3 (Slava) > - Fix display of configured hash types > - Add missing flow types definition to testpmd's port info command > > Maxime Coquelin (5): > net/virtio: add initial RSS support > app/testpmd: fix RSS key length > app/testpmd: fix RSS type display > net/mlx5: fix RSS RETA update > app/testpmd: add missing flow types in port info > > app/test-pmd/cmdline.c | 4 + > app/test-pmd/config.c | 11 +- > doc/guides/nics/features/virtio.ini | 3 + > doc/guides/nics/virtio.rst | 3 + > doc/guides/rel_notes/release_21_11.rst | 6 + > drivers/net/mlx5/mlx5_rss.c | 2 +- > drivers/net/virtio/virtio.h | 32 +- > drivers/net/virtio/virtio_ethdev.c | 436 ++++++++++++++++++++++++- > drivers/net/virtio/virtio_ethdev.h | 3 +- > drivers/net/virtio/virtqueue.h | 25 ++ > 10 files changed, 513 insertions(+), 12 deletions(-) > Applied to dpdk-next-virtio/main. Thanks, Maxime