From: Sarat Kakarla <sarat.kakarla-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
To: Ira Weiny <weiny2-i2BcT+NCU+M@public.gmane.org>
Cc: Hal Rosenstock <hal-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>,
linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
"Jia Shi (E-mail)"
<JIA.SHI-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
Subject: Re: [PATCH] Add fix to _do_madrpc to set the errno after umad_recv.
Date: Mon, 18 Mar 2013 12:03:55 -0700 [thread overview]
Message-ID: <5147651B.5030309@oracle.com> (raw)
In-Reply-To: <20130226142930.10c27daedb24b768fb979fe9-i2BcT+NCU+M@public.gmane.org>
Ira,
Thanks for the review.
Sorry for the late reply. My answers are in-lined.
Sarat
On 2/26/2013 2:29 PM, Ira Weiny wrote:
> First, it is not documented that this function will set any errno value.
>
> umad_status is only documented to return ETIMEDOUT which will be returned in the p_error parameter (ib_rpc_t -> rstatus) value when an error occurs. Is this not sufficient for your needs?
We are not invoking the _do_mad_rpc directly, we are invoking ib_resolve_portid_str_via that does not pass-back any of the ib_rpc_t contents, so we just depend on the return code
and errno to determine whether a path can be resolved or not.
>
> Secondly, this patch does not apply cleanly. Please create patches against the current master at:
>
> git://git.openfabrics.org/~iraweiny/libibmad.git
We are working on setting up the the GIT ..
>
> Thirdly, the patch below will set errno on each retry case. I don't think this is necessary.
Ok I will change the code to return immediately after hitting the E_TIMEDOUT error.
>> status = umad_status(rcvbuf);
>> + errno = status;
>>
>> if (!status)
>> return length; /* done */
>> if (errno == E_TIMEDOUT)
>> return length;
>> if (status == ENOMEM)
>
> Thanks,
> Ira
>
> On Mon, 18 Feb 2013 14:10:29 -0800
> Sarat Kakarla <sarat.kakarla-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> wrote:
>
>> _do_madrpc() (in libibmad-1.3.3/src/rpc.c) sends the mad request through umad_send() and waits for a response from umad_recv() with the timeout passed by caller. Linux error
>> number sent by peer in 'status' is not copied over to the process/thread local 'errno'.
>>
>> Signed-off-by: Sarat Kakarla <sarat.kakarla-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
>>
>> $diff -Naru rpc.c rpc_fix.c
>> --- rpc.c 2013-02-07 10:28:06.000000000 -0800
>> +++ rpc_fix.c 2013-02-18 13:57:15.000000000 -0800
>> @@ -175,6 +175,7 @@
>> IB_MAD_TRID_F) != trid);
>>
>> status = umad_status(rcvbuf);
>> + errno = status;
>> if (!status)
>> return length; /* done */
>> if (status == ENOMEM)
>
>
>
--
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
prev parent reply other threads:[~2013-03-18 19:03 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-18 22:10 [PATCH] Add fix to _do_madrpc to set the errno after umad_recv Sarat Kakarla
[not found] ` <5122A6D5.10400-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2013-02-25 19:34 ` Sarat Kakarla
2013-02-26 22:29 ` Ira Weiny
[not found] ` <20130226142930.10c27daedb24b768fb979fe9-i2BcT+NCU+M@public.gmane.org>
2013-03-18 19:03 ` Sarat Kakarla [this message]
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=5147651B.5030309@oracle.com \
--to=sarat.kakarla-qhclzuegtsvqt0dzr+alfa@public.gmane.org \
--cc=JIA.SHI-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org \
--cc=hal-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=weiny2-i2BcT+NCU+M@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