]> git.karo-electronics.de Git - karo-tx-linux.git/commit
mlx4: Add alias_guid mechanism
authorJack Morgenstein <jackm@dev.mellanox.co.il>
Fri, 3 Aug 2012 08:40:49 +0000 (08:40 +0000)
committerRoland Dreier <roland@purestorage.com>
Sun, 23 Sep 2012 16:26:55 +0000 (09:26 -0700)
commit1109b648d55d739d86a0f29009e58f4b8f7ec656
tree656f1a4e663af82fdfa946387c77499d626f0125
parent55f5ca5668eb6d214909010b41f7c528c843a3bc
mlx4: Add alias_guid mechanism

For IB ports, we paravirtualize the GUID at index 0 on slaves.  The
GUID at index 0 seen by a slave is the actual GUID occupying the GUID
table at the slave-id index.

The driver, by default, requests at startup time that subnet manager
populate its entire guid table with GUIDs. These guids are then mapped
(paravirtualized) to the slaves, and appear for each slave as its GUID
at index 0.

Until each slave has such a guid, its port status is DOWN.

The guid table is cached to support special QP paravirtualization, and
event propagation to slaves on guid change (we test to see if the guid
really changed before propagating an event to the slave).

To support this caching, add capability to __mlx4_ib_query_gid() to
obtain the network view (i.e., physical view) gid at index X, not just
the host (paravirtualized) view.

Based on a patch from Erez Shitrit <erezsh@mellanox.com>

Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/infiniband/hw/mlx4/Makefile
drivers/infiniband/hw/mlx4/alias_GUID.c [new file with mode: 0644]
drivers/infiniband/hw/mlx4/mad.c
drivers/infiniband/hw/mlx4/main.c
drivers/infiniband/hw/mlx4/mlx4_ib.h
drivers/net/ethernet/mellanox/mlx4/cmd.c