DPDK patches and discussions
 help / color / mirror / Atom feed
From: fengchengwen <fengchengwen@huawei.com>
To: Bruce Richardson <bruce.richardson@intel.com>
Cc: <thomas@monjalon.net>, <ferruh.yigit@amd.com>,
	<andrew.rybchenko@oktetlabs.ru>, <dev@dpdk.org>,
	<ciara.power@intel.com>, <kevin.laatz@intel.com>
Subject: Re: [PATCH v5 2/5] telemetry: fix repeated display when callback don't set dict
Date: Wed, 11 Jan 2023 20:38:19 +0800	[thread overview]
Message-ID: <33c09194-565d-bfc6-a8e3-a5c647d883c5@huawei.com> (raw)
In-Reply-To: <Y7hbUI8VkwFxRtDu@bricha3-MOBL.ger.corp.intel.com>

Hi Bruce,

On 2023/1/7 1:33, Bruce Richardson wrote:
> On Fri, Jan 06, 2023 at 04:07:45PM +0000, Bruce Richardson wrote:
>> On Mon, Dec 26, 2022 at 12:53:57PM +0800, fengchengwen wrote:
>>> On 2022/12/19 17:33, Bruce Richardson wrote:
>>>> On Mon, Dec 19, 2022 at 09:07:20AM +0000, Chengwen Feng wrote:
>>>>> When telemetry callback didn't set dict and return a non-negative
>>>>> number, the telemetry will repeat to display the last result.
>>>>>
>>>>> Fixes: 6dd571fd07c3 ("telemetry: introduce new functionality")
>>>>> Cc: stable@dpdk.org
>>>>>
>>>>> Signed-off-by: Chengwen Feng <fengchengwen@huawei.com>
>>>>> ---
>>>>
>>>> Hi Chengwen,
>>>>
>>>> I'm a little curious about this bug. Can you describe some steps to
>>>> reproduce it as I'm curious as to exactly what is happening. The fix seems
>>>> a little strange to me so I'd like to investigate a little more to see if
>>>> other approaches might work.
>>>
>>> Hi Bruce,
>>>
>>> Sorry for late reply.
>>>
>>> The steps:
>>>   1. applay "[PATCH v5 1/5] dmadev: support stats reset telemetry command"
>>>   2. compile
>>>   3. start dpdk-dma: dpdk-dma -a DMA.BDF -a NIC.BDF -- -c hw
>>>   4. start telemetry, and execute /dmadev/stats,0, and then /dmadev/stats_reset,0
>>>      the output of /dmadev/stats_reset,0 will be the same of previous cmd "/dmadev/stats,0"
>>>      e.g. my environment:
>>> --> /dmadev/stats,0
>>> {
>>>   "/dmadev/stats": {
>>>     "submitted": 23,
>>>     "completed": 23,
>>>     "errors": 0
>>>   }
>>> }
>>> --> /dmadev/stats_reset,0
>>> {
>>>   "/dmadev/stats_reset": {
>>>     "submitted": 23,
>>>     "completed": 23,
>>>     "errors": 0
>>>   }
>>> }
>>>
>>> The rootcause is that the /dmadev/stats_reset don't set the outer parameter "struct rte_tel_data *info"
>>> and return zero.
>>>
>> Thanks for the fuller explanation, I'll hopefully test it out myself.
>>
>> However, in the meantime, looking at the telemetry library code, would the
>> following change work rather than explicitly always setting the telemetry
>> data to a dictionary by default? Zeroing the data by default sets it to a
>> null return which is what you probably want as default rather than an empty
>> dictionary. (And it's also a smaller diff)
>>
>> /Bruce
>>
>> diff --git a/lib/telemetry/telemetry.c b/lib/telemetry/telemetry.c
>> index 8fbb4f3060..7b905355cd 100644
>> --- a/lib/telemetry/telemetry.c
>> +++ b/lib/telemetry/telemetry.c
>> @@ -333,7 +333,7 @@ output_json(const char *cmd, const struct rte_tel_data *d, int s)
>>  static void
>>  perform_command(telemetry_cb fn, const char *cmd, const char *param, int s)
>>  {
>> -       struct rte_tel_data data;
>> +       struct rte_tel_data data = {0};
>>  
>>         int ret = fn(cmd, param, &data);
>>         if (ret < 0) {
>>
> 
> I've handily reproduced the issue using the instructions you gave above,
> thanks for those.
> 
> Based on that, and looking a little deeper:
> 
> * I think it is an error with the reset function not to initialize and
>   complete the return value. I believe that for each telemetry callback we
>   should require that the callback fill in a valid value on success. For
>   reset, some options could be just a string "OK", or an array just
>   containing "[0]", or similar.

good idea, the v2 follow it.

> 
> * Given that point above, I do agree though that the "data" parameter
>   should be properly initialized on entry to the callbacks. However, I feel
>   that the correct init should be the empty/null value, as is given in the
>   patch above.

already fix in v2

Thanks.

> 
> Regards,
> /Bruce
> .
> 

  reply	other threads:[~2023-01-11 12:38 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-19  9:07 [PATCH v5 0/5] support dmadev/ethdev stats reset Chengwen Feng
2022-12-19  9:07 ` [PATCH v5 1/5] dmadev: support stats reset telemetry command Chengwen Feng
2022-12-19  9:07 ` [PATCH v5 2/5] telemetry: fix repeated display when callback don't set dict Chengwen Feng
2022-12-19  9:33   ` Bruce Richardson
2022-12-26  4:53     ` fengchengwen
2023-01-06 16:07       ` Bruce Richardson
2023-01-06 17:33         ` Bruce Richardson
2023-01-11 12:38           ` fengchengwen [this message]
2022-12-19  9:07 ` [PATCH v5 3/5] ethdev: support xstats reset telemetry command Chengwen Feng
2022-12-19  9:07 ` [PATCH v5 4/5] ethdev: telemetry xstats support hide zero Chengwen Feng
2022-12-19  9:07 ` [PATCH v5 5/5] ethdev: add newline to telemetry log string Chengwen Feng
2022-12-26  4:55 ` [PATCH v5 0/5] support dmadev/ethdev stats reset fengchengwen
2023-01-11 12:02 ` [PATCH v2 " Chengwen Feng
2023-01-11 12:02   ` [PATCH v2 1/5] dmadev: support stats reset telemetry command Chengwen Feng
2023-01-11 12:02   ` [PATCH v2 2/5] telemetry: fix repeat display when callback don't set dict Chengwen Feng
2023-01-11 12:02   ` [PATCH v2 3/5] ethdev: add newline to telemetry log string Chengwen Feng
2023-01-11 12:02   ` [PATCH v2 4/5] ethdev: support xstats reset telemetry command Chengwen Feng
2023-01-11 12:02   ` [PATCH v2 5/5] ethdev: telemetry xstats support hide zero Chengwen Feng
2023-01-11 12:06 ` [PATCH v2 0/5] support dmadev/ethdev stats reset Chengwen Feng
2023-01-11 12:06   ` [PATCH v2 1/5] dmadev: support stats reset telemetry command Chengwen Feng
2023-01-11 13:58     ` Bruce Richardson
2023-01-11 12:06   ` [PATCH v2 2/5] telemetry: fix repeat display when callback don't set dict Chengwen Feng
2023-01-11 14:01     ` Bruce Richardson
2023-01-11 12:06   ` [PATCH v2 3/5] ethdev: add newline to telemetry log string Chengwen Feng
2023-01-11 12:06   ` [PATCH v2 4/5] ethdev: support xstats reset telemetry command Chengwen Feng
2023-01-11 12:06   ` [PATCH v2 5/5] ethdev: telemetry xstats support hide zero Chengwen Feng
2023-01-11 14:08     ` Bruce Richardson
2023-01-20  3:51       ` fengchengwen
2023-01-11 12:36   ` [PATCH v2 0/5] support dmadev/ethdev stats reset fengchengwen
2023-01-20  3:25 ` [PATCH v3 " Chengwen Feng
2023-01-20  3:25   ` [PATCH v3 1/5] dmadev: support stats reset telemetry command Chengwen Feng
2023-01-20  3:25   ` [PATCH v3 2/5] telemetry: fix repeat display when callback don't init dict Chengwen Feng
2023-01-20  3:25   ` [PATCH v3 3/5] ethdev: add newline to telemetry log string Chengwen Feng
2023-01-20  3:25   ` [PATCH v3 4/5] ethdev: support xstats reset telemetry command Chengwen Feng
2023-01-20  3:25   ` [PATCH v3 5/5] ethdev: telemetry xstats support hide zero Chengwen Feng
2023-01-20  3:34 ` [PATCH v4 0/5] support dmadev/ethdev stats reset Chengwen Feng
2023-01-20  3:34   ` [PATCH v4 1/5] dmadev: support stats reset telemetry command Chengwen Feng
2023-01-20  3:34   ` [PATCH v4 2/5] telemetry: fix repeat display when callback don't init dict Chengwen Feng
2023-02-08 14:15     ` Bruce Richardson
2023-02-09  1:33       ` fengchengwen
2023-01-20  3:34   ` [PATCH v4 3/5] ethdev: add newline to telemetry log string Chengwen Feng
2023-01-20  3:34   ` [PATCH v4 4/5] ethdev: support xstats reset telemetry command Chengwen Feng
2023-01-20  3:34   ` [PATCH v4 5/5] ethdev: telemetry xstats support hide zero Chengwen Feng
2023-02-06  8:39   ` [PATCH v4 0/5] support dmadev/ethdev stats reset Thomas Monjalon
2023-02-08 14:17   ` Bruce Richardson
2023-02-09  1:45     ` fengchengwen
2023-02-09  2:32 ` [PATCH v5 0/2] " Chengwen Feng
2023-02-09  2:32   ` [PATCH v5 1/2] dmadev: support stats reset telemetry command Chengwen Feng
2023-02-09  2:32   ` [PATCH v5 2/2] ethdev: support xstats " Chengwen Feng
2023-02-15  3:19     ` Dongdong Liu
2023-02-16 11:53       ` fengchengwen
2023-02-16 12:06         ` Ferruh Yigit
2023-02-16 12:42           ` fengchengwen
2023-02-16 12:54             ` Bruce Richardson
2023-02-16 12:55               ` Bruce Richardson
2023-02-17  9:44               ` fengchengwen
2023-02-20 13:05                 ` Thomas Monjalon
2023-07-03  3:58                   ` fengchengwen
2023-07-03  7:20                     ` Thomas Monjalon
2023-07-03 13:44                       ` Morten Brørup
2023-07-04  6:41                         ` fengchengwen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=33c09194-565d-bfc6-a8e3-a5c647d883c5@huawei.com \
    --to=fengchengwen@huawei.com \
    --cc=andrew.rybchenko@oktetlabs.ru \
    --cc=bruce.richardson@intel.com \
    --cc=ciara.power@intel.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@amd.com \
    --cc=kevin.laatz@intel.com \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).