lkml.org 
[lkml]   [2018]   [Apr]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH] IB/core: Make ib_mad_client_id atomic
From
Date
On Thu, 2018-04-26 at 20:51 +0200, Håkon Bugge wrote:
> > Jason is out this week. I'll end up processing this one (probably later
> > today). But I’ll fix up the commit message to suit my tastes when I do.
>
> Thank you, Doug and Jack,

I reworded the commit message, let me know if you think I worded it
wrong:

commit 69f01b81539c62f3dd96f9f02138ad7b839a0c70 (HEAD -> k.o/wip/dl-for-rc)
Author: Håkon Bugge <haakon.bugge@oracle.com>
Date: Wed Apr 18 16:24:50 2018 +0200

IB/core: Make ib_mad_client_id atomic

Currently, kernel protects access to the agent ID allocator on a per
port basis using a spinlock, so it is impossible for two apps/threads on
the same port to get the same TID, but it is entirely possible for two
threads on different ports to end up with the same TID. As this can be
confusing (regardless of it being legal according to the IB Spec 1.3,
C13-18.1.1, in section 13.4.6.4 - TransactionID usage: "Then initiating
a new operation, MADHeader:TransactionID shall be set to such a value
that within that MAD the combination of TIG, SGID, and MgmtClass is
different from that of any other currently executing operation. If the
MAD does not have a GRH, its SLID is used in the combination in place of
an SGID." which guarantees we are legal because our different ports will
have different SGID/SLID creating a unique tuple even if the TIDs are
identical), and as we might want to open the TID allocator up to more
parallel usage later, make the TID an atomic type so that no two
allocations, regardless of port number, will be the same.

Signed-off-by: Håkon Bugge <haakon.bugge@oracle.com>
Reviewed-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Reviewed-by: Ira Weiny <ira.weiny@intel.com>
Reviewed-by: Zhu Yanjun <yanjun.zhu@oracle.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>

--
Doug Ledford <dledford@redhat.com>
GPG KeyID: B826A3330E572FDD
Key fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD[unhandled content-type:application/pgp-signature]
\
 
 \ /
  Last update: 2018-04-27 21:08    [W:0.541 / U:0.028 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site