From: Andrew Rybchenko <arybchenko@solarflare.com>
To: Kevin Traynor <ktraynor@redhat.com>, <dev@dpdk.org>
Cc: Ferruh Yigit <ferruh.yigit@intel.com>,
Thomas Monjalon <thomas@monjalon.net>
Subject: Re: [dpdk-dev] [PATCH] ethdev: decrease log level for successful API
Date: Thu, 2 Aug 2018 17:41:58 +0300 [thread overview]
Message-ID: <00c35ad3-e063-b14e-ef56-e4308ec83f52@solarflare.com> (raw)
In-Reply-To: <9c85e414-f5d3-2450-7ddb-c954ce737c31@redhat.com>
On 02.08.2018 17:09, Kevin Traynor wrote:
> On 08/02/2018 02:52 PM, Andrew Rybchenko wrote:
>> On 02.08.2018 16:35, Kevin Traynor wrote:
>>> On 08/02/2018 01:59 PM, Andrew Rybchenko wrote:
>>>> On 02.08.2018 15:33, Kevin Traynor wrote:
>>>>> Change log level of messages from ERR back to DEBUG where
>>>>> existing API indicates that the condition is a success.
>>>>>
>>>>> This means applications using the API in its current form will
>>>>> not get new ERR logs.
>>>>>
>>>>> Fixes: bea1e0c70cfc ("ethdev: convert static log type usage to
>>>>> dynamic")
>>>>>
>>>>> Signed-off-by: Kevin Traynor <ktraynor@redhat.com>
>>>>> ---
>>>>> lib/librte_ethdev/rte_ethdev.c | 12 ++++++------
>>>>> 1 file changed, 6 insertions(+), 6 deletions(-)
>>>>>
>>>>> diff --git a/lib/librte_ethdev/rte_ethdev.c
>>>>> b/lib/librte_ethdev/rte_ethdev.c
>>>>> index c7ab157..16656d2 100644
>>>>> --- a/lib/librte_ethdev/rte_ethdev.c
>>>>> +++ b/lib/librte_ethdev/rte_ethdev.c
>>>>> @@ -797,5 +797,5 @@ struct rte_eth_dev *
>>>>> if (dev->data->rx_queue_state[rx_queue_id] !=
>>>>> RTE_ETH_QUEUE_STATE_STOPPED) {
>>>>> - RTE_ETHDEV_LOG(ERR,
>>>>> + RTE_ETHDEV_LOG(DEBUG,
>>>>> "Queue %"PRIu16" of device with port_id=%"PRIu16"
>>>>> already started\n",
>>>>> rx_queue_id, port_id);
>>>>> @@ -824,5 +824,5 @@ struct rte_eth_dev *
>>>>> if (dev->data->rx_queue_state[rx_queue_id] ==
>>>>> RTE_ETH_QUEUE_STATE_STOPPED) {
>>>>> - RTE_ETHDEV_LOG(ERR,
>>>>> + RTE_ETHDEV_LOG(DEBUG,
>>>>> "Queue %"PRIu16" of device with port_id=%"PRIu16"
>>>>> already stopped\n",
>>>>> rx_queue_id, port_id);
>>>>> @@ -857,5 +857,5 @@ struct rte_eth_dev *
>>>>> if (dev->data->tx_queue_state[tx_queue_id] !=
>>>>> RTE_ETH_QUEUE_STATE_STOPPED) {
>>>>> - RTE_ETHDEV_LOG(ERR,
>>>>> + RTE_ETHDEV_LOG(DEBUG,
>>>>> "Queue %"PRIu16" of device with port_id=%"PRIu16"
>>>>> already started\n",
>>>>> tx_queue_id, port_id);
>>>>> @@ -882,5 +882,5 @@ struct rte_eth_dev *
>>>>> if (dev->data->tx_queue_state[tx_queue_id] ==
>>>>> RTE_ETH_QUEUE_STATE_STOPPED) {
>>>>> - RTE_ETHDEV_LOG(ERR,
>>>>> + RTE_ETHDEV_LOG(DEBUG,
>>>>> "Queue %"PRIu16" of device with port_id=%"PRIu16"
>>>>> already stopped\n",
>>>>> tx_queue_id, port_id);
>>>>> @@ -1287,5 +1287,5 @@ struct rte_eth_dev *
>>>>> if (dev->data->dev_started != 0) {
>>>>> - RTE_ETHDEV_LOG(ERR,
>>>>> + RTE_ETHDEV_LOG(DEBUG,
>>>>> "Device with port_id=%"PRIu16" already started\n",
>>>>> port_id);
>>>>> @@ -1319,5 +1319,5 @@ struct rte_eth_dev *
>>>>> if (dev->data->dev_started == 0) {
>>>>> - RTE_ETHDEV_LOG(ERR,
>>>>> + RTE_ETHDEV_LOG(DEBUG,
>>>>> "Device with port_id=%"PRIu16" already stopped\n",
>>>>> port_id);
>>>> I would suggest to use WARNING here. Yes, it is not an error since
>>>> nothing bad has
>>>> happened and we handle duplicate stop and duplicate start,
>>>> but I think it is bad that (buggy?) application does it. Making it debug
>>>> we simply
>>>> hide it too much.
>>>>
>>> I think an application following the documented API is not bad or buggy.
>> I've failed to find the place were it is documented that device/queue
>> may be stopped/started twice. Could you point out?
>> Yes, return value 0 means success, but it is a separate thing.
>>
> I was commenting directly on the API and it's documentation e.g. below
> for dev start. I'm not aware of other documentation specifying how it
> can/cannot be called.
I would not say so. "0: Success. Ethernet device started" means that
function managed to do the job and finally the device is started.
Never-mind it is not that important and already paid to much attention.
I've included in CC other ethdev maintainers (who should be there from
the very beginning). I don't mind if it is acked by other ethdev maintainer
and applied. It is definitely not an error as it is now. Thanks.
> * @return
> * - 0: Success, Ethernet device started.
> * - <0: Error code of the driver device start function.
> */
> int rte_eth_dev_start(uint16_t port_id);
>
> int
> rte_eth_dev_start(uint16_t port_id)
> {
> ...
> if (dev->data->dev_started != 0) {
> RTE_ETHDEV_LOG(DEBUG,
> "Device with port_id=%"PRIu16" already started\n",
> port_id);
> return 0;
> }
> ...
> }
>
>
>>> An application may not maintain some state and always call a stop before
>>> a start etc. in line with the API.
>>>
>>> I don't think an API success condition should be changed from a debug
>>> message to anything else. Otherwise, it is trying to flag a warning
>>> about the application which is following the API! It and will just spook
>>> people when they see a new warning.
next prev parent reply other threads:[~2018-08-02 14:42 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-08-02 12:33 Kevin Traynor
2018-08-02 12:59 ` Andrew Rybchenko
2018-08-02 13:35 ` Kevin Traynor
2018-08-02 13:52 ` Andrew Rybchenko
2018-08-02 14:09 ` Kevin Traynor
2018-08-02 14:41 ` Andrew Rybchenko [this message]
2018-08-02 14:52 ` Kevin Traynor
2018-08-02 16:14 ` Thomas Monjalon
2018-08-02 18:01 ` Andrew Rybchenko
2018-08-02 18:27 ` Kevin Traynor
2018-08-02 12:59 ` Andrew Rybchenko
2018-08-02 15:14 ` Stephen Hemminger
2018-08-02 18:33 ` Kevin Traynor
2018-08-02 18:39 ` Kevin Traynor
2018-08-02 18:39 ` [dpdk-dev] [PATCH v2] " Kevin Traynor
2018-08-03 8:04 ` Andrew Rybchenko
2018-08-05 13:29 ` Thomas Monjalon
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=00c35ad3-e063-b14e-ef56-e4308ec83f52@solarflare.com \
--to=arybchenko@solarflare.com \
--cc=dev@dpdk.org \
--cc=ferruh.yigit@intel.com \
--cc=ktraynor@redhat.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).