[dpdk-dev] [PATCH v6 0/3] app/test: unit test to measure cycles per packet

Liu, Yong yong.liu at intel.com
Mon Oct 27 02:45:25 CET 2014


Tested-by: Yong Liu <yong.liu at intel.com>

- Tested Commit: 1ab07743b21b785a71fa334641ab58e779532600
- OS: Fedora20 3.15.8-200.fc20.x86_64
- GCC: gcc version 4.8.3 20140624
- CPU: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
- NIC: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection [8086:10fb]
- Default x86_64-native-linuxapp-gcc configuration
- Total 2 cases, 2 passed, 0 failed

- Case: Continuous Mode Performance
  Description: Measure continous mode cycles/packet in NIC loopback mode 
  Command / instruction:
	Start sample test application.
		./app/test/test -n 1 -c ffff
	Set stream control mode to continuous
		RTE>>set_rxtx_sc continuous
	Choose rx/tx pair between vector|scalar|full|hybrid
		RTE>>set_rxtx_mode vector
	Choose the area of measurement
		RTE>>set_rxtx_anchor rxtx
	Start pmd performance measurement
		RTE>>pmd_perf_autotest
  Expected test result:
	Test result is OK and output cycle number for each packet.
	
- Case:	Burst Mode Performance
  Description: Measure burst mode cycles/packet in NIC loopback mode
  Command / instruction:
	Start sample test application.
		./app/test/test -n 1 -c ffff
	Set stream control mode to poll_before_xmit or poll_after_xmit.	
		RTE>>set_rxtx_sc poll_before_xmit
	Start pmd performance measurement
		RTE>>pmd_perf_autotest
  Expected test result:
	Test result is OK and output cycle number for each packet.

> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Cunming Liang
> Sent: Monday, October 27, 2014 9:20 AM
> To: dev at dpdk.org
> Subject: [dpdk-dev] [PATCH v6 0/3] app/test: unit test to measure cycles per
> packet
> 
> v6 update:
> # leave FUNC_PTR_OR_*_RET unmodified
> 
> v5 update:
> # fix the confusing of retval in some API of rte_ethdev
> 
> v4 ignore
> 
> v3 update:
> # Codes refine according to the feedback.
>   1. add ether_format_addr to rte_ether.h
>   2. fix typo in code comments.
>   3. %lu to %PRIu64, fixing 32-bit targets compilation err
> # merge 2 small incremental patches to the first one.
>   The whole unit test as a single patch in [PATCH v3 2/2]
> # rebase code to the latest master
> 
> v2 update:
> Rebase code to the latest master branch.
> 
> It provides unit test to measure cycles/packet in NIC loopback mode.
> It simply gives the average cycles of IO used per packet without test
> equipment.
> When doing the test, make sure the link is UP.
> 
> There's two stream control mode support, one is continues, another is burst.
> The former continues to forward the injected packets until reaching a certain
> amount of number.
> The latter one stop when all the injected packets are received.
> In burst stream, now measure two situations, with or without desc. cache
> conflict.
> By default, it runs in continues stream mode to measure the whole rxtx.
> 
> Usage Example:
> 1. Run unit test app in interactive mode
>     app/test -c f -n 4 -- -i
> 2. Set stream control mode, by default is continuous
>     set_rxtx_sc [continuous|poll_before_xmit|poll_after_xmit]
> 3. If choose continuous stream, there are another two options can configure
>     3.1 choose rx/tx pair, default is vector
>         set_rxtx_mode [vector|scalar|full|hybrid]
>         Note: To get acurate scalar fast, plz choose 'vector' or 'hybrid' without
> INC_VEC=y in config
>     3.2 choose the area of masurement, default is rxtx
>         set_rxtx_anchor [rxtx|rxonly|txonly]
> 4. Run and wait for the result
>     pmd_perf_autotest
> 
> For who simply just want to see how much cycles cost per packet.
> Compile DPDK, Run 'app/test', and type 'pmd_perf_autotest', that's it.
> Nothing else needs to configure.
> Using other options when you understand and what to measures more.
> 
> 
> BTW, [1/3] is the same patch as below one.
> http://dpdk.org/dev/patchwork/patch/817
> 
> *** BLURB HERE ***
> 
> Cunming Liang (3):
>   app/test: allow to create packets in different sizes
>   app/test: measure the cost of rx/tx routines by cycle number
>   ethdev: fix wrong error return refere to API definition
> 
>  app/test/Makefile                   |    1 +
>  app/test/commands.c                 |  111 +++++
>  app/test/packet_burst_generator.c   |   26 +-
>  app/test/packet_burst_generator.h   |   11 +-
>  app/test/test.h                     |    6 +
>  app/test/test_link_bonding.c        |   39 +-
>  app/test/test_pmd_perf.c            |  922
> +++++++++++++++++++++++++++++++++++
>  lib/librte_ether/rte_ethdev.c       |    6 +-
>  lib/librte_ether/rte_ether.h        |   25 +
>  lib/librte_pmd_ixgbe/ixgbe_ethdev.c |    6 +
>  10 files changed, 1117 insertions(+), 36 deletions(-)
>  create mode 100644 app/test/test_pmd_perf.c
> 
> --
> 1.7.4.1



More information about the dev mailing list