On 4/28/2023 2:29 AM, Long Li wrote: > > >> -----Original Message----- >> From: Ferruh Yigit <ferruh.yi...@amd.com> >> Sent: Friday, March 3, 2023 5:15 PM >> To: Long Li <lon...@microsoft.com>; Stephen Hemminger >> <step...@networkplumber.org> >> Cc: lon...@linuxonhyperv.com; Thomas Monjalon <tho...@monjalon.net>; >> Andrew Rybchenko <andrew.rybche...@oktetlabs.ru>; Jerin Jacob >> Kollanukkaran <jer...@marvell.com>; David Marchand >> <david.march...@redhat.com>; dev@dpdk.org; Ajay Sharma >> <sharmaa...@microsoft.com>; sta...@dpdk.org; Luca Boccassi >> <bl...@debian.org>; Qi Z Zhang <qi.z.zh...@intel.com>; Ajit Khaparde >> <ajit.khapa...@broadcom.com>; Bruce Richardson >> <bruce.richard...@intel.com>; Konstantin Ananyev >> <konstantin.v.anan...@yandex.ru>; Olivier Matz <olivier.m...@6wind.com>; >> Honnappa Nagarahalli <honnappa.nagaraha...@arm.com>; techbo...@dpdk.org >> Subject: Re: [PATCH] net/mana: use RTE_LOG_DP for logs on datapath >> >> On 3/3/2023 7:04 PM, Long Li wrote: >>>> Subject: Re: [PATCH] net/mana: use RTE_LOG_DP for logs on datapath >>>> >>>> On 3/3/2023 2:16 AM, Long Li wrote: >>>>>> Subject: Re: [PATCH] net/mana: use RTE_LOG_DP for logs on datapath >>>>>> >>>>>> On Thu, 23 Feb 2023 10:09:17 -0800 >>>>>> Stephen Hemminger <step...@networkplumber.org> wrote: >>>>>> >>>>>>> On Thu, 23 Feb 2023 14:07:25 +0000 Ferruh Yigit >>>>>>> <ferruh.yi...@amd.com> wrote: >>>>>>> >>>>>>>> Overall I am not sure if anyone is interested in driver datapath >>>>>>>> logs other than driver developers themselves. >>>>>>>> >>>>>>>> For datapath logging I think there are two concerns, >>>>>>>> 1) It should not eat *any* cycles unless explicitly enabled >>>>>>>> 2) Capability of enable/disable them because of massive amount of >>>>>>>> log it can generate >>>>>>>> >>>>>>>> >>>>>>>> Currently there are two existing approaches for driver datapath >>>>>>>> logging: >>>>>>>> i) Controlled by 'RTE_ETHDEV_DEBUG_RX/TX' compile time flag, >>>>>>>> when enabled 'rte_log()' is used with Rx/Tx specific log type. >>>>>>>> ii) 'RTE_LOG_DP' ', compile time control per logtype via >>>>>>>> 'RTE_LOG_DP_LEVEL', >>>>>>>> when enabled 'rte_log()' is used with PMD logtype. >>>>>>>> >>>>>>>> >>>>>>>> In (ii), need to re-compile code when you need to increase the >>>>>>>> log verbosity, and it leaks to production code as mentioned above. >>>>>>>> >>>>>>>> For (i), developer compiles once enabling debug, later can fine >>>>>>>> grain log level dynamically. This is more DPDK developer focused >>>> approach. >>>>>>>> >>>>>>>> >>>>>>>> [1] >>>>>>>> According above, what do you think to retire 'RTE_LOG_DP', (at >>>>>>>> least within ethdev datapath), and chose (i) as preferred >>>>>>>> datapath >>>> logging? >>>>>>> >>>>>>> I agree, the current tx/rx logging is a mess. >>>>>>> Each driver is different, each driver has to have something to >>>>>>> enable it; and it really isn't useful beyond the driver developer. >>>>>>> >>>>>>> Using tracing seems like a much better option. Could we agree on a >>>>>>> common set of trace points for drivers and fix all drivers to use >>>>>>> the same >>>>>> thing. >>>>>>> Probably will cause some upset among driver developers: >>>>>>> "where did my nice printf's go, now I have to learn tracing" >>>>>>> but DPDK has a good facility here, lets use it. >>>>>>> >>>>>>> My proposal would be: >>>>>>> - agree on common set of trace points >>>>>>> - apply to all drivers >>>>>>> - remove RTE_LOG_DP() >>>>>>> - remove per driver RX/TX options >>>>>>> - side effect, more uses of RTE_LOGTYPE_PMD go away. >>>>>> >>>>>> Here is an example of using tracepoints instead. >>>>>> Compile tested for example only. >>>>>> >>>>>> Note: using tracepoints it is possible to keep some of the >>>>>> tracepoints even if fastpath is not enabled. Things like running >>>>>> out of Tx or Mbuf is not something that is perf critical; but would >>>>>> be good for >>>> application to see. >>>>> >>>>> Thank you for the example. >>>>> >>>>> I sent another patch converting data path logs (mana) to trace points. >>>>> >>>> >>>> Hi Long, >>>> >>>> Thanks for the effort, you were quick on this while discussion is going on. >>>> >>>> Although tracepoint is a good feature, I am not sure if it can fully >>>> replace the logging. >>>> I think usage is slightly different, trace is missing custom human >>>> readable message, which can be very helpful for end user. >>>> >>>> And overall, it is a high level decision to switch logging to trace, >>>> it is inconsistent to switch only single driver, perhaps techboard >>>> (cc'ed) can discuss this. >>>> >>>> Until such consensus reached, I think driver should continue with logging. >>>> >>>> >>>> >>>> And for the logging, I suggest option (i) above, I was hoping more >>>> comments but since it is missing I hope this can be discussed in >>>> techboard for a conclusion. >>> >>> Hi Ferruh, >>> >>> Are you suggesting that MANA should use 'RTE_ETHDEV_DEBUG_RX/TX'? >>> >>> I'm happy to implement the logging in this way. >>> >> >> Yes, that looks to me better balance for compile time / runtime config for >> drive >> developers. >> >> But it prevents product code / end user to get data path logs, although I >> believe >> this is OK I am not sure how useful datapath logs in production code, that >> is why I >> am looking for more comment for a decision. >> >> Let's wait for next techboard meeting, in case this is discussed there, >> before >> making new implementation. > > HI Ferruh, > > Have we reached a decision on how to implement data path logs? >
Hi Long, I am not aware of a result on the matter, let me continue with this patch to not block it more.