Files
kernel_xiaomi_sm8250/include/linux
Jack Morgenstein ea54b10c77 IB/mlx4: Use multiple WQ blocks to post smaller send WQEs
ConnectX HCA supports shrinking WQEs, so that a single work request
can be made of multiple units of wqe_shift.  This way, WRs can differ
in size, and do not have to be a power of 2 in size, saving memory and
speeding up send WR posting.  Unfortunately, if we do this then the
wqe_index field in CQEs can't be used to look up the WR ID anymore, so
our implementation does this only if selective signaling is off.

Further, on 32-bit platforms, we can't use vmap() to make the QP
buffer virtually contigious. Thus we have to use constant-sized WRs to
make sure a WR is always fully within a single page-sized chunk.

Finally, we use WRs with the NOP opcode to avoid wrapping around the
queue buffer in the middle of posting a WR, and we set the
NoErrorCompletion bit to avoid getting completions with error for NOP
WRs.  However, NEC is only supported starting with firmware 2.2.232,
so we use constant-sized WRs for older firmware.  And, since MLX QPs
only support SEND, we use constant-sized WRs in this case.

When stamping during NOP posting, do stamping following setting of the
NOP WQE valid bit.

Signed-off-by: Michael S. Tsirkin <mst@dev.mellanox.co.il>
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
2008-02-08 13:30:02 -08:00
..
2008-02-05 09:44:13 -08:00
2008-02-05 03:20:13 -08:00
2008-01-28 15:00:14 -08:00
2008-02-01 11:34:49 +01:00
2008-01-29 21:55:15 +01:00
2008-02-03 17:45:46 +02:00
2008-02-05 09:44:07 -08:00
2008-01-30 13:31:10 +01:00
2008-02-03 17:45:46 +02:00
2008-02-03 15:42:53 +02:00
2008-02-03 17:45:46 +02:00
2008-01-30 13:31:56 +01:00
2008-02-03 17:45:46 +02:00
2008-02-03 15:42:53 +02:00
2008-02-05 09:44:19 -08:00
2008-01-30 13:30:27 +01:00
2008-02-05 09:44:07 -08:00
2008-02-02 19:56:47 +01:00
2008-02-01 16:13:16 -05:00
2008-01-28 15:08:27 -08:00
2008-01-28 15:07:58 -08:00
2008-01-28 15:07:57 -08:00
2008-01-31 19:26:46 -08:00
2008-01-31 19:28:20 -08:00
2008-01-28 23:58:27 -05:00
2008-01-30 13:33:13 +01:00
2008-02-03 17:45:46 +02:00
2008-02-05 09:44:16 -08:00
2008-01-30 02:06:08 -05:00
2008-02-05 09:44:19 -08:00
2008-02-02 11:32:01 -08:00
2008-02-02 02:44:34 +03:00
2008-01-30 23:27:58 +01:00
2008-02-05 03:20:13 -08:00
2008-02-03 17:45:46 +02:00
2008-02-03 17:45:46 +02:00
2008-01-30 13:30:53 +01:00
2008-02-05 09:44:22 -08:00
2008-01-30 13:31:47 +01:00
2008-01-31 19:26:46 -08:00
2008-02-04 10:56:03 -08:00
2008-02-03 17:45:46 +02:00
2008-01-31 19:28:30 -08:00
2008-01-30 13:31:20 +01:00
2008-01-30 13:31:20 +01:00
2008-01-30 13:31:20 +01:00
2008-02-05 09:44:15 -08:00
2008-02-05 09:44:16 -08:00
2008-02-05 09:44:07 -08:00
2008-02-01 17:45:14 +01:00
2008-02-04 23:50:13 +11:00
2008-02-04 23:50:03 +11:00
2008-02-04 23:50:02 +11:00
2008-02-04 23:50:03 +11:00
2008-02-05 09:44:07 -08:00
2008-02-03 15:42:53 +02:00