Hi Andrew,

>-----Original Message-----
>From: Andrew Rybchenko <andrew.rybche...@oktetlabs.ru>
>Sent: Monday, September 12, 2022 4:30 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 1/6] ethdev: add trace points
>
>External Email
>
>----------------------------------------------------------------------
>On 8/4/22 16:44, Ankur Dwivedi wrote:
>> Add trace points for ethdev functions.
>>
>> Signed-off-by: Ankur Dwivedi <adwiv...@marvell.com>
>> ---
>
>[snip]
>
>> diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c index
>> 1979dc0850..a6fb370b22 100644
>> --- a/lib/ethdev/rte_ethdev.c
>> +++ b/lib/ethdev/rte_ethdev.c
>
>[snip]
>
>> @@ -525,6 +536,7 @@ rte_eth_dev_owner_delete(const uint64_t
>owner_id)
>>
>>      rte_spinlock_unlock(&eth_dev_shared_data->ownership_lock);
>>
>> +    rte_ethdev_trace_owner_delete(owner_id, ret);
>
>I'm wondering why trace is sometimes added in the middle of the function,
>but in the majority of cases it is added as the first or the last action. Is 
>there
>any logical/guidelines behind it?
In this case for printing the return value the trace was added at the end. I 
can change it if not required.
The logic which I used was to log at least the input arguments of a function 
and in some cases also log important information(according to me) if 
possible.For example in rte_eth_tx_buffer_count_callback() I was also logging 
the count at the end. Similar logic in rte_eth_link_get_nowait().
Please let me know your views.
>
>>      return ret;
>>   }
>>
>
>[snip]
>
>> diff --git a/lib/ethdev/rte_ethdev_trace.h
>> b/lib/ethdev/rte_ethdev_trace.h index 1491c815c3..de728d355d 100644
>> --- a/lib/ethdev/rte_ethdev_trace.h
>> +++ b/lib/ethdev/rte_ethdev_trace.h
>
>[snip]
>
>> +RTE_TRACE_POINT(
>
>Shouldn't it be RTE_TRACE_POINT_FP? Isn't it fast path?
Yes it is fastpath. Will make it as fastpath in v2.
>
>> +    rte_eth_trace_call_rx_callbacks,
>> +    RTE_TRACE_POINT_ARGS(uint16_t port_id, uint16_t queue_id,
>> +            struct rte_mbuf **rx_pkts, uint16_t nb_rx,
>> +            uint16_t nb_pkts, void *opaque),
>> +    rte_trace_point_emit_u16(port_id);
>> +    rte_trace_point_emit_u16(queue_id);
>> +    rte_trace_point_emit_ptr(rx_pkts);
>> +    rte_trace_point_emit_u16(nb_rx);
>> +    rte_trace_point_emit_u16(nb_pkts);
>> +    rte_trace_point_emit_ptr(opaque);
>> +)
>> +
>> +RTE_TRACE_POINT(
>
>same here
Yes it is fastpath. Will make it as fastpath in v2.
>
>> +    rte_eth_trace_call_tx_callbacks,
>> +    RTE_TRACE_POINT_ARGS(uint16_t port_id, uint16_t queue_id,
>> +            struct rte_mbuf **tx_pkts, uint16_t nb_pkts,
>> +            void *opaque),
>> +    rte_trace_point_emit_u16(port_id);
>> +    rte_trace_point_emit_u16(queue_id);
>> +    rte_trace_point_emit_ptr(tx_pkts);
>> +    rte_trace_point_emit_u16(nb_pkts);
>> +    rte_trace_point_emit_ptr(opaque);
>> +)
>> +
>
>[snip]
>
>> +RTE_TRACE_POINT(
>> +    rte_ethdev_trace_info_get,
>> +    RTE_TRACE_POINT_ARGS(uint16_t port_id,
>> +            struct rte_eth_dev_info *dev_info),
>> +    rte_trace_point_emit_u16(port_id);
>> +    rte_trace_point_emit_string(dev_info->driver_name);
>> +    rte_trace_point_emit_u32(dev_info->if_index);
>> +    rte_trace_point_emit_u16(dev_info->min_mtu);
>> +    rte_trace_point_emit_u16(dev_info->max_mtu);
>> +    rte_trace_point_emit_u32(dev_info->min_rx_bufsize);
>> +    rte_trace_point_emit_u32(dev_info->max_rx_pktlen);
>> +    rte_trace_point_emit_u64(dev_info->rx_offload_capa);
>> +    rte_trace_point_emit_u64(dev_info->tx_offload_capa);
>> +    rte_trace_point_emit_u64(dev_info->rx_queue_offload_capa);
>> +    rte_trace_point_emit_u64(dev_info->tx_queue_offload_capa);
>> +    rte_trace_point_emit_u16(dev_info->reta_size);
>> +    rte_trace_point_emit_u8(dev_info->hash_key_size);
>> +    rte_trace_point_emit_u16(dev_info->nb_rx_queues);
>> +    rte_trace_point_emit_u16(dev_info->nb_tx_queues);
>
>How to make a choice which information should be included above?
In this case dev_info information is logged which might be of interest.
>
>> +)
>> +
>
>[snip]

Reply via email to