DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Burakov, Anatoly" <anatoly.burakov@intel.com>
To: "Van Haaren, Harry" <harry.van.haaren@intel.com>,
	Thomas Monjalon <thomas@monjalon.net>
Cc: "dev@dpdk.org" <dev@dpdk.org>, "Tan, Jianfeng" <jianfeng.tan@intel.com>
Subject: Re: [dpdk-dev] [PATCH] eal: fix rte_errno values for IPC API
Date: Tue, 13 Feb 2018 14:25:31 +0000	[thread overview]
Message-ID: <8a18715a-c87e-3834-7adc-86b22a4e482d@intel.com> (raw)
In-Reply-To: <E923DB57A917B54B9182A2E928D00FA651011441@IRSMSX102.ger.corp.intel.com>

On 13-Feb-18 2:16 PM, Van Haaren, Harry wrote:
>> From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Thomas Monjalon
>> Sent: Tuesday, February 13, 2018 1:51 PM
>> To: Burakov, Anatoly <anatoly.burakov@intel.com>
>> Cc: dev@dpdk.org; Tan, Jianfeng <jianfeng.tan@intel.com>
>> Subject: Re: [dpdk-dev] [PATCH] eal: fix rte_errno values for IPC API
>>
>>>> rte_errno values should not be negative.
>>>>
>>>> Fixes: bacaa2754017 ("eal: add channel for multi-process communication")
>>>> Fixes: 783b6e54971d ("eal: add synchronous multi-process communication")
>>>> Cc: jianfeng.tan@intel.com
>>>> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
>>>
>>> Reviewed-by: Jianfeng Tan <jianfeng.tan@intel.com>
>>>
>>> Thanks for fixing this.
>>
>> Applied, thanks
>>
>> There are a lot of similar issues:
>>
>> git grep -l 'rte_errno = -E' | sed 's,[^/]*$,,' | sort -u
>>
>> 	drivers/event/opdl/
>> 	drivers/event/sw/
> <snip>
>> 	lib/librte_eventdev/
> 
> 
> I just checked the eventdev.h port_link() docs, which indicate negative return values.
> Perhaps the header is wrong too - but the PMDs adhere to the library header in this case.
> 
> Is there a requirement for rte_errno to be positive?
> It looks to be declared as per-lcore signed int in rte_errno.h +20
> 
> Either-way, if we want to change the PMDs, we should change the Eventdev APIs,
> which means API breakage, and application changes to handle changed return values.
> 
> Sound like more work than it is worth it to me?
> 

To be clear, documentation doesn't *explicitly* spell this out, so it 
can be interpreted as not having an opinion on this. So i think the 
first step should be fixing documentation to clearly indicate this is to 
be expected at least of new code (unless decided against for consistency 
reasons).

However, while docs don't state this outright, i think they imply it 
both in cases of referring to errno values and returning "-errno" values 
(which implies sign isn't part of the errno value). Plus, errno values 
in Linux are always positive, plus rte_strerror() expects a positive 
value, and (as correctly pointed out by Harry) our custom errno values - 
so at least our API expects it to be positive, even if it doesn't state 
it outright.

-- 
Thanks,
Anatoly

  reply	other threads:[~2018-02-13 14:25 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-02-10 13:15 Anatoly Burakov
2018-02-11  1:09 ` Tan, Jianfeng
2018-02-13 13:50   ` Thomas Monjalon
2018-02-13 14:16     ` Van Haaren, Harry
2018-02-13 14:25       ` Burakov, Anatoly [this message]
2018-02-13 15:39       ` Bruce Richardson

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=8a18715a-c87e-3834-7adc-86b22a4e482d@intel.com \
    --to=anatoly.burakov@intel.com \
    --cc=dev@dpdk.org \
    --cc=harry.van.haaren@intel.com \
    --cc=jianfeng.tan@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).