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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.