From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: [PATCH 0/6] vhost/virtio performance loopback utility Date: Wed, 25 May 2016 11:27:58 +0200 Message-ID: <3881647.zch7p0jKfH@xps13> References: <1462488421-118990-1-git-send-email-zhihong.wang@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: Zhihong Wang , dev@dpdk.org, konstantin.ananyev@intel.com, bruce.richardson@intel.com To: Pablo de Lara Return-path: Received: from mail-wm0-f50.google.com (mail-wm0-f50.google.com [74.125.82.50]) by dpdk.org (Postfix) with ESMTP id 2F79029CB for ; Wed, 25 May 2016 11:28:00 +0200 (CEST) Received: by mail-wm0-f50.google.com with SMTP id s131so13222372wme.0 for ; Wed, 25 May 2016 02:28:00 -0700 (PDT) In-Reply-To: <1462488421-118990-1-git-send-email-zhihong.wang@intel.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" CC Pablo, testpmd maintainer Pablo, This patchset looks really valuable to improve performance debugging. Would you have time to dig into a review please? 2016-05-05 18:46, Zhihong Wang: > This patch enables vhost/virtio pmd performance loopback test in testpmd. > All the features are for general usage. > > The loopback test focuses on the maximum full-path packet forwarding > performance between host and guest, it runs vhost/virtio pmd only without > introducing extra overhead. > > Therefore, the main requirement is traffic generation, since there's no > other packet generators like IXIA to help. > > In current testpmd, io-fwd is the ideal candidate to perform this loopback > test because it's the fastest possible forwarding engine: Start testpmd > io-fwd in host with 1 vhost pmd port, and start testpmd io-fwd in the > connected guest with 1 corresponding virtio pmd port, and these 2 ports > form a forwarding loop, packets received by the host vhost pmd port are > forwarded to the guest virtio pmd port, and packets received by the guest > virtio pmd port are sent to the host vhost pmd port. > > As to traffic generation, "start tx_first" injects a burst of packets into > the loop, which is the ideal way to do that. > > However 2 issues remain: > > 1. If only 1 burst of packets are injected in the loop, there will > almost definitely be empty rx operations, e.g. When guest virtio pmd > port send burst to the host, then it starts the rx immediately, it's > likely the packets are still being forwarded by host vhost pmd port > and haven't reached the guest yet. > > We need to fill up the ring to keep all pmds busy. > > 2. io-fwd doesn't provide retry mechanism, so if packet loss occurs, > there won't be a full burst in the loop. > > To address these issues, this patch: > > 1. Add an io_retry-fwd in testpmd to prevent most packet losses. > > 2. Add parameter to enable configurable tx_first burst number. > > Other related improvements include: > > 1. Handle all rxqs when multiqueue is enabled: Current testpmd forces a > single core for each rxq which causes inconvenience and confusion. > > 2. Show topology at forwarding start: "show config fwd" also does this, > but show it directly can reduce the possibility of mis-configuration. > > 3. Add throughput information in port statistics display for "show port > stats (port_id|all)". > > Finally there's documentation update.