Message ID | 1584625851-10291-1-git-send-email-viacheslavo@mellanox.com (mailing list archive) |
---|---|
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 183EFA0583; Thu, 19 Mar 2020 14:51:05 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0843AF94; Thu, 19 Mar 2020 14:51:04 +0100 (CET) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by dpdk.org (Postfix) with ESMTP id E0CD7CF3 for <dev@dpdk.org>; Thu, 19 Mar 2020 14:51:01 +0100 (CET) Received: from Internal Mail-Server by MTLPINE2 (envelope-from viacheslavo@mellanox.com) with ESMTPS (AES256-SHA encrypted); 19 Mar 2020 15:50:58 +0200 Received: from pegasus12.mtr.labs.mlnx (pegasus12.mtr.labs.mlnx [10.210.17.40]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 02JDowDN009844; Thu, 19 Mar 2020 15:50:58 +0200 Received: from pegasus12.mtr.labs.mlnx (localhost [127.0.0.1]) by pegasus12.mtr.labs.mlnx (8.14.7/8.14.7) with ESMTP id 02JDowZw010403; Thu, 19 Mar 2020 13:50:58 GMT Received: (from viacheslavo@localhost) by pegasus12.mtr.labs.mlnx (8.14.7/8.14.7/Submit) id 02JDowJ2010402; Thu, 19 Mar 2020 13:50:58 GMT X-Authentication-Warning: pegasus12.mtr.labs.mlnx: viacheslavo set sender to viacheslavo@mellanox.com using -f From: Viacheslav Ovsiienko <viacheslavo@mellanox.com> To: dev@dpdk.org Cc: ferruh.yigit@intel.com, thomas@monjalon.net, bernard.iremonger@intel.com Date: Thu, 19 Mar 2020 13:50:48 +0000 Message-Id: <1584625851-10291-1-git-send-email-viacheslavo@mellanox.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <1561553317-16777-1-git-send-email-viacheslavo@mellanox.com> References: <1561553317-16777-1-git-send-email-viacheslavo@mellanox.com> Subject: [dpdk-dev] [PATCH v2 0/3] app/testpmd: qualify Rx/Tx profiling data on burst size X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions <dev.dpdk.org> List-Unsubscribe: <https://mails.dpdk.org/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://mails.dpdk.org/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <https://mails.dpdk.org/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Series |
app/testpmd: qualify Rx/Tx profiling data on burst size
|
|
Message
Slava Ovsiienko
March 19, 2020, 1:50 p.m. UTC
There is the CONFIG_RTE_TEST_PMD_RECORD_CORE_CYCLES configuration
parameter enabling the lightweight profiler for the forwarding
routines that provides the time spent in the routines and estimates
the CPU cycles required to process one packet.
It would be good to have separated data for the Rx and Tx directions.
Beside this, the performance depends on the actual burst size, the profiling
data per burst size are meaningful and would help detect the performance
anomalies.
To control this profiling statistics the new testpmd command is introduced:
set fwdprof (flags)
This command controls which profiling statistics is being gathered
in runtime:
- bit 0 - enables profiling the entire forward routine, counts the ticks
spent in the forwarding routine, is set by default. Provides
the same data as previous implementation.
- bit 1 - enables gathering the profiling data for the transmit datapath,
counts the ticks spent within rte_eth_tx_burst() routine,
is cleared by default, extends the existing statistics.
- bit 2 - enables gathering the profiling data for the receive datapath,
counts the ticks spent within rte_eth_rx_burst() routine,
is cleared by default, extends the existing statistics.
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
---
v2: - run time flags instead of compile time configuration
- detailed statistics per burst size
v1: http://patches.dpdk.org/patch/55407/
Viacheslav Ovsiienko (3):
app/testpmd: add profiling flags set command
app/testpmd: gather Rx and Tx routines profiling
app/testpmd: qualify profiling statistics on burst size
app/test-pmd/cmdline.c | 15 ++++++++
app/test-pmd/config.c | 10 +++++
app/test-pmd/csumonly.c | 26 ++++++-------
app/test-pmd/flowgen.c | 26 ++++++-------
app/test-pmd/icmpecho.c | 27 +++++++-------
app/test-pmd/iofwd.c | 26 ++++++-------
app/test-pmd/macfwd.c | 26 ++++++-------
app/test-pmd/macswap.c | 26 ++++++-------
app/test-pmd/rxonly.c | 14 ++-----
app/test-pmd/softnicfwd.c | 26 ++++++-------
app/test-pmd/testpmd.c | 52 ++++++++++++++++++++++----
app/test-pmd/testpmd.h | 58 ++++++++++++++++++++++++++++-
app/test-pmd/txonly.c | 25 ++++++-------
doc/guides/testpmd_app_ug/testpmd_funcs.rst | 22 +++++++++++
14 files changed, 256 insertions(+), 123 deletions(-)
Comments
19/03/2020 14:50, Viacheslav Ovsiienko: > There is the CONFIG_RTE_TEST_PMD_RECORD_CORE_CYCLES configuration > parameter enabling the lightweight profiler for the forwarding > routines that provides the time spent in the routines and estimates > the CPU cycles required to process one packet. > > It would be good to have separated data for the Rx and Tx directions. > Beside this, the performance depends on the actual burst size, the profiling > data per burst size are meaningful and would help detect the performance > anomalies. > > To control this profiling statistics the new testpmd command is introduced: > > set fwdprof (flags) > > This command controls which profiling statistics is being gathered > in runtime: > > - bit 0 - enables profiling the entire forward routine, counts the ticks > spent in the forwarding routine, is set by default. Provides > the same data as previous implementation. > > - bit 1 - enables gathering the profiling data for the transmit datapath, > counts the ticks spent within rte_eth_tx_burst() routine, > is cleared by default, extends the existing statistics. > > - bit 2 - enables gathering the profiling data for the receive datapath, > counts the ticks spent within rte_eth_rx_burst() routine, > is cleared by default, extends the existing statistics. Please can you rename bit 1 to Rx, and bit 2 to Tx, and implement configuration with text parsing instead of obscure bitflags? It would be more user-friendly, thanks.