linux/drivers/infiniband/hw
Jack Morgenstein 54679e1482 mlx4: Implement QP paravirtualization and maintain phys_pkey_cache for smp_snoop
This requires:

1. Replacing the paravirtualized P_Key index (inserted by the guest)
   with the real P_Key index.

2. For UD QPs, placing the guest's true source GID index in the
   address path structure mgid field, and setting the ud_force_mgid
   bit so that the mgid is taken from the QP context and not from the
   WQE when posting sends.

3. For UC and RC QPs, placing the guest's true source GID index in the
   address path structure mgid field.

4. For tunnel and proxy QPs, setting the Q_Key value reserved for that
   proxy/tunnel pair.

Since not all the above adjustments occur in all the QP transitions,
the QP transitions require separate wrapper functions.

Secondly, initialize the P_Key virtualization table to its default
values: Master virtualized table is 1-1 with the real P_Key table,
guest virtualized table has P_Key index 0 mapped to the real P_Key
index 0, and all the other P_Key indices mapped to the reserved
(invalid) P_Key at index 127.

Finally, add logic in smp_snoop for maintaining the phys_P_Key_cache.
and generating events on the master only if a P_Key actually changed.

Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Roland Dreier <roland@purestorage.com>
2012-09-30 20:33:33 -07:00
..
amso1100 IB: Fix typos in infiniband drivers 2012-08-15 11:56:19 -07:00
cxgb3 IB: Fix typos in infiniband drivers 2012-08-15 11:56:19 -07:00
cxgb4 RDMA/cxgb4: Move dereference below NULL test 2012-09-07 16:19:03 -07:00
ehca Remove all #inclusions of asm/system.h 2012-03-28 18:30:03 +01:00
ipath IB/ipath: Replace open-coded ARRAY_SIZE with macro 2012-05-08 11:17:20 -07:00
mlx4 mlx4: Implement QP paravirtualization and maintain phys_pkey_cache for smp_snoop 2012-09-30 20:33:33 -07:00
mthca IB/mthca: Fill in sq_sig_type in query QP 2012-07-11 09:22:57 -07:00
nes RDMA/nes: Don't call event handler if pointer is NULL 2012-05-14 12:48:07 -07:00
ocrdma RDMA/ocrdma: Fix CQE expansion of unsignaled WQE 2012-09-14 10:40:58 -07:00
qib IB/qib: Fix failure of compliance test C14-024#06_LocalPortNum 2012-09-14 10:42:32 -07:00