[ofa-general] [PATCH] Lock _do_madrpc for thread safety
Hal Rosenstock
hal.rosenstock at gmail.com
Fri Jul 10 11:37:01 PDT 2009
Ira,
On 7/8/09, Ira Weiny <weiny2 at llnl.gov> wrote:
> Sasha,
>
> I am working on making libibnetdisc a parallel implementation. As a result
> I
> have found that _do_madrpc is not thread safe.
Have you read Sasha's commit 51d25384626a7b4ba386c414ed56c647a7bf64df
from 12/26/08 ? In it, he states " I think that it will be more robust
for multithreaded
application to use its own synchronization methods (pthread mutex or any
other) for better control. "
> The following patch fixes
> this. However, I don't know you want to do...
>
> If one only uses mad_rpc and mad_rpc_rmpp then the patch works. However, if
> someone is using mad_send_via at the same time _do_madrpc will still fail.
> Is
> it by design that some responses will be lost while _do_madrpc is looking
> for
> it's response via the TID?
>
> Also, according to C13-18.1.1 and C13-19.1.1 you must use the SGID (or SLID)
> and the MgmtClass in addition to the TID to determine the uniqueness of a
> message. The SGID (or SLID) is of course the same but should the MgmtClass
> be checked here as well?
>
> Finally, why does _do_madrpc cast the transaction id to a 32 bit value?
The kernel uses the high 32 bits for an agent ID. See kernel
Documentation/infiniband/user_mad.txt "Transaction IDs".
-- Hal
> Confused,
> Ira
<snip...>
More information about the general
mailing list