mbox series

[v5,0/6] add trace points in ethdev library

Message ID 20230112112140.807233-1-adwivedi@marvell.com (mailing list archive)
Headers
Series add trace points in ethdev library |

Message

Ankur Dwivedi Jan. 12, 2023, 11:21 a.m. UTC
  This series adds trace points for functions in the ethdev library.
The trace points are added in ethdev, flow, mtr and tm files.

v5:
 - The rte_trace_point_emit_char_array function is renamed to 
   rte_trace_point_emit_blob. With this function an array of
   any length upto 65535 bytes can be captured.
   For example, the following is the ctf metadata created to display
   a mac addr array in rte_eth_trace_macaddr_get():
   struct {
      ...
      uint16_t len;
      uint8_t mac_addr_addr_bytes[len];
   };
 - Added additional test cases for rte_eal_trace_generic_blob
   test case.
 - Capturing of return value of a function is added to tracepoint 
   for flow, mtr and tm patches.
 - In ehdev patch (1/6), removed extra line. Also added rx_pkts and
   tx_pkts pointer in trace point.

v4:
 - Adds tracepoint function to emit char array. Also adds the
   test case.
 - Resolved review comments on "ethdev: add trace point" patch.
   This patch is divided into 2 patches to minimize per patch
   size.
 - From the earlier version (v3), few tracepoints in ethdev,
   flow, mtr, tm are made as fast path tracepoints. For the 
   tracepoint which i was unsure, i have made it as fastpath.
   All the fast path tracepoints can be found in 
   rte_ethdev_trace_fp.h and rte_ethdev_trace_fp_burst.h.
   All the slow path tracepoints can be found in rte_ethdev_trace.h.
 - Capturing of return value is added to tracepoint in ethdev.
   For flow, mtr and tm these changes are still yet to bde done.
   Will do it in the next versions.
 - Moved the trace functions from INTERNAL to EXPERIMENTAL in
   version.map.

v3:
 - Moved the trace functions from EXPERIMENTAL to INTERNAL in
   version.map.
 - Moved trace functions call to the end, in ethdev and flow trace.
 - Added code to print the input value of features in
   rte_eth_trace_rx_metadata_negotiate().
 - Added code to capture return value in flow trace.

Ankur Dwivedi (6):
  eal: trace: add trace point emit for blob
  ethdev: add trace points for ethdev
  ethdev: add trace points for remaining functions
  ethdev: add trace points for flow
  ethdev: add trace points for mtr
  ethdev: add trace points for tm

 app/test/test_trace.c                      |    5 +
 lib/eal/common/eal_common_trace_points.c   |    2 +
 lib/eal/include/rte_eal_trace.h            |    6 +
 lib/eal/include/rte_trace_point.h          |   17 +
 lib/eal/include/rte_trace_point_register.h |    7 +
 lib/eal/version.map                        |    3 +
 lib/ethdev/ethdev_private.c                |    5 +
 lib/ethdev/ethdev_trace_points.c           |  715 ++++++++++
 lib/ethdev/meson.build                     |    1 +
 lib/ethdev/rte_ethdev.c                    |  711 ++++++++--
 lib/ethdev/rte_ethdev.h                    |    2 +-
 lib/ethdev/rte_ethdev_cman.c               |   30 +-
 lib/ethdev/rte_ethdev_trace.h              | 1450 ++++++++++++++++++++
 lib/ethdev/rte_ethdev_trace_fp.h           | 1005 +++++++++++++-
 lib/ethdev/rte_ethdev_trace_fp_burst.h     |   44 +
 lib/ethdev/rte_flow.c                      |  314 ++++-
 lib/ethdev/rte_mtr.c                       |  156 ++-
 lib/ethdev/rte_tm.c                        |  247 +++-
 lib/ethdev/version.map                     |  235 ++++
 19 files changed, 4719 insertions(+), 236 deletions(-)
 create mode 100644 lib/ethdev/rte_ethdev_trace_fp_burst.h
  

Comments

Ferruh Yigit Jan. 12, 2023, 5:03 p.m. UTC | #1
On 1/12/2023 11:21 AM, Ankur Dwivedi wrote:
> This series adds trace points for functions in the ethdev library.
> The trace points are added in ethdev, flow, mtr and tm files.
> 
> v5:
>  - The rte_trace_point_emit_char_array function is renamed to 
>    rte_trace_point_emit_blob. With this function an array of
>    any length upto 65535 bytes can be captured.
>    For example, the following is the ctf metadata created to display
>    a mac addr array in rte_eth_trace_macaddr_get():
>    struct {
>       ...
>       uint16_t len;
>       uint8_t mac_addr_addr_bytes[len];
>    };
>  - Added additional test cases for rte_eal_trace_generic_blob
>    test case.
>  - Capturing of return value of a function is added to tracepoint 
>    for flow, mtr and tm patches.
>  - In ehdev patch (1/6), removed extra line. Also added rx_pkts and
>    tx_pkts pointer in trace point.
> 
> v4:
>  - Adds tracepoint function to emit char array. Also adds the
>    test case.
>  - Resolved review comments on "ethdev: add trace point" patch.
>    This patch is divided into 2 patches to minimize per patch
>    size.
>  - From the earlier version (v3), few tracepoints in ethdev,
>    flow, mtr, tm are made as fast path tracepoints. For the 
>    tracepoint which i was unsure, i have made it as fastpath.
>    All the fast path tracepoints can be found in 
>    rte_ethdev_trace_fp.h and rte_ethdev_trace_fp_burst.h.
>    All the slow path tracepoints can be found in rte_ethdev_trace.h.
>  - Capturing of return value is added to tracepoint in ethdev.
>    For flow, mtr and tm these changes are still yet to bde done.
>    Will do it in the next versions.
>  - Moved the trace functions from INTERNAL to EXPERIMENTAL in
>    version.map.
> 
> v3:
>  - Moved the trace functions from EXPERIMENTAL to INTERNAL in
>    version.map.
>  - Moved trace functions call to the end, in ethdev and flow trace.
>  - Added code to print the input value of features in
>    rte_eth_trace_rx_metadata_negotiate().
>  - Added code to capture return value in flow trace.
> 
> Ankur Dwivedi (6):
>   eal: trace: add trace point emit for blob
>   ethdev: add trace points for ethdev
>   ethdev: add trace points for remaining functions
>   ethdev: add trace points for flow
>   ethdev: add trace points for mtr
>   ethdev: add trace points for tm

Hi Ankur,

Build seems failing with set, can you please check:
https://mails.dpdk.org/archives/test-report/2023-January/339696.html

I can reproduce build failures via 32bit and debugoptimized builds.
  
Ankur Dwivedi Jan. 13, 2023, 6:32 a.m. UTC | #2
Hi Ferruh,

My comments are inline.

>-----Original Message-----
>From: Ferruh Yigit <ferruh.yigit@amd.com>
>Sent: Thursday, January 12, 2023 10:33 PM
>To: Ankur Dwivedi <adwivedi@marvell.com>; dev@dpdk.org
>Cc: thomas@monjalon.net; david.marchand@redhat.com; mdr@ashroe.eu;
>orika@nvidia.com; chas3@att.com; humin29@huawei.com;
>linville@tuxdriver.com; ciara.loftus@intel.com; qi.z.zhang@intel.com;
>mw@semihalf.com; mk@semihalf.com; shaibran@amazon.com;
>evgenys@amazon.com; igorch@amazon.com; chandu@amd.com; Igor Russkikh
><irusskikh@marvell.com>; shepard.siegel@atomicrules.com;
>ed.czeck@atomicrules.com; john.miller@atomicrules.com;
>ajit.khaparde@broadcom.com; somnath.kotur@broadcom.com; Jerin Jacob
>Kollanukkaran <jerinj@marvell.com>; Maciej Czekaj [C]
><mczekaj@marvell.com>; Shijith Thotton <sthotton@marvell.com>;
>Srisivasubramanian Srinivasan <srinivasan@marvell.com>; Harman Kalra
><hkalra@marvell.com>; rahul.lakkireddy@chelsio.com; johndale@cisco.com;
>hyonkim@cisco.com; liudongdong3@huawei.com; yisen.zhuang@huawei.com;
>xuanziyang2@huawei.com; cloud.wangxiaoyun@huawei.com;
>zhouguoyang@huawei.com; simei.su@intel.com; wenjun1.wu@intel.com;
>qiming.yang@intel.com; Yuying.Zhang@intel.com; beilei.xing@intel.com;
>xiao.w.wang@intel.com; jingjing.wu@intel.com; junfeng.guo@intel.com;
>rosen.xu@intel.com; Nithin Kumar Dabilpuram <ndabilpuram@marvell.com>;
>Kiran Kumar Kokkilagadda <kirankumark@marvell.com>; Sunil Kumar Kori
><skori@marvell.com>; Satha Koteswara Rao Kottidi
><skoteshwar@marvell.com>; Liron Himi <lironh@marvell.com>;
>zr@semihalf.com; Radha Chintakuntla <radhac@marvell.com>;
>Veerasenareddy Burru <vburru@marvell.com>; Sathesh B Edara
><sedara@marvell.com>; matan@nvidia.com; viacheslavo@nvidia.com;
>longli@microsoft.com; spinler@cesnet.cz; chaoyong.he@corigine.com;
>niklas.soderlund@corigine.com; hemant.agrawal@nxp.com;
>sachin.saxena@oss.nxp.com; g.singh@nxp.com; apeksha.gupta@nxp.com;
>sachin.saxena@nxp.com; aboyer@pensando.io; Rasesh Mody
><rmody@marvell.com>; Shahed Shaikh <shshaikh@marvell.com>; Devendra
>Singh Rawat <dsinghrawat@marvell.com>; andrew.rybchenko@oktetlabs.ru;
>jiawenwu@trustnetic.com; jianwang@trustnetic.com; jbehrens@vmware.com;
>maxime.coquelin@redhat.com; chenbo.xia@intel.com;
>steven.webster@windriver.com; matt.peters@windriver.com;
>bruce.richardson@intel.com; mtetsuyah@gmail.com; grive@u256.net;
>jasvinder.singh@intel.com; cristian.dumitrescu@intel.com; jgrajcia@cisco.com;
>mb@smartsharesystems.com
>Subject: [EXT] Re: [PATCH v5 0/6] add trace points in ethdev library
>
>External Email
>
>----------------------------------------------------------------------
>On 1/12/2023 11:21 AM, Ankur Dwivedi wrote:
>> This series adds trace points for functions in the ethdev library.
>> The trace points are added in ethdev, flow, mtr and tm files.
>>
>> v5:
>>  - The rte_trace_point_emit_char_array function is renamed to
>>    rte_trace_point_emit_blob. With this function an array of
>>    any length upto 65535 bytes can be captured.
>>    For example, the following is the ctf metadata created to display
>>    a mac addr array in rte_eth_trace_macaddr_get():
>>    struct {
>>       ...
>>       uint16_t len;
>>       uint8_t mac_addr_addr_bytes[len];
>>    };
>>  - Added additional test cases for rte_eal_trace_generic_blob
>>    test case.
>>  - Capturing of return value of a function is added to tracepoint
>>    for flow, mtr and tm patches.
>>  - In ehdev patch (1/6), removed extra line. Also added rx_pkts and
>>    tx_pkts pointer in trace point.
>>
>> v4:
>>  - Adds tracepoint function to emit char array. Also adds the
>>    test case.
>>  - Resolved review comments on "ethdev: add trace point" patch.
>>    This patch is divided into 2 patches to minimize per patch
>>    size.
>>  - From the earlier version (v3), few tracepoints in ethdev,
>>    flow, mtr, tm are made as fast path tracepoints. For the
>>    tracepoint which i was unsure, i have made it as fastpath.
>>    All the fast path tracepoints can be found in
>>    rte_ethdev_trace_fp.h and rte_ethdev_trace_fp_burst.h.
>>    All the slow path tracepoints can be found in rte_ethdev_trace.h.
>>  - Capturing of return value is added to tracepoint in ethdev.
>>    For flow, mtr and tm these changes are still yet to bde done.
>>    Will do it in the next versions.
>>  - Moved the trace functions from INTERNAL to EXPERIMENTAL in
>>    version.map.
>>
>> v3:
>>  - Moved the trace functions from EXPERIMENTAL to INTERNAL in
>>    version.map.
>>  - Moved trace functions call to the end, in ethdev and flow trace.
>>  - Added code to print the input value of features in
>>    rte_eth_trace_rx_metadata_negotiate().
>>  - Added code to capture return value in flow trace.
>>
>> Ankur Dwivedi (6):
>>   eal: trace: add trace point emit for blob
>>   ethdev: add trace points for ethdev
>>   ethdev: add trace points for remaining functions
>>   ethdev: add trace points for flow
>>   ethdev: add trace points for mtr
>>   ethdev: add trace points for tm
>
>Hi Ankur,
>
>Build seems failing with set, can you please check:
>https://urldefense.proofpoint.com/v2/url?u=https-
>3A__mails.dpdk.org_archives_test-2Dreport_2023-
>2DJanuary_339696.html&d=DwICaQ&c=nKjWec2b6R0mOyPaz7xtfQ&r=ILjiNF3
>GF25y6QdHZUxMl6JrStU0MIuCtO5dMzn3Ybk&m=FhQtWKgLxBWQ7rF_fkPm7V
>K5-efg3NcVDA6cTbGsoNZmX7WvvZKas2o4xnsIxj5D&s=HDHVPZX4YsLz-
>DsRwK3mRisxOk9U8FK7fStn7gCgsXk&e=
>
>I can reproduce build failures via 32bit and debugoptimized builds.

Sure, I will check.