[dpdk-dev] [PATCH 0/6] vhost/virtio performance loopback utility
Thomas Monjalon
thomas.monjalon at 6wind.com
Wed May 25 11:27:58 CEST 2016
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.
More information about the dev
mailing list