From: Jason Gunthorpe <jgunthorpe-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
To: "Weiny, Ira" <ira.weiny-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org>
Cc: brendan doyle
<brendan.doyle-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>,
Boris Chiu <boris.chiu-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>,
"iweiny-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org"
<iweiny-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
"linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org"
<linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org>,
Pramod Gunjikar
<pramod.gunjikar-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
Subject: Re: [Fwd: Re: [PATCH] libibmad: Fixes for failures when not all ports of HCA are connected]
Date: Thu, 21 Mar 2013 16:07:51 -0600 [thread overview]
Message-ID: <20130321220751.GG8431@obsidianresearch.com> (raw)
In-Reply-To: <2807E5FD2F6FDA4886F6618EAC48510EBB4AF5-8k97q/ur5Z1cIJlls4ac1rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
On Thu, Mar 21, 2013 at 09:58:09PM +0000, Weiny, Ira wrote:
> > Once you introduce an 'old' style return, you are going to start using it and
> > then we are stuck with this inconsistency forever. Pick a direction and go
> > there, consistently :)
> >
> > 'new' POSIX is *much* safer to use, you don't have the risk of library code
> > stomping errno, particularly during error unwind.
>
> I really don't see how the new POSIX model prevents libraries from stomping errno?
Most errors are returned as +ERRNO via 'int' so errno is not involved,
this is the common case.
The uncommon case degrades into the 'old' errno case, which people
theoretically know how to program for. At the very least it works
often enough for application writers.
People working on library code have to be aware of proper errno use,
and the cavets. This is true of all the IB libraries.
> I have a different idea. I think the library should define a new call.
>
> int mad_get_error(const struct ibmad_port *srcport);
>
> This returns an errno compatible value which corresponds to the last
> mad_* call. Ibmad_port is opaque and we can add an error field
.. and now you have created a new, special, unfamiliar paradigm that
doesn't avoid the main problems with errno, just reduces the scope,
and breaks thread safety..
openssl did something very much like this, and I once went through a
painful process to make sure that every call to openssl used the
openssl error check idiom, and every C library call used the proper
errno idiom, and so forth. Adding more error check idioms for
application writers to follow isn't going to make their job easier or
create more correct code.
Jason
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2013-03-21 22:07 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <5140E1A3.9070706@oracle.com>
[not found] ` <51427819.7000505@oracle.com>
[not found] ` <51427819.7000505-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2013-03-15 1:26 ` [Fwd: Re: [PATCH] libibmad: Fixes for failures when not all ports of HCA are connected] brendan.doyle-QHcLZuEGTsvQT0dZR+AlfA
[not found] ` <514278CA.8010809-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2013-03-20 1:27 ` Weiny, Ira
[not found] ` <2807E5FD2F6FDA4886F6618EAC48510EBB3F62-8k97q/ur5Z1cIJlls4ac1rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2013-03-20 18:35 ` brendan doyle
[not found] ` <514A0156.2070009-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2013-03-20 19:02 ` Jason Gunthorpe
[not found] ` <20130320190208.GA23478-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-03-20 21:52 ` Weiny, Ira
[not found] ` <2807E5FD2F6FDA4886F6618EAC48510EBB4214-8k97q/ur5Z1cIJlls4ac1rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2013-03-20 22:00 ` brendan doyle
[not found] ` <514A3169.7000501-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2013-03-20 22:24 ` Jason Gunthorpe
[not found] ` <20130320222422.GA30100-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-03-20 22:44 ` brendan doyle
[not found] ` <514A3BDF.2090105-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2013-03-20 23:19 ` Jason Gunthorpe
[not found] ` <20130320231923.GA32300-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-03-20 23:30 ` Hefty, Sean
2013-03-21 1:01 ` brendan doyle
[not found] ` <514A5C07.3080308-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2013-03-21 5:21 ` Jason Gunthorpe
[not found] ` <20130321052122.GB20882-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-03-21 20:37 ` brendan doyle
[not found] ` <514B6F74.9020707-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2013-03-21 21:27 ` Jason Gunthorpe
[not found] ` <20130321212703.GA8431-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-03-21 21:58 ` Weiny, Ira
[not found] ` <2807E5FD2F6FDA4886F6618EAC48510EBB4AF5-8k97q/ur5Z1cIJlls4ac1rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2013-03-21 22:07 ` Jason Gunthorpe [this message]
[not found] ` <20130321220751.GG8431-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-03-21 22:46 ` Weiny, Ira
[not found] ` <2807E5FD2F6FDA4886F6618EAC48510EBB4B49-8k97q/ur5Z1cIJlls4ac1rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2013-03-21 22:49 ` Weiny, Ira
2013-03-21 22:50 ` Jason Gunthorpe
[not found] ` <20130321225018.GA9749-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-03-21 22:53 ` Weiny, Ira
[not found] ` <2807E5FD2F6FDA4886F6618EAC48510EBB4B7E-8k97q/ur5Z1cIJlls4ac1rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2013-03-21 22:58 ` Jason Gunthorpe
[not found] ` <20130321225858.GA9924-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-03-21 23:05 ` Weiny, Ira
2013-03-21 23:04 ` brendan doyle
[not found] ` <514B9215.2000106-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2013-03-21 23:06 ` Weiny, Ira
[not found] ` <2807E5FD2F6FDA4886F6618EAC48510EBB4BBF-8k97q/ur5Z1cIJlls4ac1rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2013-03-26 23:22 ` brendan.doyle-QHcLZuEGTsvQT0dZR+AlfA
2013-03-21 22:07 ` brendan doyle
2013-03-21 21:30 ` Weiny, Ira
[not found] ` <2807E5FD2F6FDA4886F6618EAC48510EBB4AB2-8k97q/ur5Z1cIJlls4ac1rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2013-03-21 21:47 ` Jason Gunthorpe
[not found] ` <20130321214725.GD8431-ePGOBjL8dl3ta4EC/59zMFaTQe2KTcn/@public.gmane.org>
2013-03-21 22:12 ` brendan doyle
2013-03-21 21:37 ` Weiny, Ira
[not found] ` <2807E5FD2F6FDA4886F6618EAC48510EBB4ACB-8k97q/ur5Z1cIJlls4ac1rfspsVTdybXVpNB7YpNyf8@public.gmane.org>
2013-03-21 21:48 ` Jason Gunthorpe
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=20130321220751.GG8431@obsidianresearch.com \
--to=jgunthorpe-epgobjl8dl3ta4ec/59zmfatqe2ktcn/@public.gmane.org \
--cc=boris.chiu-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
--cc=brendan.doyle-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
--cc=ira.weiny-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org \
--cc=iweiny-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=pramod.gunjikar-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
/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