On 2018/6/27 13:56, Leon Romanovsky wrote:
On Wed, Jun 27, 2018 at 11:22:18AM +0800, Yanjun Zhu wrote:
On 2018/6/24 23:55, Leon Romanovsky wrote:
On Wed, Jun 20, 2018 at 11:28:27PM -0400, Zhu Yanjun wrote:
According to "Annex A16: RDMA over Converged Ethernet (RoCE)",
A16.4.3 MANAGEMENT INTERFACES
As defined in the base specification, a special Queue Pair, QP0 is defined
solely for communication between subnet manager(s) and subnet management
agents. Since such an IB-defined subnet management architecture
is outside the scope of this annex, it follows that there is also no
requirement that a port which conforms to this annex be associated with
a QP0. Thus, for end nodes designed to conform to this annex, the concept
of QP0 is undefined and unused for any port connected to an
Ethernet network.
CA16-8: A packet arriving at a RoCE port containing a BTH with the
destination QP field set to QP0 shall be silently dropped.
CC: Srinivas Eeda <srinivas.eeda@xxxxxxxxxx>
CC: Junxiao Bi <junxiao.bi@xxxxxxxxxx>
Signed-off-by: Zhu Yanjun <yanjun.zhu@xxxxxxxxxx>
---
drivers/infiniband/sw/rxe/rxe_recv.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/infiniband/sw/rxe/rxe_recv.c b/drivers/infiniband/sw/rxe/rxe_recv.c
index b0c8d1e..08cb97a 100644
--- a/drivers/infiniband/sw/rxe/rxe_recv.c
+++ b/drivers/infiniband/sw/rxe/rxe_recv.c
@@ -225,9 +225,14 @@ static int hdr_check(struct rxe_pkt_info *pkt)
goto err1;
}
+ if (unlikely(qpn == 0)) {
+ pr_warn_ratelimited("QP 0 is not supported\n");
Safest option is not to print this warning at all.
Sorry to reply late. It is to notify the users that QP 0 is dropped. So this
warning is necessary. Or else the user
will take time to investigate it.
In a word, this warning can save time.
I'm saying it from my experience of running default fedora 28 with
default opensm on RoCE system where I over flooded with messages
"ib_register_mad_agent: QP 0 not supported" from mad.c.
I wouldn't want to see same thing for RXE too.
Thanks.
How about WARN_ONCE(1, "QP 0 is not supported\n");?
This only prints once.
This can avoid investigating and this will not print too much messages.
Zhu Yanjun
Thanks
Zhu Yanjun
+ goto err1;
+ }
+
if (qpn != IB_MULTICAST_QPN) {
- index = (qpn == 0) ? port->qp_smi_index :
- ((qpn == 1) ? port->qp_gsi_index : qpn);
+ index = (qpn == 1) ? port->qp_gsi_index : qpn;
+
qp = rxe_pool_get_index(&rxe->qp_pool, index);
if (unlikely(!qp)) {
pr_warn_ratelimited("no qp matches qpn 0x%x\n", qpn);
--
2.7.4
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html