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@xxxxxxxxxx> 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@xxxxxxxxxx> Reviewed-by: Jack Morgenstein <jackm@xxxxxxxxxxxxxxxxxx> Reviewed-by: Ira Weiny <ira.weiny@xxxxxxxxx> Reviewed-by: Zhu Yanjun <yanjun.zhu@xxxxxxxxxx> Signed-off-by: Doug Ledford <dledford@xxxxxxxxxx> -- Doug Ledford <dledford@xxxxxxxxxx> GPG KeyID: B826A3330E572FDD Key fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD
Attachment:
signature.asc
Description: This is a digitally signed message part