@David, see small question below.

@Thomas, @Ferruh, @Jerin see question below as well.

On 10/6/22 10:43, Ankur Dwivedi wrote:


-----Original Message-----
From: Andrew Rybchenko <andrew.rybche...@oktetlabs.ru>
Sent: Thursday, October 6, 2022 12:58 PM
To: Ankur Dwivedi <adwiv...@marvell.com>; dev@dpdk.org
Cc: tho...@monjalon.net; m...@ashroe.eu; or...@nvidia.com;
ferruh.yi...@xilinx.com; ch...@att.com; humi...@huawei.com;
linvi...@tuxdriver.com; ciara.lof...@intel.com; qi.z.zh...@intel.com;
m...@semihalf.com; m...@semihalf.com; shaib...@amazon.com;
evge...@amazon.com; igo...@amazon.com; cha...@amd.com; Igor
Russkikh <irussk...@marvell.com>; shepard.sie...@atomicrules.com;
ed.cz...@atomicrules.com; john.mil...@atomicrules.com;
ajit.khapa...@broadcom.com; somnath.ko...@broadcom.com; Jerin Jacob
Kollanukkaran <jer...@marvell.com>; Maciej Czekaj [C]
<mcze...@marvell.com>; Shijith Thotton <sthot...@marvell.com>;
Srisivasubramanian Srinivasan <sriniva...@marvell.com>; Harman Kalra
<hka...@marvell.com>; rahul.lakkire...@chelsio.com; johnd...@cisco.com;
hyon...@cisco.com; liudongdo...@huawei.com;
yisen.zhu...@huawei.com; xuanziya...@huawei.com;
cloud.wangxiao...@huawei.com; zhouguoy...@huawei.com;
simei...@intel.com; wenjun1...@intel.com; qiming.y...@intel.com;
yuying.zh...@intel.com; beilei.x...@intel.com; xiao.w.w...@intel.com;
jingjing...@intel.com; junfeng....@intel.com; rosen...@intel.com; Nithin
Kumar Dabilpuram <ndabilpu...@marvell.com>; Kiran Kumar Kokkilagadda
<kirankum...@marvell.com>; Sunil Kumar Kori <sk...@marvell.com>; Satha
Koteswara Rao Kottidi <skotesh...@marvell.com>; Liron Himi
<lir...@marvell.com>; z...@semihalf.com; Radha Chintakuntla
<rad...@marvell.com>; Veerasenareddy Burru <vbu...@marvell.com>;
Sathesh B Edara <sed...@marvell.com>; ma...@nvidia.com;
viachesl...@nvidia.com; sthem...@microsoft.com; lon...@microsoft.com;
spin...@cesnet.cz; chaoyong...@corigine.com;
niklas.soderl...@corigine.com; hemant.agra...@nxp.com;
sachin.sax...@oss.nxp.com; g.si...@nxp.com; apeksha.gu...@nxp.com;
sachin.sax...@nxp.com; abo...@pensando.io; Rasesh Mody
<rm...@marvell.com>; Shahed Shaikh <shsha...@marvell.com>; Devendra
Singh Rawat <dsinghra...@marvell.com>; jiawe...@trustnetic.com;
jianw...@trustnetic.com; jbehr...@vmware.com;
maxime.coque...@redhat.com; chenbo....@intel.com;
steven.webs...@windriver.com; matt.pet...@windriver.com;
bruce.richard...@intel.com; mtetsu...@gmail.com; gr...@u256.net;
jasvinder.si...@intel.com; cristian.dumitre...@intel.com;
jgraj...@cisco.com
Subject: Re: [EXT] Re: [PATCH v2 1/4] ethdev: add trace points

On 10/6/22 10:24, Ankur Dwivedi wrote:
Hi Andrew,

-----Original Message-----
From: Andrew Rybchenko <andrew.rybche...@oktetlabs.ru>
Sent: Thursday, October 6, 2022 12:40 PM
To: Ankur Dwivedi <adwiv...@marvell.com>; dev@dpdk.org
Cc: tho...@monjalon.net; m...@ashroe.eu; or...@nvidia.com;
ferruh.yi...@xilinx.com; ch...@att.com; humi...@huawei.com;
linvi...@tuxdriver.com; ciara.lof...@intel.com; qi.z.zh...@intel.com;
m...@semihalf.com; m...@semihalf.com; shaib...@amazon.com;
evge...@amazon.com; igo...@amazon.com; cha...@amd.com; Igor
Russkikh
<irussk...@marvell.com>; shepard.sie...@atomicrules.com;
ed.cz...@atomicrules.com; john.mil...@atomicrules.com;
ajit.khapa...@broadcom.com; somnath.ko...@broadcom.com; Jerin
Jacob
Kollanukkaran <jer...@marvell.com>; Maciej Czekaj [C]
<mcze...@marvell.com>; Shijith Thotton <sthot...@marvell.com>;
Srisivasubramanian Srinivasan <sriniva...@marvell.com>; Harman Kalra
<hka...@marvell.com>; rahul.lakkire...@chelsio.com;
johnd...@cisco.com; hyon...@cisco.com; liudongdo...@huawei.com;
yisen.zhu...@huawei.com; xuanziya...@huawei.com;
cloud.wangxiao...@huawei.com; zhouguoy...@huawei.com;
simei...@intel.com; wenjun1...@intel.com; qiming.y...@intel.com;
yuying.zh...@intel.com; beilei.x...@intel.com; xiao.w.w...@intel.com;
jingjing...@intel.com; junfeng....@intel.com; rosen...@intel.com;
Nithin Kumar Dabilpuram <ndabilpu...@marvell.com>; Kiran Kumar
Kokkilagadda <kirankum...@marvell.com>; Sunil Kumar Kori
<sk...@marvell.com>; Satha Koteswara Rao Kottidi
<skotesh...@marvell.com>; Liron Himi <lir...@marvell.com>;
z...@semihalf.com; Radha Chintakuntla <rad...@marvell.com>;
Veerasenareddy Burru <vbu...@marvell.com>; Sathesh B Edara
<sed...@marvell.com>; ma...@nvidia.com; viachesl...@nvidia.com;
sthem...@microsoft.com; lon...@microsoft.com; spin...@cesnet.cz;
chaoyong...@corigine.com; niklas.soderl...@corigine.com;
hemant.agra...@nxp.com; sachin.sax...@oss.nxp.com;
g.si...@nxp.com;
apeksha.gu...@nxp.com; sachin.sax...@nxp.com; abo...@pensando.io;
Rasesh Mody <rm...@marvell.com>; Shahed Shaikh
<shsha...@marvell.com>; Devendra Singh Rawat
<dsinghra...@marvell.com>; jiawe...@trustnetic.com;
jianw...@trustnetic.com; jbehr...@vmware.com;
maxime.coque...@redhat.com; chenbo....@intel.com;
steven.webs...@windriver.com; matt.pet...@windriver.com;
bruce.richard...@intel.com; mtetsu...@gmail.com; gr...@u256.net;
jasvinder.si...@intel.com; cristian.dumitre...@intel.com;
jgraj...@cisco.com
Subject: [EXT] Re: [PATCH v2 1/4] ethdev: add trace points

External Email

---------------------------------------------------------------------
- On 9/29/22 13:29, Ankur Dwivedi wrote:
Add trace points for ethdev functions.

Signed-off-by: Ankur Dwivedi <adwiv...@marvell.com>

[snip]

@@ -5867,6 +6010,7 @@ rte_eth_rx_metadata_negotiate(uint16_t
port_id,
uint64_t *features)
    {
        struct rte_eth_dev *dev;

+       rte_eth_trace_rx_metadata_negotiate(port_id, features);

features are in/out, so it would be interesting to values, not just
pointer and both values: input and output.
[Ankur] Will add a emit line to display the uint64_t input value of features.

What about output?
[Ankur] The output is not captured because it calls a callback in the return:

return eth_err(port_id, (*dev->dev_ops->rx_metadata_negotiate)(dev, features));

I do not wanted to modify the existing code/logic for trace.

OK, I see the reason now. I'd like to hear opinion of other
ethdev maintainers (@Thomas and @Ferruh) and @Jerin. Thoughts?

It is just one example from many-many cases.
The question is how pedantic should we be with added tracing?



        RTE_ETH_VALID_PORTID_OR_ERR_RET(port_id, -ENODEV);
        dev = &rte_eth_devices[port_id];


[snip]

diff --git a/lib/ethdev/version.map b/lib/ethdev/version.map index
3def7bfd24..e3d603cc9a 100644
--- a/lib/ethdev/version.map
+++ b/lib/ethdev/version.map
@@ -288,6 +288,150 @@ EXPERIMENTAL {

        # added in 22.11
        rte_flow_async_action_handle_query;
+       __rte_eth_trace_add_first_rx_callback;

Why is it in EXPERIMENTAL section, but not INTERNAL?
[Ankur] Because the functions for which trace is added are not internal
functions.

Sorry, but I don't understand. I agree that tracing of public inline functions
must be part of ABI, but why everything else should be a part of ABI?
[Ankur] I see that there are some already existing trace functions added in 
EXPERIMENTAL in version.map like __rte_ethdev_trace_configure, 
__rte_ethdev_trace_rxq_setup. So not sure will it be internal or experimental.

But you are right the trace function will not be called as a public api. Should 
I make the newly added trace as internal then?

@David, do I understand correctly that trace points in
EXPERIMENTAL is a mistake in majority of cases?



[snip]

    INTERNAL


Reply via email to