From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B2F37A00C3; Mon, 12 Sep 2022 13:00:10 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 51AE6400D4; Mon, 12 Sep 2022 13:00:10 +0200 (CEST) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113]) by mails.dpdk.org (Postfix) with ESMTP id E83D140042 for ; Mon, 12 Sep 2022 13:00:08 +0200 (CEST) Received: from [192.168.38.17] (aros.oktetlabs.ru [192.168.38.17]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by shelob.oktetlabs.ru (Postfix) with ESMTPSA id 5ADA369; Mon, 12 Sep 2022 14:00:07 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru 5ADA369 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=oktetlabs.ru; s=default; t=1662980407; bh=Mw8aq+/soLtHHA8g6augSBMvehiJdXre7/I+x3B7Vp8=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=YBCwvTxypXw8OKLLuoKI/DHibvxdAJO02KZJVWNr6i++RycZw7aSmd/uqosoUw8g3 4a3DhBX6IWntUQF9ypd63ISM62p9L9mYdeMvouTycMk+yPjhO64KKfvEf7bVhvAYMh 1gzOkZdqlQLPMVPMI6rT4ofJQ4XlFTcE7rCv/Onw= Message-ID: Date: Mon, 12 Sep 2022 14:00:07 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.13.0 Subject: Re: [PATCH 1/6] ethdev: add trace points Content-Language: en-US To: Ankur Dwivedi , dev@dpdk.org Cc: thomas@monjalon.net, mdr@ashroe.eu, orika@nvidia.com, ferruh.yigit@xilinx.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, irusskikh@marvell.com, shepard.siegel@atomicrules.com, ed.czeck@atomicrules.com, john.miller@atomicrules.com, ajit.khaparde@broadcom.com, somnath.kotur@broadcom.com, jerinj@marvell.com, mczekaj@marvell.com, sthotton@marvell.com, srinivasan@marvell.com, 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, ndabilpuram@marvell.com, kirankumark@marvell.com, skori@marvell.com, skoteshwar@marvell.com, lironh@marvell.com, zr@semihalf.com, radhac@marvell.com, vburru@marvell.com, sedara@marvell.com, matan@nvidia.com, viacheslavo@nvidia.com, sthemmin@microsoft.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, rmody@marvell.com, shshaikh@marvell.com, dsinghrawat@marvell.com, 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 References: <20220804134430.6192-1-adwivedi@marvell.com> <20220804134430.6192-2-adwivedi@marvell.com> From: Andrew Rybchenko Organization: OKTET Labs In-Reply-To: <20220804134430.6192-2-adwivedi@marvell.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org On 8/4/22 16:44, Ankur Dwivedi wrote: > Add trace points for ethdev functions. > > Signed-off-by: Ankur Dwivedi > --- [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(ð_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? > 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? > + 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 > + 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? > +) > + [snip]