* [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function
2016-10-24 19:07 ` Steve Wise
@ 2016-10-24 18:59 ` Steve Wise
-1 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-24 18:59 UTC (permalink / raw)
To: dledford-H+wXaHxf7aLQT0dZR+AlfA, sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg,
santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
rdma_reject_msg() returns a pointer to a string message associated with
the transport reject reason codes.
Signed-off-by: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
---
drivers/infiniband/core/cm.c | 48 ++++++++++++++++++++++++++++++++++++++++++
drivers/infiniband/core/cma.c | 14 ++++++++++++
drivers/infiniband/core/iwcm.c | 21 ++++++++++++++++++
include/rdma/ib_cm.h | 6 ++++++
include/rdma/iw_cm.h | 6 ++++++
include/rdma/rdma_cm.h | 8 +++++++
6 files changed, 103 insertions(+)
diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
index c995255..98bcc9c 100644
--- a/drivers/infiniband/core/cm.c
+++ b/drivers/infiniband/core/cm.c
@@ -57,6 +57,54 @@ MODULE_AUTHOR("Sean Hefty");
MODULE_DESCRIPTION("InfiniBand CM");
MODULE_LICENSE("Dual BSD/GPL");
+static const char * const ibcm_rej_reason_strs[] = {
+ [IB_CM_REJ_NO_QP] = "no qp",
+ [IB_CM_REJ_NO_EEC] = "no eec",
+ [IB_CM_REJ_NO_RESOURCES] = "no resources",
+ [IB_CM_REJ_TIMEOUT] = "timeout",
+ [IB_CM_REJ_UNSUPPORTED] = "unsupported",
+ [IB_CM_REJ_INVALID_COMM_ID] = "invalid comm id",
+ [IB_CM_REJ_INVALID_COMM_INSTANCE] = "invalid comm instance",
+ [IB_CM_REJ_INVALID_SERVICE_ID] = "invalid service id",
+ [IB_CM_REJ_INVALID_TRANSPORT_TYPE] = "invalid transport type",
+ [IB_CM_REJ_STALE_CONN] = "stale conn",
+ [IB_CM_REJ_RDC_NOT_EXIST] = "rdc not exist",
+ [IB_CM_REJ_INVALID_GID] = "invalid gid",
+ [IB_CM_REJ_INVALID_LID] = "invalid lid",
+ [IB_CM_REJ_INVALID_SL] = "invalid sl",
+ [IB_CM_REJ_INVALID_TRAFFIC_CLASS] = "invalid traffic class",
+ [IB_CM_REJ_INVALID_HOP_LIMIT] = "invalid hop limit",
+ [IB_CM_REJ_INVALID_PACKET_RATE] = "invalid packet rate",
+ [IB_CM_REJ_INVALID_ALT_GID] = "invalid alt gid",
+ [IB_CM_REJ_INVALID_ALT_LID] = "invalid alt lid",
+ [IB_CM_REJ_INVALID_ALT_SL] = "invalid alt sl",
+ [IB_CM_REJ_INVALID_ALT_TRAFFIC_CLASS] = "invalid alt traffic class",
+ [IB_CM_REJ_INVALID_ALT_HOP_LIMIT] = "invalid alt hop limit",
+ [IB_CM_REJ_INVALID_ALT_PACKET_RATE] = "invalid alt packet rate",
+ [IB_CM_REJ_PORT_CM_REDIRECT] = "port cm redirect",
+ [IB_CM_REJ_PORT_REDIRECT] = "port redirect",
+ [IB_CM_REJ_INVALID_MTU] = "invalid mtu",
+ [IB_CM_REJ_INSUFFICIENT_RESP_RESOURCES] = "insufficient resp resources",
+ [IB_CM_REJ_CONSUMER_DEFINED] = "consumer defined",
+ [IB_CM_REJ_INVALID_RNR_RETRY] = "invalid rnr retry",
+ [IB_CM_REJ_DUPLICATE_LOCAL_COMM_ID] = "duplicate local comm id",
+ [IB_CM_REJ_INVALID_CLASS_VERSION] = "invalid class version",
+ [IB_CM_REJ_INVALID_FLOW_LABEL] = "invalid flow label",
+ [IB_CM_REJ_INVALID_ALT_FLOW_LABEL] = "invalid alt flow label",
+};
+
+const char *__attribute_const__ ibcm_reject_msg(int reason)
+{
+ size_t index = reason;
+
+ if (index >= ARRAY_SIZE(ibcm_rej_reason_strs) ||
+ !ibcm_rej_reason_strs[index])
+ return "unrecognized reason";
+ else
+ return ibcm_rej_reason_strs[index];
+}
+EXPORT_SYMBOL(ibcm_reject_msg);
+
static void cm_add_one(struct ib_device *device);
static void cm_remove_one(struct ib_device *device, void *client_data);
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 5f65a78..831e94b 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -101,6 +101,20 @@ const char *__attribute_const__ rdma_event_msg(enum rdma_cm_event_type event)
}
EXPORT_SYMBOL(rdma_event_msg);
+const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
+ int reason)
+{
+ if (rdma_ib_or_roce(id->device, id->port_num))
+ return ibcm_reject_msg(reason);
+
+ if (rdma_protocol_iwarp(id->device, id->port_num))
+ return iwcm_reject_msg(reason);
+
+ WARN_ON_ONCE(1);
+ return "unrecognized reason";
+}
+EXPORT_SYMBOL(rdma_reject_msg);
+
static void cma_add_one(struct ib_device *device);
static void cma_remove_one(struct ib_device *device, void *client_data);
diff --git a/drivers/infiniband/core/iwcm.c b/drivers/infiniband/core/iwcm.c
index 357624f..8d01253 100644
--- a/drivers/infiniband/core/iwcm.c
+++ b/drivers/infiniband/core/iwcm.c
@@ -59,6 +59,27 @@ MODULE_AUTHOR("Tom Tucker");
MODULE_DESCRIPTION("iWARP CM");
MODULE_LICENSE("Dual BSD/GPL");
+static const char * const iwcm_rej_reason_strs[] = {
+ [ECONNRESET] = "reset by remote host",
+ [ECONNREFUSED] = "refused by remote application",
+ [ETIMEDOUT] = "setup timeout",
+};
+
+const char *__attribute_const__ iwcm_reject_msg(int reason)
+{
+ size_t index;
+
+ /* iWARP uses negative errnos */
+ index = -reason;
+
+ if (index >= ARRAY_SIZE(iwcm_rej_reason_strs) ||
+ !iwcm_rej_reason_strs[index])
+ return "unrecognized reason";
+ else
+ return iwcm_rej_reason_strs[index];
+}
+EXPORT_SYMBOL(iwcm_reject_msg);
+
static struct ibnl_client_cbs iwcm_nl_cb_table[] = {
[RDMA_NL_IWPM_REG_PID] = {.dump = iwpm_register_pid_cb},
[RDMA_NL_IWPM_ADD_MAPPING] = {.dump = iwpm_add_mapping_cb},
diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h
index 92a7d85..b49258b 100644
--- a/include/rdma/ib_cm.h
+++ b/include/rdma/ib_cm.h
@@ -603,4 +603,10 @@ struct ib_cm_sidr_rep_param {
int ib_send_cm_sidr_rep(struct ib_cm_id *cm_id,
struct ib_cm_sidr_rep_param *param);
+/**
+ * ibcm_reject_msg - return a pointer to a reject message string.
+ * @reason: Value returned in the REJECT event status field.
+ */
+const char *__attribute_const__ ibcm_reject_msg(int reason);
+
#endif /* IB_CM_H */
diff --git a/include/rdma/iw_cm.h b/include/rdma/iw_cm.h
index 6d0065c..5cd7701 100644
--- a/include/rdma/iw_cm.h
+++ b/include/rdma/iw_cm.h
@@ -253,4 +253,10 @@ int iw_cm_disconnect(struct iw_cm_id *cm_id, int abrupt);
int iw_cm_init_qp_attr(struct iw_cm_id *cm_id, struct ib_qp_attr *qp_attr,
int *qp_attr_mask);
+/**
+ * iwcm_reject_msg - return a pointer to a reject message string.
+ * @reason: Value returned in the REJECT event status field.
+ */
+const char *__attribute_const__ iwcm_reject_msg(int reason);
+
#endif /* IW_CM_H */
diff --git a/include/rdma/rdma_cm.h b/include/rdma/rdma_cm.h
index 81fb1d1..f11a768 100644
--- a/include/rdma/rdma_cm.h
+++ b/include/rdma/rdma_cm.h
@@ -388,4 +388,12 @@ int rdma_set_afonly(struct rdma_cm_id *id, int afonly);
*/
__be64 rdma_get_service_id(struct rdma_cm_id *id, struct sockaddr *addr);
+/**
+ * rdma_reject_msg - return a pointer to a reject message string.
+ * @id: Communication identifier that received the REJECT event.
+ * @reason: Value returned in the REJECT event status field.
+ */
+const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
+ int reason);
+
#endif /* RDMA_CM_H */
--
2.7.0
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 54+ messages in thread
* [PATCH v3 2/6] rdma_cm: add rdma_is_consumer_reject() helper function
2016-10-24 19:07 ` Steve Wise
@ 2016-10-24 18:59 ` Steve Wise
-1 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-24 18:59 UTC (permalink / raw)
To: dledford-H+wXaHxf7aLQT0dZR+AlfA, sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg,
santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
Return true if the peer consumer application rejected the
connection attempt.
Signed-off-by: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
---
drivers/infiniband/core/cma.c | 13 +++++++++++++
include/rdma/rdma_cm.h | 7 +++++++
2 files changed, 20 insertions(+)
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 831e94b..0d88c9d 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -115,6 +115,19 @@ const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
}
EXPORT_SYMBOL(rdma_reject_msg);
+bool rdma_is_consumer_reject(struct rdma_cm_id *id, int reason)
+{
+ if (rdma_ib_or_roce(id->device, id->port_num))
+ return reason == IB_CM_REJ_CONSUMER_DEFINED;
+
+ if (rdma_protocol_iwarp(id->device, id->port_num))
+ return reason == -ECONNREFUSED;
+
+ WARN_ON_ONCE(1);
+ return false;
+}
+EXPORT_SYMBOL(rdma_is_consumer_reject);
+
static void cma_add_one(struct ib_device *device);
static void cma_remove_one(struct ib_device *device, void *client_data);
diff --git a/include/rdma/rdma_cm.h b/include/rdma/rdma_cm.h
index f11a768..62039c2 100644
--- a/include/rdma/rdma_cm.h
+++ b/include/rdma/rdma_cm.h
@@ -395,5 +395,12 @@ __be64 rdma_get_service_id(struct rdma_cm_id *id, struct sockaddr *addr);
*/
const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
int reason);
+/**
+ * rdma_is_consumer_reject - return true if the consumer rejected the connect
+ * request.
+ * @id: Communication identifier that received the REJECT event.
+ * @reason: Value returned in the REJECT event status field.
+ */
+bool rdma_is_consumer_reject(struct rdma_cm_id *id, int reason);
#endif /* RDMA_CM_H */
--
2.7.0
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 54+ messages in thread
* [PATCH v3 3/6] rdma_cm: add rdma_consumer_reject_data helper function
2016-10-24 19:07 ` Steve Wise
@ 2016-10-24 18:59 ` Steve Wise
-1 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-24 18:59 UTC (permalink / raw)
To: dledford-H+wXaHxf7aLQT0dZR+AlfA, sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg,
santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
rdma_consumer_reject_data() will return the private data pointer
and length if any is available.
Signed-off-by: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
---
drivers/infiniband/core/cma.c | 16 ++++++++++++++++
include/rdma/rdma_cm.h | 10 ++++++++++
2 files changed, 26 insertions(+)
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 0d88c9d..2536d42 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -128,6 +128,22 @@ bool rdma_is_consumer_reject(struct rdma_cm_id *id, int reason)
}
EXPORT_SYMBOL(rdma_is_consumer_reject);
+const void *rdma_consumer_reject_data(struct rdma_cm_id *id,
+ struct rdma_cm_event *ev, u8 *data_len)
+{
+ void *p;
+
+ if (rdma_is_consumer_reject(id, ev->status)) {
+ *data_len = ev->param.conn.private_data_len;
+ p = ev->param.conn.private_data;
+ } else {
+ *data_len = 0;
+ p = NULL;
+ }
+ return p;
+}
+EXPORT_SYMBOL(rdma_consumer_reject_data);
+
static void cma_add_one(struct ib_device *device);
static void cma_remove_one(struct ib_device *device, void *client_data);
diff --git a/include/rdma/rdma_cm.h b/include/rdma/rdma_cm.h
index 62039c2..d3968b5 100644
--- a/include/rdma/rdma_cm.h
+++ b/include/rdma/rdma_cm.h
@@ -403,4 +403,14 @@ const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
*/
bool rdma_is_consumer_reject(struct rdma_cm_id *id, int reason);
+/**
+ * rdma_consumer_reject_data - return the consumer reject private data and
+ * length, if any.
+ * @id: Communication identifier that received the REJECT event.
+ * @ev: RDMA CM reject event.
+ * @data_len: Pointer to the resulting length of the consumer data.
+ */
+const void *rdma_consumer_reject_data(struct rdma_cm_id *id,
+ struct rdma_cm_event *ev, u8 *data_len);
+
#endif /* RDMA_CM_H */
--
2.7.0
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 54+ messages in thread
* [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function
@ 2016-10-24 18:59 ` Steve Wise
0 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-24 18:59 UTC (permalink / raw)
rdma_reject_msg() returns a pointer to a string message associated with
the transport reject reason codes.
Signed-off-by: Steve Wise <swise at opengridcomputing.com>
---
drivers/infiniband/core/cm.c | 48 ++++++++++++++++++++++++++++++++++++++++++
drivers/infiniband/core/cma.c | 14 ++++++++++++
drivers/infiniband/core/iwcm.c | 21 ++++++++++++++++++
include/rdma/ib_cm.h | 6 ++++++
include/rdma/iw_cm.h | 6 ++++++
include/rdma/rdma_cm.h | 8 +++++++
6 files changed, 103 insertions(+)
diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
index c995255..98bcc9c 100644
--- a/drivers/infiniband/core/cm.c
+++ b/drivers/infiniband/core/cm.c
@@ -57,6 +57,54 @@ MODULE_AUTHOR("Sean Hefty");
MODULE_DESCRIPTION("InfiniBand CM");
MODULE_LICENSE("Dual BSD/GPL");
+static const char * const ibcm_rej_reason_strs[] = {
+ [IB_CM_REJ_NO_QP] = "no qp",
+ [IB_CM_REJ_NO_EEC] = "no eec",
+ [IB_CM_REJ_NO_RESOURCES] = "no resources",
+ [IB_CM_REJ_TIMEOUT] = "timeout",
+ [IB_CM_REJ_UNSUPPORTED] = "unsupported",
+ [IB_CM_REJ_INVALID_COMM_ID] = "invalid comm id",
+ [IB_CM_REJ_INVALID_COMM_INSTANCE] = "invalid comm instance",
+ [IB_CM_REJ_INVALID_SERVICE_ID] = "invalid service id",
+ [IB_CM_REJ_INVALID_TRANSPORT_TYPE] = "invalid transport type",
+ [IB_CM_REJ_STALE_CONN] = "stale conn",
+ [IB_CM_REJ_RDC_NOT_EXIST] = "rdc not exist",
+ [IB_CM_REJ_INVALID_GID] = "invalid gid",
+ [IB_CM_REJ_INVALID_LID] = "invalid lid",
+ [IB_CM_REJ_INVALID_SL] = "invalid sl",
+ [IB_CM_REJ_INVALID_TRAFFIC_CLASS] = "invalid traffic class",
+ [IB_CM_REJ_INVALID_HOP_LIMIT] = "invalid hop limit",
+ [IB_CM_REJ_INVALID_PACKET_RATE] = "invalid packet rate",
+ [IB_CM_REJ_INVALID_ALT_GID] = "invalid alt gid",
+ [IB_CM_REJ_INVALID_ALT_LID] = "invalid alt lid",
+ [IB_CM_REJ_INVALID_ALT_SL] = "invalid alt sl",
+ [IB_CM_REJ_INVALID_ALT_TRAFFIC_CLASS] = "invalid alt traffic class",
+ [IB_CM_REJ_INVALID_ALT_HOP_LIMIT] = "invalid alt hop limit",
+ [IB_CM_REJ_INVALID_ALT_PACKET_RATE] = "invalid alt packet rate",
+ [IB_CM_REJ_PORT_CM_REDIRECT] = "port cm redirect",
+ [IB_CM_REJ_PORT_REDIRECT] = "port redirect",
+ [IB_CM_REJ_INVALID_MTU] = "invalid mtu",
+ [IB_CM_REJ_INSUFFICIENT_RESP_RESOURCES] = "insufficient resp resources",
+ [IB_CM_REJ_CONSUMER_DEFINED] = "consumer defined",
+ [IB_CM_REJ_INVALID_RNR_RETRY] = "invalid rnr retry",
+ [IB_CM_REJ_DUPLICATE_LOCAL_COMM_ID] = "duplicate local comm id",
+ [IB_CM_REJ_INVALID_CLASS_VERSION] = "invalid class version",
+ [IB_CM_REJ_INVALID_FLOW_LABEL] = "invalid flow label",
+ [IB_CM_REJ_INVALID_ALT_FLOW_LABEL] = "invalid alt flow label",
+};
+
+const char *__attribute_const__ ibcm_reject_msg(int reason)
+{
+ size_t index = reason;
+
+ if (index >= ARRAY_SIZE(ibcm_rej_reason_strs) ||
+ !ibcm_rej_reason_strs[index])
+ return "unrecognized reason";
+ else
+ return ibcm_rej_reason_strs[index];
+}
+EXPORT_SYMBOL(ibcm_reject_msg);
+
static void cm_add_one(struct ib_device *device);
static void cm_remove_one(struct ib_device *device, void *client_data);
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 5f65a78..831e94b 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -101,6 +101,20 @@ const char *__attribute_const__ rdma_event_msg(enum rdma_cm_event_type event)
}
EXPORT_SYMBOL(rdma_event_msg);
+const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
+ int reason)
+{
+ if (rdma_ib_or_roce(id->device, id->port_num))
+ return ibcm_reject_msg(reason);
+
+ if (rdma_protocol_iwarp(id->device, id->port_num))
+ return iwcm_reject_msg(reason);
+
+ WARN_ON_ONCE(1);
+ return "unrecognized reason";
+}
+EXPORT_SYMBOL(rdma_reject_msg);
+
static void cma_add_one(struct ib_device *device);
static void cma_remove_one(struct ib_device *device, void *client_data);
diff --git a/drivers/infiniband/core/iwcm.c b/drivers/infiniband/core/iwcm.c
index 357624f..8d01253 100644
--- a/drivers/infiniband/core/iwcm.c
+++ b/drivers/infiniband/core/iwcm.c
@@ -59,6 +59,27 @@ MODULE_AUTHOR("Tom Tucker");
MODULE_DESCRIPTION("iWARP CM");
MODULE_LICENSE("Dual BSD/GPL");
+static const char * const iwcm_rej_reason_strs[] = {
+ [ECONNRESET] = "reset by remote host",
+ [ECONNREFUSED] = "refused by remote application",
+ [ETIMEDOUT] = "setup timeout",
+};
+
+const char *__attribute_const__ iwcm_reject_msg(int reason)
+{
+ size_t index;
+
+ /* iWARP uses negative errnos */
+ index = -reason;
+
+ if (index >= ARRAY_SIZE(iwcm_rej_reason_strs) ||
+ !iwcm_rej_reason_strs[index])
+ return "unrecognized reason";
+ else
+ return iwcm_rej_reason_strs[index];
+}
+EXPORT_SYMBOL(iwcm_reject_msg);
+
static struct ibnl_client_cbs iwcm_nl_cb_table[] = {
[RDMA_NL_IWPM_REG_PID] = {.dump = iwpm_register_pid_cb},
[RDMA_NL_IWPM_ADD_MAPPING] = {.dump = iwpm_add_mapping_cb},
diff --git a/include/rdma/ib_cm.h b/include/rdma/ib_cm.h
index 92a7d85..b49258b 100644
--- a/include/rdma/ib_cm.h
+++ b/include/rdma/ib_cm.h
@@ -603,4 +603,10 @@ struct ib_cm_sidr_rep_param {
int ib_send_cm_sidr_rep(struct ib_cm_id *cm_id,
struct ib_cm_sidr_rep_param *param);
+/**
+ * ibcm_reject_msg - return a pointer to a reject message string.
+ * @reason: Value returned in the REJECT event status field.
+ */
+const char *__attribute_const__ ibcm_reject_msg(int reason);
+
#endif /* IB_CM_H */
diff --git a/include/rdma/iw_cm.h b/include/rdma/iw_cm.h
index 6d0065c..5cd7701 100644
--- a/include/rdma/iw_cm.h
+++ b/include/rdma/iw_cm.h
@@ -253,4 +253,10 @@ int iw_cm_disconnect(struct iw_cm_id *cm_id, int abrupt);
int iw_cm_init_qp_attr(struct iw_cm_id *cm_id, struct ib_qp_attr *qp_attr,
int *qp_attr_mask);
+/**
+ * iwcm_reject_msg - return a pointer to a reject message string.
+ * @reason: Value returned in the REJECT event status field.
+ */
+const char *__attribute_const__ iwcm_reject_msg(int reason);
+
#endif /* IW_CM_H */
diff --git a/include/rdma/rdma_cm.h b/include/rdma/rdma_cm.h
index 81fb1d1..f11a768 100644
--- a/include/rdma/rdma_cm.h
+++ b/include/rdma/rdma_cm.h
@@ -388,4 +388,12 @@ int rdma_set_afonly(struct rdma_cm_id *id, int afonly);
*/
__be64 rdma_get_service_id(struct rdma_cm_id *id, struct sockaddr *addr);
+/**
+ * rdma_reject_msg - return a pointer to a reject message string.
+ * @id: Communication identifier that received the REJECT event.
+ * @reason: Value returned in the REJECT event status field.
+ */
+const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
+ int reason);
+
#endif /* RDMA_CM_H */
--
2.7.0
^ permalink raw reply related [flat|nested] 54+ messages in thread
* [PATCH v3 2/6] rdma_cm: add rdma_is_consumer_reject() helper function
@ 2016-10-24 18:59 ` Steve Wise
0 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-24 18:59 UTC (permalink / raw)
Return true if the peer consumer application rejected the
connection attempt.
Signed-off-by: Steve Wise <swise at opengridcomputing.com>
---
drivers/infiniband/core/cma.c | 13 +++++++++++++
include/rdma/rdma_cm.h | 7 +++++++
2 files changed, 20 insertions(+)
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 831e94b..0d88c9d 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -115,6 +115,19 @@ const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
}
EXPORT_SYMBOL(rdma_reject_msg);
+bool rdma_is_consumer_reject(struct rdma_cm_id *id, int reason)
+{
+ if (rdma_ib_or_roce(id->device, id->port_num))
+ return reason == IB_CM_REJ_CONSUMER_DEFINED;
+
+ if (rdma_protocol_iwarp(id->device, id->port_num))
+ return reason == -ECONNREFUSED;
+
+ WARN_ON_ONCE(1);
+ return false;
+}
+EXPORT_SYMBOL(rdma_is_consumer_reject);
+
static void cma_add_one(struct ib_device *device);
static void cma_remove_one(struct ib_device *device, void *client_data);
diff --git a/include/rdma/rdma_cm.h b/include/rdma/rdma_cm.h
index f11a768..62039c2 100644
--- a/include/rdma/rdma_cm.h
+++ b/include/rdma/rdma_cm.h
@@ -395,5 +395,12 @@ __be64 rdma_get_service_id(struct rdma_cm_id *id, struct sockaddr *addr);
*/
const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
int reason);
+/**
+ * rdma_is_consumer_reject - return true if the consumer rejected the connect
+ * request.
+ * @id: Communication identifier that received the REJECT event.
+ * @reason: Value returned in the REJECT event status field.
+ */
+bool rdma_is_consumer_reject(struct rdma_cm_id *id, int reason);
#endif /* RDMA_CM_H */
--
2.7.0
^ permalink raw reply related [flat|nested] 54+ messages in thread
* [PATCH v3 3/6] rdma_cm: add rdma_consumer_reject_data helper function
@ 2016-10-24 18:59 ` Steve Wise
0 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-24 18:59 UTC (permalink / raw)
rdma_consumer_reject_data() will return the private data pointer
and length if any is available.
Signed-off-by: Steve Wise <swise at opengridcomputing.com>
---
drivers/infiniband/core/cma.c | 16 ++++++++++++++++
include/rdma/rdma_cm.h | 10 ++++++++++
2 files changed, 26 insertions(+)
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 0d88c9d..2536d42 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -128,6 +128,22 @@ bool rdma_is_consumer_reject(struct rdma_cm_id *id, int reason)
}
EXPORT_SYMBOL(rdma_is_consumer_reject);
+const void *rdma_consumer_reject_data(struct rdma_cm_id *id,
+ struct rdma_cm_event *ev, u8 *data_len)
+{
+ void *p;
+
+ if (rdma_is_consumer_reject(id, ev->status)) {
+ *data_len = ev->param.conn.private_data_len;
+ p = ev->param.conn.private_data;
+ } else {
+ *data_len = 0;
+ p = NULL;
+ }
+ return p;
+}
+EXPORT_SYMBOL(rdma_consumer_reject_data);
+
static void cma_add_one(struct ib_device *device);
static void cma_remove_one(struct ib_device *device, void *client_data);
diff --git a/include/rdma/rdma_cm.h b/include/rdma/rdma_cm.h
index 62039c2..d3968b5 100644
--- a/include/rdma/rdma_cm.h
+++ b/include/rdma/rdma_cm.h
@@ -403,4 +403,14 @@ const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
*/
bool rdma_is_consumer_reject(struct rdma_cm_id *id, int reason);
+/**
+ * rdma_consumer_reject_data - return the consumer reject private data and
+ * length, if any.
+ * @id: Communication identifier that received the REJECT event.
+ * @ev: RDMA CM reject event.
+ * @data_len: Pointer to the resulting length of the consumer data.
+ */
+const void *rdma_consumer_reject_data(struct rdma_cm_id *id,
+ struct rdma_cm_event *ev, u8 *data_len);
+
#endif /* RDMA_CM_H */
--
2.7.0
^ permalink raw reply related [flat|nested] 54+ messages in thread
* [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
2016-10-24 19:07 ` Steve Wise
@ 2016-10-24 19:07 ` Steve Wise
-1 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-24 19:07 UTC (permalink / raw)
To: dledford-H+wXaHxf7aLQT0dZR+AlfA, sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg,
santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
Also add nvme cm status strings and use them.
Signed-off-by: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
---
drivers/nvme/host/rdma.c | 46 ++++++++++++++++++++++++++++++++++++++--------
1 file changed, 38 insertions(+), 8 deletions(-)
diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c
index fbdb226..b6a6b50 100644
--- a/drivers/nvme/host/rdma.c
+++ b/drivers/nvme/host/rdma.c
@@ -43,6 +43,28 @@
#define NVME_RDMA_MAX_INLINE_SEGMENTS 1
+static const char *const nvme_rdma_cm_status_strs[] = {
+ [NVME_RDMA_CM_INVALID_LEN] = "invalid length",
+ [NVME_RDMA_CM_INVALID_RECFMT] = "invalid record format",
+ [NVME_RDMA_CM_INVALID_QID] = "invalid queue id",
+ [NVME_RDMA_CM_INVALID_HSQSIZE] = "invalid host sq size",
+ [NVME_RDMA_CM_INVALID_HRQSIZE] = "invalid host rq size",
+ [NVME_RDMA_CM_NO_RSC] = "resource not found",
+ [NVME_RDMA_CM_INVALID_IRD] = "invalid ird",
+ [NVME_RDMA_CM_INVALID_ORD] = "Invalid ord",
+};
+
+static const char *nvme_rdma_cm_msg(enum nvme_rdma_cm_status status)
+{
+ size_t index = status;
+
+ if (index >= ARRAY_SIZE(nvme_rdma_cm_status_strs) ||
+ !nvme_rdma_cm_status_strs[index])
+ return "unrecognized reason";
+ else
+ return nvme_rdma_cm_status_strs[index];
+};
+
/*
* We handle AEN commands ourselves and don't even let the
* block layer know about them.
@@ -1222,17 +1244,25 @@ out_destroy_queue_ib:
static int nvme_rdma_conn_rejected(struct nvme_rdma_queue *queue,
struct rdma_cm_event *ev)
{
- if (ev->param.conn.private_data_len) {
- struct nvme_rdma_cm_rej *rej =
- (struct nvme_rdma_cm_rej *)ev->param.conn.private_data;
+ struct rdma_cm_id *cm_id = queue->cm_id;
+ int status = ev->status;
+ const char *rej_msg;
+ struct nvme_rdma_cm_rej *rej_data;
+ u8 rej_data_len;
+
+ rej_msg = rdma_reject_msg(cm_id, status);
+ rej_data = (struct nvme_rdma_cm_rej *)
+ rdma_consumer_reject_data(cm_id, ev, &rej_data_len);
+
+ if (rej_data && rej_data_len >= sizeof(u16)) {
+ u16 sts = le16_to_cpu(rej_data->sts);
dev_err(queue->ctrl->ctrl.device,
- "Connect rejected, status %d.", le16_to_cpu(rej->sts));
- /* XXX: Think of something clever to do here... */
- } else {
+ "Connect rejected: status %d (%s) nvme status %d (%s).\n",
+ status, rej_msg, sts, nvme_rdma_cm_msg(sts));
+ } else
dev_err(queue->ctrl->ctrl.device,
- "Connect rejected, no private data.\n");
- }
+ "Connect rejected: status %d (%s).\n", status, rej_msg);
return -ECONNRESET;
}
--
2.7.0
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 54+ messages in thread
* [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
@ 2016-10-24 19:07 ` Steve Wise
0 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-24 19:07 UTC (permalink / raw)
Also add nvme cm status strings and use them.
Signed-off-by: Steve Wise <swise at opengridcomputing.com>
---
drivers/nvme/host/rdma.c | 46 ++++++++++++++++++++++++++++++++++++++--------
1 file changed, 38 insertions(+), 8 deletions(-)
diff --git a/drivers/nvme/host/rdma.c b/drivers/nvme/host/rdma.c
index fbdb226..b6a6b50 100644
--- a/drivers/nvme/host/rdma.c
+++ b/drivers/nvme/host/rdma.c
@@ -43,6 +43,28 @@
#define NVME_RDMA_MAX_INLINE_SEGMENTS 1
+static const char *const nvme_rdma_cm_status_strs[] = {
+ [NVME_RDMA_CM_INVALID_LEN] = "invalid length",
+ [NVME_RDMA_CM_INVALID_RECFMT] = "invalid record format",
+ [NVME_RDMA_CM_INVALID_QID] = "invalid queue id",
+ [NVME_RDMA_CM_INVALID_HSQSIZE] = "invalid host sq size",
+ [NVME_RDMA_CM_INVALID_HRQSIZE] = "invalid host rq size",
+ [NVME_RDMA_CM_NO_RSC] = "resource not found",
+ [NVME_RDMA_CM_INVALID_IRD] = "invalid ird",
+ [NVME_RDMA_CM_INVALID_ORD] = "Invalid ord",
+};
+
+static const char *nvme_rdma_cm_msg(enum nvme_rdma_cm_status status)
+{
+ size_t index = status;
+
+ if (index >= ARRAY_SIZE(nvme_rdma_cm_status_strs) ||
+ !nvme_rdma_cm_status_strs[index])
+ return "unrecognized reason";
+ else
+ return nvme_rdma_cm_status_strs[index];
+};
+
/*
* We handle AEN commands ourselves and don't even let the
* block layer know about them.
@@ -1222,17 +1244,25 @@ out_destroy_queue_ib:
static int nvme_rdma_conn_rejected(struct nvme_rdma_queue *queue,
struct rdma_cm_event *ev)
{
- if (ev->param.conn.private_data_len) {
- struct nvme_rdma_cm_rej *rej =
- (struct nvme_rdma_cm_rej *)ev->param.conn.private_data;
+ struct rdma_cm_id *cm_id = queue->cm_id;
+ int status = ev->status;
+ const char *rej_msg;
+ struct nvme_rdma_cm_rej *rej_data;
+ u8 rej_data_len;
+
+ rej_msg = rdma_reject_msg(cm_id, status);
+ rej_data = (struct nvme_rdma_cm_rej *)
+ rdma_consumer_reject_data(cm_id, ev, &rej_data_len);
+
+ if (rej_data && rej_data_len >= sizeof(u16)) {
+ u16 sts = le16_to_cpu(rej_data->sts);
dev_err(queue->ctrl->ctrl.device,
- "Connect rejected, status %d.", le16_to_cpu(rej->sts));
- /* XXX: Think of something clever to do here... */
- } else {
+ "Connect rejected: status %d (%s) nvme status %d (%s).\n",
+ status, rej_msg, sts, nvme_rdma_cm_msg(sts));
+ } else
dev_err(queue->ctrl->ctrl.device,
- "Connect rejected, no private data.\n");
- }
+ "Connect rejected: status %d (%s).\n", status, rej_msg);
return -ECONNRESET;
}
--
2.7.0
^ permalink raw reply related [flat|nested] 54+ messages in thread
* [PATCH v3 5/6] ib_iser: log the connection reject message
2016-10-24 19:07 ` Steve Wise
@ 2016-10-24 19:07 ` Steve Wise
-1 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-24 19:07 UTC (permalink / raw)
To: dledford-H+wXaHxf7aLQT0dZR+AlfA, sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg,
santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
Signed-off-by: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
---
drivers/infiniband/ulp/iser/iser_verbs.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c
index 1b49453..7970757 100644
--- a/drivers/infiniband/ulp/iser/iser_verbs.c
+++ b/drivers/infiniband/ulp/iser/iser_verbs.c
@@ -906,11 +906,14 @@ static int iser_cma_handler(struct rdma_cm_id *cma_id, struct rdma_cm_event *eve
case RDMA_CM_EVENT_ESTABLISHED:
iser_connected_handler(cma_id, event->param.conn.private_data);
break;
+ case RDMA_CM_EVENT_REJECTED:
+ iser_info("Connection rejected: %s\n",
+ rdma_reject_msg(cma_id, event->status));
+ /*FALLTHROUGH*/
case RDMA_CM_EVENT_ADDR_ERROR:
case RDMA_CM_EVENT_ROUTE_ERROR:
case RDMA_CM_EVENT_CONNECT_ERROR:
case RDMA_CM_EVENT_UNREACHABLE:
- case RDMA_CM_EVENT_REJECTED:
iser_connect_error(cma_id);
break;
case RDMA_CM_EVENT_DISCONNECTED:
--
2.7.0
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 54+ messages in thread
* [PATCH v3 5/6] ib_iser: log the connection reject message
@ 2016-10-24 19:07 ` Steve Wise
0 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-24 19:07 UTC (permalink / raw)
Signed-off-by: Steve Wise <swise at opengridcomputing.com>
---
drivers/infiniband/ulp/iser/iser_verbs.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c
index 1b49453..7970757 100644
--- a/drivers/infiniband/ulp/iser/iser_verbs.c
+++ b/drivers/infiniband/ulp/iser/iser_verbs.c
@@ -906,11 +906,14 @@ static int iser_cma_handler(struct rdma_cm_id *cma_id, struct rdma_cm_event *eve
case RDMA_CM_EVENT_ESTABLISHED:
iser_connected_handler(cma_id, event->param.conn.private_data);
break;
+ case RDMA_CM_EVENT_REJECTED:
+ iser_info("Connection rejected: %s\n",
+ rdma_reject_msg(cma_id, event->status));
+ /*FALLTHROUGH*/
case RDMA_CM_EVENT_ADDR_ERROR:
case RDMA_CM_EVENT_ROUTE_ERROR:
case RDMA_CM_EVENT_CONNECT_ERROR:
case RDMA_CM_EVENT_UNREACHABLE:
- case RDMA_CM_EVENT_REJECTED:
iser_connect_error(cma_id);
break;
case RDMA_CM_EVENT_DISCONNECTED:
--
2.7.0
^ permalink raw reply related [flat|nested] 54+ messages in thread
* [PATCH v3 6/6] rds_rdma: log the connection reject message
2016-10-24 19:07 ` Steve Wise
@ 2016-10-24 19:07 ` Steve Wise
-1 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-24 19:07 UTC (permalink / raw)
To: dledford-H+wXaHxf7aLQT0dZR+AlfA, sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg,
santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
Signed-off-by: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
---
net/rds/rdma_transport.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/net/rds/rdma_transport.c b/net/rds/rdma_transport.c
index 345f090..6bd2814 100644
--- a/net/rds/rdma_transport.c
+++ b/net/rds/rdma_transport.c
@@ -100,11 +100,14 @@ int rds_rdma_cm_event_handler(struct rdma_cm_id *cm_id,
trans->cm_connect_complete(conn, event);
break;
+ case RDMA_CM_EVENT_REJECTED:
+ rdsdebug("Connection rejected: %s\n",
+ rdma_reject_msg(cm_id, event->status));
+ /*FALLTHROUGH*/
case RDMA_CM_EVENT_ADDR_ERROR:
case RDMA_CM_EVENT_ROUTE_ERROR:
case RDMA_CM_EVENT_CONNECT_ERROR:
case RDMA_CM_EVENT_UNREACHABLE:
- case RDMA_CM_EVENT_REJECTED:
case RDMA_CM_EVENT_DEVICE_REMOVAL:
case RDMA_CM_EVENT_ADDR_CHANGE:
if (conn)
--
2.7.0
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply related [flat|nested] 54+ messages in thread
* [PATCH v3 6/6] rds_rdma: log the connection reject message
@ 2016-10-24 19:07 ` Steve Wise
0 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-24 19:07 UTC (permalink / raw)
Signed-off-by: Steve Wise <swise at opengridcomputing.com>
---
net/rds/rdma_transport.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/net/rds/rdma_transport.c b/net/rds/rdma_transport.c
index 345f090..6bd2814 100644
--- a/net/rds/rdma_transport.c
+++ b/net/rds/rdma_transport.c
@@ -100,11 +100,14 @@ int rds_rdma_cm_event_handler(struct rdma_cm_id *cm_id,
trans->cm_connect_complete(conn, event);
break;
+ case RDMA_CM_EVENT_REJECTED:
+ rdsdebug("Connection rejected: %s\n",
+ rdma_reject_msg(cm_id, event->status));
+ /*FALLTHROUGH*/
case RDMA_CM_EVENT_ADDR_ERROR:
case RDMA_CM_EVENT_ROUTE_ERROR:
case RDMA_CM_EVENT_CONNECT_ERROR:
case RDMA_CM_EVENT_UNREACHABLE:
- case RDMA_CM_EVENT_REJECTED:
case RDMA_CM_EVENT_DEVICE_REMOVAL:
case RDMA_CM_EVENT_ADDR_CHANGE:
if (conn)
--
2.7.0
^ permalink raw reply related [flat|nested] 54+ messages in thread
* [PATCH v3 0/6] connect reject event helpers
@ 2016-10-24 19:07 ` Steve Wise
0 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-24 19:07 UTC (permalink / raw)
To: dledford-H+wXaHxf7aLQT0dZR+AlfA, sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg,
santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
While reviewing:
http://lists.infradead.org/pipermail/linux-nvme/2016-October/006681.html
I decided to propose transport-agnostic helper functions to better
handle connection reject event information. Included are patches
for nvme_rdma, ib_ser, and rds_rdma to utilize the new helpers.
Changes since v2:
- reworked ibcm/iwcm_reject_msg() as per Christoph's recommendation
- use ibcm_ and iwcm_ prefix instead of ib_ and iw_ for reject_msg funcs
- change rdma_consumer_reject() to rdma_is_consumer_reject()
- add rdma_consumer_reject_data() helper function to return private
data/len
- use new helpers in nvme_rdma, ib_iser, and rdma_rds
- in nvme_rdma, add strings for nvme_rdma_cm_status values
---
Steve Wise (6):
rdma_cm: add rdma_reject_msg() helper function
rdma_cm: add rdma_is_consumer_reject() helper function
rdma_cm: add rdma_consumer_reject_data helper function
nvme-rdma: use rdma connection reject helper functions
ib_iser: log the connection reject message
rds_rdma: log the connection reject message
drivers/infiniband/core/cm.c | 48 ++++++++++++++++++++++++++++++++
drivers/infiniband/core/cma.c | 43 ++++++++++++++++++++++++++++
drivers/infiniband/core/iwcm.c | 21 ++++++++++++++
drivers/infiniband/ulp/iser/iser_verbs.c | 5 +++-
drivers/nvme/host/rdma.c | 46 ++++++++++++++++++++++++------
include/rdma/ib_cm.h | 6 ++++
include/rdma/iw_cm.h | 6 ++++
include/rdma/rdma_cm.h | 25 +++++++++++++++++
net/rds/rdma_transport.c | 5 +++-
9 files changed, 195 insertions(+), 10 deletions(-)
--
2.7.0
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 0/6] connect reject event helpers
@ 2016-10-24 19:07 ` Steve Wise
0 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-24 19:07 UTC (permalink / raw)
While reviewing:
http://lists.infradead.org/pipermail/linux-nvme/2016-October/006681.html
I decided to propose transport-agnostic helper functions to better
handle connection reject event information. Included are patches
for nvme_rdma, ib_ser, and rds_rdma to utilize the new helpers.
Changes since v2:
- reworked ibcm/iwcm_reject_msg() as per Christoph's recommendation
- use ibcm_ and iwcm_ prefix instead of ib_ and iw_ for reject_msg funcs
- change rdma_consumer_reject() to rdma_is_consumer_reject()
- add rdma_consumer_reject_data() helper function to return private
data/len
- use new helpers in nvme_rdma, ib_iser, and rdma_rds
- in nvme_rdma, add strings for nvme_rdma_cm_status values
---
Steve Wise (6):
rdma_cm: add rdma_reject_msg() helper function
rdma_cm: add rdma_is_consumer_reject() helper function
rdma_cm: add rdma_consumer_reject_data helper function
nvme-rdma: use rdma connection reject helper functions
ib_iser: log the connection reject message
rds_rdma: log the connection reject message
drivers/infiniband/core/cm.c | 48 ++++++++++++++++++++++++++++++++
drivers/infiniband/core/cma.c | 43 ++++++++++++++++++++++++++++
drivers/infiniband/core/iwcm.c | 21 ++++++++++++++
drivers/infiniband/ulp/iser/iser_verbs.c | 5 +++-
drivers/nvme/host/rdma.c | 46 ++++++++++++++++++++++++------
include/rdma/ib_cm.h | 6 ++++
include/rdma/iw_cm.h | 6 ++++
include/rdma/rdma_cm.h | 25 +++++++++++++++++
net/rds/rdma_transport.c | 5 +++-
9 files changed, 195 insertions(+), 10 deletions(-)
--
2.7.0
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [PATCH v3 6/6] rds_rdma: log the connection reject message
2016-10-24 19:07 ` Steve Wise
@ 2016-10-25 15:51 ` Santosh Shilimkar
-1 siblings, 0 replies; 54+ messages in thread
From: Santosh Shilimkar @ 2016-10-25 15:51 UTC (permalink / raw)
To: Steve Wise, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg
On 10/24/2016 12:07 PM, Steve Wise wrote:
> Signed-off-by: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
> ---
> net/rds/rdma_transport.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/net/rds/rdma_transport.c b/net/rds/rdma_transport.c
> index 345f090..6bd2814 100644
> --- a/net/rds/rdma_transport.c
> +++ b/net/rds/rdma_transport.c
> @@ -100,11 +100,14 @@ int rds_rdma_cm_event_handler(struct rdma_cm_id *cm_id,
> trans->cm_connect_complete(conn, event);
> break;
>
> + case RDMA_CM_EVENT_REJECTED:
> + rdsdebug("Connection rejected: %s\n",
> + rdma_reject_msg(cm_id, event->status));
For current code above is fine but I will need the other helper
while adding few connection cases where ARI field carries information
for the reason for the reject.
I assume, rdma_consumer_reject_data() is meant to be used for that ?
The patch looks fine to me.
FWIW, Acked-by: Santosh Shilimkar <santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 6/6] rds_rdma: log the connection reject message
@ 2016-10-25 15:51 ` Santosh Shilimkar
0 siblings, 0 replies; 54+ messages in thread
From: Santosh Shilimkar @ 2016-10-25 15:51 UTC (permalink / raw)
On 10/24/2016 12:07 PM, Steve Wise wrote:
> Signed-off-by: Steve Wise <swise at opengridcomputing.com>
> ---
> net/rds/rdma_transport.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/net/rds/rdma_transport.c b/net/rds/rdma_transport.c
> index 345f090..6bd2814 100644
> --- a/net/rds/rdma_transport.c
> +++ b/net/rds/rdma_transport.c
> @@ -100,11 +100,14 @@ int rds_rdma_cm_event_handler(struct rdma_cm_id *cm_id,
> trans->cm_connect_complete(conn, event);
> break;
>
> + case RDMA_CM_EVENT_REJECTED:
> + rdsdebug("Connection rejected: %s\n",
> + rdma_reject_msg(cm_id, event->status));
For current code above is fine but I will need the other helper
while adding few connection cases where ARI field carries information
for the reason for the reject.
I assume, rdma_consumer_reject_data() is meant to be used for that ?
The patch looks fine to me.
FWIW, Acked-by: Santosh Shilimkar <santosh.shilimkar at oracle.com>
^ permalink raw reply [flat|nested] 54+ messages in thread
* RE: [PATCH v3 6/6] rds_rdma: log the connection reject message
2016-10-25 15:51 ` Santosh Shilimkar
@ 2016-10-25 16:04 ` Steve Wise
-1 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-25 16:04 UTC (permalink / raw)
To: 'Santosh Shilimkar',
dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg
> -----Original Message-----
> From: Santosh Shilimkar [mailto:santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org]
> Sent: Tuesday, October 25, 2016 10:52 AM
> To: Steve Wise; dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org; sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org
> Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org; bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org; linux-
> nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org; sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org; hch-jcswGhMUV9g@public.gmane.org; axboe-b10kYP2dOMg@public.gmane.org
> Subject: Re: [PATCH v3 6/6] rds_rdma: log the connection reject message
>
> On 10/24/2016 12:07 PM, Steve Wise wrote:
> > Signed-off-by: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
> > ---
> > net/rds/rdma_transport.c | 5 ++++-
> > 1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/net/rds/rdma_transport.c b/net/rds/rdma_transport.c
> > index 345f090..6bd2814 100644
> > --- a/net/rds/rdma_transport.c
> > +++ b/net/rds/rdma_transport.c
> > @@ -100,11 +100,14 @@ int rds_rdma_cm_event_handler(struct rdma_cm_id
> *cm_id,
> > trans->cm_connect_complete(conn, event);
> > break;
> >
> > + case RDMA_CM_EVENT_REJECTED:
> > + rdsdebug("Connection rejected: %s\n",
> > + rdma_reject_msg(cm_id, event->status));
> For current code above is fine but I will need the other helper
> while adding few connection cases where ARI field carries information
> for the reason for the reject.
>
> I assume, rdma_consumer_reject_data() is meant to be used for that ?
Yep. You can see the nvme_rdma patch in this series for an example.
>
> The patch looks fine to me.
> FWIW, Acked-by: Santosh Shilimkar <santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 6/6] rds_rdma: log the connection reject message
@ 2016-10-25 16:04 ` Steve Wise
0 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-25 16:04 UTC (permalink / raw)
> -----Original Message-----
> From: Santosh Shilimkar [mailto:santosh.shilimkar at oracle.com]
> Sent: Tuesday, October 25, 2016 10:52 AM
> To: Steve Wise; dledford at redhat.com; sean.hefty at intel.com
> Cc: linux-rdma at vger.kernel.org; bart.vanassche at sandisk.com; linux-
> nvme at lists.infradead.org; sagi at grimberg.me; hch at lst.de; axboe at fb.com
> Subject: Re: [PATCH v3 6/6] rds_rdma: log the connection reject message
>
> On 10/24/2016 12:07 PM, Steve Wise wrote:
> > Signed-off-by: Steve Wise <swise at opengridcomputing.com>
> > ---
> > net/rds/rdma_transport.c | 5 ++++-
> > 1 file changed, 4 insertions(+), 1 deletion(-)
> >
> > diff --git a/net/rds/rdma_transport.c b/net/rds/rdma_transport.c
> > index 345f090..6bd2814 100644
> > --- a/net/rds/rdma_transport.c
> > +++ b/net/rds/rdma_transport.c
> > @@ -100,11 +100,14 @@ int rds_rdma_cm_event_handler(struct rdma_cm_id
> *cm_id,
> > trans->cm_connect_complete(conn, event);
> > break;
> >
> > + case RDMA_CM_EVENT_REJECTED:
> > + rdsdebug("Connection rejected: %s\n",
> > + rdma_reject_msg(cm_id, event->status));
> For current code above is fine but I will need the other helper
> while adding few connection cases where ARI field carries information
> for the reason for the reject.
>
> I assume, rdma_consumer_reject_data() is meant to be used for that ?
Yep. You can see the nvme_rdma patch in this series for an example.
>
> The patch looks fine to me.
> FWIW, Acked-by: Santosh Shilimkar <santosh.shilimkar at oracle.com>
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [PATCH v3 6/6] rds_rdma: log the connection reject message
2016-10-25 16:04 ` Steve Wise
@ 2016-10-25 16:11 ` Santosh Shilimkar
-1 siblings, 0 replies; 54+ messages in thread
From: Santosh Shilimkar @ 2016-10-25 16:11 UTC (permalink / raw)
To: Steve Wise, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg
On 10/25/2016 9:04 AM, Steve Wise wrote:
>
>
>> -----Original Message-----
>> From: Santosh Shilimkar [mailto:santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org]
>> Sent: Tuesday, October 25, 2016 10:52 AM
>> To: Steve Wise; dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org; sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org
>> Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org; bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org; linux-
>> nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org; sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org; hch-jcswGhMUV9g@public.gmane.org; axboe-b10kYP2dOMg@public.gmane.org
>> Subject: Re: [PATCH v3 6/6] rds_rdma: log the connection reject message
>>
>> On 10/24/2016 12:07 PM, Steve Wise wrote:
>>> Signed-off-by: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
>>> ---
>>> net/rds/rdma_transport.c | 5 ++++-
>>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/net/rds/rdma_transport.c b/net/rds/rdma_transport.c
>>> index 345f090..6bd2814 100644
>>> --- a/net/rds/rdma_transport.c
>>> +++ b/net/rds/rdma_transport.c
>>> @@ -100,11 +100,14 @@ int rds_rdma_cm_event_handler(struct rdma_cm_id
>> *cm_id,
>>> trans->cm_connect_complete(conn, event);
>>> break;
>>>
>>> + case RDMA_CM_EVENT_REJECTED:
>>> + rdsdebug("Connection rejected: %s\n",
>>> + rdma_reject_msg(cm_id, event->status));
>> For current code above is fine but I will need the other helper
>> while adding few connection cases where ARI field carries information
>> for the reason for the reject.
>>
>> I assume, rdma_consumer_reject_data() is meant to be used for that ?
>
> Yep. You can see the nvme_rdma patch in this series for an example.
>
Cool. Thanks for info Steve.
regards,
Santosh
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 6/6] rds_rdma: log the connection reject message
@ 2016-10-25 16:11 ` Santosh Shilimkar
0 siblings, 0 replies; 54+ messages in thread
From: Santosh Shilimkar @ 2016-10-25 16:11 UTC (permalink / raw)
On 10/25/2016 9:04 AM, Steve Wise wrote:
>
>
>> -----Original Message-----
>> From: Santosh Shilimkar [mailto:santosh.shilimkar at oracle.com]
>> Sent: Tuesday, October 25, 2016 10:52 AM
>> To: Steve Wise; dledford at redhat.com; sean.hefty at intel.com
>> Cc: linux-rdma at vger.kernel.org; bart.vanassche at sandisk.com; linux-
>> nvme at lists.infradead.org; sagi at grimberg.me; hch at lst.de; axboe at fb.com
>> Subject: Re: [PATCH v3 6/6] rds_rdma: log the connection reject message
>>
>> On 10/24/2016 12:07 PM, Steve Wise wrote:
>>> Signed-off-by: Steve Wise <swise at opengridcomputing.com>
>>> ---
>>> net/rds/rdma_transport.c | 5 ++++-
>>> 1 file changed, 4 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/net/rds/rdma_transport.c b/net/rds/rdma_transport.c
>>> index 345f090..6bd2814 100644
>>> --- a/net/rds/rdma_transport.c
>>> +++ b/net/rds/rdma_transport.c
>>> @@ -100,11 +100,14 @@ int rds_rdma_cm_event_handler(struct rdma_cm_id
>> *cm_id,
>>> trans->cm_connect_complete(conn, event);
>>> break;
>>>
>>> + case RDMA_CM_EVENT_REJECTED:
>>> + rdsdebug("Connection rejected: %s\n",
>>> + rdma_reject_msg(cm_id, event->status));
>> For current code above is fine but I will need the other helper
>> while adding few connection cases where ARI field carries information
>> for the reason for the reject.
>>
>> I assume, rdma_consumer_reject_data() is meant to be used for that ?
>
> Yep. You can see the nvme_rdma patch in this series for an example.
>
Cool. Thanks for info Steve.
regards,
Santosh
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [PATCH v3 5/6] ib_iser: log the connection reject message
2016-10-24 19:07 ` Steve Wise
@ 2016-10-25 16:34 ` Sagi Grimberg
-1 siblings, 0 replies; 54+ messages in thread
From: Sagi Grimberg @ 2016-10-25 16:34 UTC (permalink / raw)
To: Steve Wise, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, hch-jcswGhMUV9g,
axboe-b10kYP2dOMg, santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
> + case RDMA_CM_EVENT_REJECTED:
> + iser_info("Connection rejected: %s\n",
> + rdma_reject_msg(cma_id, event->status));
> + /*FALLTHROUGH*/
NIT: /* FALLTHROUGH */
Otherwise:
Acked-by: Sagi Grimberg <sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 5/6] ib_iser: log the connection reject message
@ 2016-10-25 16:34 ` Sagi Grimberg
0 siblings, 0 replies; 54+ messages in thread
From: Sagi Grimberg @ 2016-10-25 16:34 UTC (permalink / raw)
> + case RDMA_CM_EVENT_REJECTED:
> + iser_info("Connection rejected: %s\n",
> + rdma_reject_msg(cma_id, event->status));
> + /*FALLTHROUGH*/
NIT: /* FALLTHROUGH */
Otherwise:
Acked-by: Sagi Grimberg <sagi at grimberg.me>
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
2016-10-24 19:07 ` Steve Wise
@ 2016-10-25 16:36 ` Sagi Grimberg
-1 siblings, 0 replies; 54+ messages in thread
From: Sagi Grimberg @ 2016-10-25 16:36 UTC (permalink / raw)
To: Steve Wise, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, hch-jcswGhMUV9g,
axboe-b10kYP2dOMg, santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
> +static const char *const nvme_rdma_cm_status_strs[] = {
> + [NVME_RDMA_CM_INVALID_LEN] = "invalid length",
> + [NVME_RDMA_CM_INVALID_RECFMT] = "invalid record format",
> + [NVME_RDMA_CM_INVALID_QID] = "invalid queue id",
> + [NVME_RDMA_CM_INVALID_HSQSIZE] = "invalid host sq size",
> + [NVME_RDMA_CM_INVALID_HRQSIZE] = "invalid host rq size",
> + [NVME_RDMA_CM_NO_RSC] = "resource not found",
> + [NVME_RDMA_CM_INVALID_IRD] = "invalid ird",
> + [NVME_RDMA_CM_INVALID_ORD] = "Invalid ord",
> +};
I think it'd be better to move them to include/linux/nvme-rdma.h
and use them for logging on the target side too.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
@ 2016-10-25 16:36 ` Sagi Grimberg
0 siblings, 0 replies; 54+ messages in thread
From: Sagi Grimberg @ 2016-10-25 16:36 UTC (permalink / raw)
> +static const char *const nvme_rdma_cm_status_strs[] = {
> + [NVME_RDMA_CM_INVALID_LEN] = "invalid length",
> + [NVME_RDMA_CM_INVALID_RECFMT] = "invalid record format",
> + [NVME_RDMA_CM_INVALID_QID] = "invalid queue id",
> + [NVME_RDMA_CM_INVALID_HSQSIZE] = "invalid host sq size",
> + [NVME_RDMA_CM_INVALID_HRQSIZE] = "invalid host rq size",
> + [NVME_RDMA_CM_NO_RSC] = "resource not found",
> + [NVME_RDMA_CM_INVALID_IRD] = "invalid ird",
> + [NVME_RDMA_CM_INVALID_ORD] = "Invalid ord",
> +};
I think it'd be better to move them to include/linux/nvme-rdma.h
and use them for logging on the target side too.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [PATCH v3 2/6] rdma_cm: add rdma_is_consumer_reject() helper function
2016-10-24 18:59 ` Steve Wise
@ 2016-10-25 16:36 ` Sagi Grimberg
-1 siblings, 0 replies; 54+ messages in thread
From: Sagi Grimberg @ 2016-10-25 16:36 UTC (permalink / raw)
To: Steve Wise, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, hch-jcswGhMUV9g,
axboe-b10kYP2dOMg, santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
Looks good,
Reviewed-by: Sagi Grimberg <sagi-egDjqUIXVlxBDLzU/O5InQ@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 2/6] rdma_cm: add rdma_is_consumer_reject() helper function
@ 2016-10-25 16:36 ` Sagi Grimberg
0 siblings, 0 replies; 54+ messages in thread
From: Sagi Grimberg @ 2016-10-25 16:36 UTC (permalink / raw)
Looks good,
Reviewed-by: Sagi Grimberg <sagi at grimbeg.me>
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [PATCH v3 3/6] rdma_cm: add rdma_consumer_reject_data helper function
2016-10-24 18:59 ` Steve Wise
@ 2016-10-25 16:36 ` Sagi Grimberg
-1 siblings, 0 replies; 54+ messages in thread
From: Sagi Grimberg @ 2016-10-25 16:36 UTC (permalink / raw)
To: Steve Wise, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, hch-jcswGhMUV9g,
axboe-b10kYP2dOMg, santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
Looks good,
Reviewed-by: Sagi Grimberg <sagi-egDjqUIXVlxBDLzU/O5InQ@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 3/6] rdma_cm: add rdma_consumer_reject_data helper function
@ 2016-10-25 16:36 ` Sagi Grimberg
0 siblings, 0 replies; 54+ messages in thread
From: Sagi Grimberg @ 2016-10-25 16:36 UTC (permalink / raw)
Looks good,
Reviewed-by: Sagi Grimberg <sagi at grimbeg.me>
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function
2016-10-24 18:59 ` Steve Wise
@ 2016-10-25 16:37 ` Sagi Grimberg
-1 siblings, 0 replies; 54+ messages in thread
From: Sagi Grimberg @ 2016-10-25 16:37 UTC (permalink / raw)
To: Steve Wise, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, hch-jcswGhMUV9g,
axboe-b10kYP2dOMg, santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
Looks good,
Reviewed-by: Sagi Grimberg <sagi-egDjqUIXVlxBDLzU/O5InQ@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function
@ 2016-10-25 16:37 ` Sagi Grimberg
0 siblings, 0 replies; 54+ messages in thread
From: Sagi Grimberg @ 2016-10-25 16:37 UTC (permalink / raw)
Looks good,
Reviewed-by: Sagi Grimberg <sagi at grimbeg.me>
^ permalink raw reply [flat|nested] 54+ messages in thread
* RE: [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
2016-10-25 16:36 ` Sagi Grimberg
@ 2016-10-25 16:58 ` Steve Wise
-1 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-25 16:58 UTC (permalink / raw)
To: 'Sagi Grimberg',
dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, axboe-b10kYP2dOMg,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ, hch-jcswGhMUV9g
> > +static const char *const nvme_rdma_cm_status_strs[] = {
> > + [NVME_RDMA_CM_INVALID_LEN] = "invalid length",
> > + [NVME_RDMA_CM_INVALID_RECFMT] = "invalid record format",
> > + [NVME_RDMA_CM_INVALID_QID] = "invalid queue id",
> > + [NVME_RDMA_CM_INVALID_HSQSIZE] = "invalid host sq size",
> > + [NVME_RDMA_CM_INVALID_HRQSIZE] = "invalid host rq size",
> > + [NVME_RDMA_CM_NO_RSC] = "resource not found",
> > + [NVME_RDMA_CM_INVALID_IRD] = "invalid ird",
> > + [NVME_RDMA_CM_INVALID_ORD] = "Invalid ord",
> > +};
>
> I think it'd be better to move them to include/linux/nvme-rdma.h
> and use them for logging on the target side too.
>
You want to put this in nvme-rdma.h as-is so the memory for this is allocated in
each .c file that includes it?
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
@ 2016-10-25 16:58 ` Steve Wise
0 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-25 16:58 UTC (permalink / raw)
> > +static const char *const nvme_rdma_cm_status_strs[] = {
> > + [NVME_RDMA_CM_INVALID_LEN] = "invalid length",
> > + [NVME_RDMA_CM_INVALID_RECFMT] = "invalid record format",
> > + [NVME_RDMA_CM_INVALID_QID] = "invalid queue id",
> > + [NVME_RDMA_CM_INVALID_HSQSIZE] = "invalid host sq size",
> > + [NVME_RDMA_CM_INVALID_HRQSIZE] = "invalid host rq size",
> > + [NVME_RDMA_CM_NO_RSC] = "resource not found",
> > + [NVME_RDMA_CM_INVALID_IRD] = "invalid ird",
> > + [NVME_RDMA_CM_INVALID_ORD] = "Invalid ord",
> > +};
>
> I think it'd be better to move them to include/linux/nvme-rdma.h
> and use them for logging on the target side too.
>
You want to put this in nvme-rdma.h as-is so the memory for this is allocated in
each .c file that includes it?
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function
2016-10-24 18:59 ` Steve Wise
@ 2016-10-25 17:00 ` Christoph Hellwig
-1 siblings, 0 replies; 54+ messages in thread
From: Christoph Hellwig @ 2016-10-25 17:00 UTC (permalink / raw)
To: Steve Wise
Cc: dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg,
santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
On Mon, Oct 24, 2016 at 11:59:03AM -0700, Steve Wise wrote:
> rdma_reject_msg() returns a pointer to a string message associated with
> the transport reject reason codes.
>
> Signed-off-by: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
Looks good,
Reviewed-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
(and /me notes the difference in error numbers between iWarp and the IB
universe.. Stunning)
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function
@ 2016-10-25 17:00 ` Christoph Hellwig
0 siblings, 0 replies; 54+ messages in thread
From: Christoph Hellwig @ 2016-10-25 17:00 UTC (permalink / raw)
On Mon, Oct 24, 2016@11:59:03AM -0700, Steve Wise wrote:
> rdma_reject_msg() returns a pointer to a string message associated with
> the transport reject reason codes.
>
> Signed-off-by: Steve Wise <swise at opengridcomputing.com>
Looks good,
Reviewed-by: Christoph Hellwig <hch at lst.de>
(and /me notes the difference in error numbers between iWarp and the IB
universe.. Stunning)
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [PATCH v3 2/6] rdma_cm: add rdma_is_consumer_reject() helper function
2016-10-24 18:59 ` Steve Wise
@ 2016-10-25 17:00 ` Christoph Hellwig
-1 siblings, 0 replies; 54+ messages in thread
From: Christoph Hellwig @ 2016-10-25 17:00 UTC (permalink / raw)
To: Steve Wise
Cc: dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg,
santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
On Mon, Oct 24, 2016 at 11:59:03AM -0700, Steve Wise wrote:
> Return true if the peer consumer application rejected the
> connection attempt.
>
> Signed-off-by: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
Looks good,
Reviewed-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 2/6] rdma_cm: add rdma_is_consumer_reject() helper function
@ 2016-10-25 17:00 ` Christoph Hellwig
0 siblings, 0 replies; 54+ messages in thread
From: Christoph Hellwig @ 2016-10-25 17:00 UTC (permalink / raw)
On Mon, Oct 24, 2016@11:59:03AM -0700, Steve Wise wrote:
> Return true if the peer consumer application rejected the
> connection attempt.
>
> Signed-off-by: Steve Wise <swise at opengridcomputing.com>
Looks good,
Reviewed-by: Christoph Hellwig <hch at lst.de>
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [PATCH v3 3/6] rdma_cm: add rdma_consumer_reject_data helper function
2016-10-24 18:59 ` Steve Wise
@ 2016-10-25 17:01 ` Christoph Hellwig
-1 siblings, 0 replies; 54+ messages in thread
From: Christoph Hellwig @ 2016-10-25 17:01 UTC (permalink / raw)
To: Steve Wise
Cc: dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg,
santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
On Mon, Oct 24, 2016 at 11:59:03AM -0700, Steve Wise wrote:
> rdma_consumer_reject_data() will return the private data pointer
> and length if any is available.
>
> Signed-off-by: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
Looks good,
Reviewed-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 3/6] rdma_cm: add rdma_consumer_reject_data helper function
@ 2016-10-25 17:01 ` Christoph Hellwig
0 siblings, 0 replies; 54+ messages in thread
From: Christoph Hellwig @ 2016-10-25 17:01 UTC (permalink / raw)
On Mon, Oct 24, 2016@11:59:03AM -0700, Steve Wise wrote:
> rdma_consumer_reject_data() will return the private data pointer
> and length if any is available.
>
> Signed-off-by: Steve Wise <swise at opengridcomputing.com>
Looks good,
Reviewed-by: Christoph Hellwig <hch at lst.de>
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
2016-10-24 19:07 ` Steve Wise
@ 2016-10-25 17:01 ` Christoph Hellwig
-1 siblings, 0 replies; 54+ messages in thread
From: Christoph Hellwig @ 2016-10-25 17:01 UTC (permalink / raw)
To: Steve Wise
Cc: dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg,
santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
On Mon, Oct 24, 2016 at 12:07:13PM -0700, Steve Wise wrote:
> Also add nvme cm status strings and use them.
>
> Signed-off-by: Steve Wise <swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
Looks good,
Reviewed-by: Christoph Hellwig <hch-jcswGhMUV9g@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
@ 2016-10-25 17:01 ` Christoph Hellwig
0 siblings, 0 replies; 54+ messages in thread
From: Christoph Hellwig @ 2016-10-25 17:01 UTC (permalink / raw)
On Mon, Oct 24, 2016@12:07:13PM -0700, Steve Wise wrote:
> Also add nvme cm status strings and use them.
>
> Signed-off-by: Steve Wise <swise at opengridcomputing.com>
Looks good,
Reviewed-by: Christoph Hellwig <hch at lst.de>
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
2016-10-25 16:36 ` Sagi Grimberg
@ 2016-10-25 17:02 ` Christoph Hellwig
-1 siblings, 0 replies; 54+ messages in thread
From: Christoph Hellwig @ 2016-10-25 17:02 UTC (permalink / raw)
To: Sagi Grimberg
Cc: Steve Wise, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, hch-jcswGhMUV9g,
axboe-b10kYP2dOMg, santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
On Tue, Oct 25, 2016 at 07:36:25PM +0300, Sagi Grimberg wrote:
> I think it'd be better to move them to include/linux/nvme-rdma.h
> and use them for logging on the target side too.
Hmm, that would mean they get compiled into every source file.
Also on the target side we can have free-form messages for whatever
the exact rejection reason was, no need to limit us to the enum.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
@ 2016-10-25 17:02 ` Christoph Hellwig
0 siblings, 0 replies; 54+ messages in thread
From: Christoph Hellwig @ 2016-10-25 17:02 UTC (permalink / raw)
On Tue, Oct 25, 2016@07:36:25PM +0300, Sagi Grimberg wrote:
> I think it'd be better to move them to include/linux/nvme-rdma.h
> and use them for logging on the target side too.
Hmm, that would mean they get compiled into every source file.
Also on the target side we can have free-form messages for whatever
the exact rejection reason was, no need to limit us to the enum.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
2016-10-25 17:02 ` Christoph Hellwig
@ 2016-10-25 17:04 ` Sagi Grimberg
-1 siblings, 0 replies; 54+ messages in thread
From: Sagi Grimberg @ 2016-10-25 17:04 UTC (permalink / raw)
To: Christoph Hellwig
Cc: Steve Wise, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w,
linux-rdma-u79uwXL29TY76Z2rM5mHXA,
bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, axboe-b10kYP2dOMg,
santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
> On Tue, Oct 25, 2016 at 07:36:25PM +0300, Sagi Grimberg wrote:
>> I think it'd be better to move them to include/linux/nvme-rdma.h
>> and use them for logging on the target side too.
>
> Hmm, that would mean they get compiled into every source file.
"every source file" is exactly two...
> Also on the target side we can have free-form messages for whatever
> the exact rejection reason was, no need to limit us to the enum.
Thought it'd be nice to use the same verbosity on both ends, just a
suggestion though...
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
@ 2016-10-25 17:04 ` Sagi Grimberg
0 siblings, 0 replies; 54+ messages in thread
From: Sagi Grimberg @ 2016-10-25 17:04 UTC (permalink / raw)
> On Tue, Oct 25, 2016@07:36:25PM +0300, Sagi Grimberg wrote:
>> I think it'd be better to move them to include/linux/nvme-rdma.h
>> and use them for logging on the target side too.
>
> Hmm, that would mean they get compiled into every source file.
"every source file" is exactly two...
> Also on the target side we can have free-form messages for whatever
> the exact rejection reason was, no need to limit us to the enum.
Thought it'd be nice to use the same verbosity on both ends, just a
suggestion though...
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function
2016-10-24 18:59 ` Steve Wise
@ 2016-10-25 17:58 ` Bart Van Assche
-1 siblings, 0 replies; 54+ messages in thread
From: Bart Van Assche @ 2016-10-25 17:58 UTC (permalink / raw)
To: Steve Wise, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg,
santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
On 10/24/2016 12:09 PM, Steve Wise wrote:
> + [IB_CM_REJ_RDC_NOT_EXIST] = "rdc not exist",
Please change this into "RDC does not exist".
> + [IB_CM_REJ_INVALID_GID] = "invalid gid",
> + [IB_CM_REJ_INVALID_LID] = "invalid lid",
> + [IB_CM_REJ_INVALID_SL] = "invalid sl",
> + [IB_CM_REJ_INVALID_TRAFFIC_CLASS] = "invalid traffic class",
> + [IB_CM_REJ_INVALID_HOP_LIMIT] = "invalid hop limit",
> + [IB_CM_REJ_INVALID_PACKET_RATE] = "invalid packet rate",
> + [IB_CM_REJ_INVALID_ALT_GID] = "invalid alt gid",
> + [IB_CM_REJ_INVALID_ALT_LID] = "invalid alt lid",
> + [IB_CM_REJ_INVALID_ALT_SL] = "invalid alt sl",
> + [IB_CM_REJ_INVALID_ALT_TRAFFIC_CLASS] = "invalid alt traffic class",
> + [IB_CM_REJ_INVALID_ALT_HOP_LIMIT] = "invalid alt hop limit",
> + [IB_CM_REJ_INVALID_ALT_PACKET_RATE] = "invalid alt packet rate",
> + [IB_CM_REJ_PORT_CM_REDIRECT] = "port cm redirect",
> + [IB_CM_REJ_PORT_REDIRECT] = "port redirect",
> + [IB_CM_REJ_INVALID_MTU] = "invalid mtu",
> + [IB_CM_REJ_INSUFFICIENT_RESP_RESOURCES] = "insufficient resp resources",
> + [IB_CM_REJ_CONSUMER_DEFINED] = "consumer defined",
> + [IB_CM_REJ_INVALID_RNR_RETRY] = "invalid rnr retry",
> + [IB_CM_REJ_DUPLICATE_LOCAL_COMM_ID] = "duplicate local comm id",
> + [IB_CM_REJ_INVALID_CLASS_VERSION] = "invalid class version",
> + [IB_CM_REJ_INVALID_FLOW_LABEL] = "invalid flow label",
> + [IB_CM_REJ_INVALID_ALT_FLOW_LABEL] = "invalid alt flow label",
Other error messages capitalize GID, LID, CM, ID, RNR and SL so please
do this here too.
> +const char *__attribute_const__ ibcm_reject_msg(int reason)
> +{
> + size_t index = reason;
> +
> + if (index >= ARRAY_SIZE(ibcm_rej_reason_strs) ||
> + !ibcm_rej_reason_strs[index])
> + return "unrecognized reason";
> + else
> + return ibcm_rej_reason_strs[index];
> +}
Please consider using positive logic - this means negating the
if-condition and swapping the if- and else-parts.
> +const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
> + int reason)
> +{
> + if (rdma_ib_or_roce(id->device, id->port_num))
> + return ibcm_reject_msg(reason);
> +
> + if (rdma_protocol_iwarp(id->device, id->port_num))
> + return iwcm_reject_msg(reason);
> +
> + WARN_ON_ONCE(1);
> + return "unrecognized reason";
Have you considered to return "unrecognized transport" here instead?
> +const char *__attribute_const__ iwcm_reject_msg(int reason)
> +{
> + size_t index;
> +
> + /* iWARP uses negative errnos */
> + index = -reason;
> +
> + if (index >= ARRAY_SIZE(iwcm_rej_reason_strs) ||
> + !iwcm_rej_reason_strs[index])
> + return "unrecognized reason";
> + else
> + return iwcm_rej_reason_strs[index];
> +}
Also for this function, please consider using positive logic.
Thanks,
Bart.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function
@ 2016-10-25 17:58 ` Bart Van Assche
0 siblings, 0 replies; 54+ messages in thread
From: Bart Van Assche @ 2016-10-25 17:58 UTC (permalink / raw)
On 10/24/2016 12:09 PM, Steve Wise wrote:
> + [IB_CM_REJ_RDC_NOT_EXIST] = "rdc not exist",
Please change this into "RDC does not exist".
> + [IB_CM_REJ_INVALID_GID] = "invalid gid",
> + [IB_CM_REJ_INVALID_LID] = "invalid lid",
> + [IB_CM_REJ_INVALID_SL] = "invalid sl",
> + [IB_CM_REJ_INVALID_TRAFFIC_CLASS] = "invalid traffic class",
> + [IB_CM_REJ_INVALID_HOP_LIMIT] = "invalid hop limit",
> + [IB_CM_REJ_INVALID_PACKET_RATE] = "invalid packet rate",
> + [IB_CM_REJ_INVALID_ALT_GID] = "invalid alt gid",
> + [IB_CM_REJ_INVALID_ALT_LID] = "invalid alt lid",
> + [IB_CM_REJ_INVALID_ALT_SL] = "invalid alt sl",
> + [IB_CM_REJ_INVALID_ALT_TRAFFIC_CLASS] = "invalid alt traffic class",
> + [IB_CM_REJ_INVALID_ALT_HOP_LIMIT] = "invalid alt hop limit",
> + [IB_CM_REJ_INVALID_ALT_PACKET_RATE] = "invalid alt packet rate",
> + [IB_CM_REJ_PORT_CM_REDIRECT] = "port cm redirect",
> + [IB_CM_REJ_PORT_REDIRECT] = "port redirect",
> + [IB_CM_REJ_INVALID_MTU] = "invalid mtu",
> + [IB_CM_REJ_INSUFFICIENT_RESP_RESOURCES] = "insufficient resp resources",
> + [IB_CM_REJ_CONSUMER_DEFINED] = "consumer defined",
> + [IB_CM_REJ_INVALID_RNR_RETRY] = "invalid rnr retry",
> + [IB_CM_REJ_DUPLICATE_LOCAL_COMM_ID] = "duplicate local comm id",
> + [IB_CM_REJ_INVALID_CLASS_VERSION] = "invalid class version",
> + [IB_CM_REJ_INVALID_FLOW_LABEL] = "invalid flow label",
> + [IB_CM_REJ_INVALID_ALT_FLOW_LABEL] = "invalid alt flow label",
Other error messages capitalize GID, LID, CM, ID, RNR and SL so please
do this here too.
> +const char *__attribute_const__ ibcm_reject_msg(int reason)
> +{
> + size_t index = reason;
> +
> + if (index >= ARRAY_SIZE(ibcm_rej_reason_strs) ||
> + !ibcm_rej_reason_strs[index])
> + return "unrecognized reason";
> + else
> + return ibcm_rej_reason_strs[index];
> +}
Please consider using positive logic - this means negating the
if-condition and swapping the if- and else-parts.
> +const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
> + int reason)
> +{
> + if (rdma_ib_or_roce(id->device, id->port_num))
> + return ibcm_reject_msg(reason);
> +
> + if (rdma_protocol_iwarp(id->device, id->port_num))
> + return iwcm_reject_msg(reason);
> +
> + WARN_ON_ONCE(1);
> + return "unrecognized reason";
Have you considered to return "unrecognized transport" here instead?
> +const char *__attribute_const__ iwcm_reject_msg(int reason)
> +{
> + size_t index;
> +
> + /* iWARP uses negative errnos */
> + index = -reason;
> +
> + if (index >= ARRAY_SIZE(iwcm_rej_reason_strs) ||
> + !iwcm_rej_reason_strs[index])
> + return "unrecognized reason";
> + else
> + return iwcm_rej_reason_strs[index];
> +}
Also for this function, please consider using positive logic.
Thanks,
Bart.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
2016-10-24 19:07 ` Steve Wise
@ 2016-10-25 18:05 ` Bart Van Assche
-1 siblings, 0 replies; 54+ messages in thread
From: Bart Van Assche @ 2016-10-25 18:05 UTC (permalink / raw)
To: Steve Wise, dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg,
santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
On 10/24/2016 12:09 PM, Steve Wise wrote:
> +static const char *const nvme_rdma_cm_status_strs[] = {
> + [NVME_RDMA_CM_INVALID_LEN] = "invalid length",
> + [NVME_RDMA_CM_INVALID_RECFMT] = "invalid record format",
> + [NVME_RDMA_CM_INVALID_QID] = "invalid queue id",
> + [NVME_RDMA_CM_INVALID_HSQSIZE] = "invalid host sq size",
> + [NVME_RDMA_CM_INVALID_HRQSIZE] = "invalid host rq size",
> + [NVME_RDMA_CM_NO_RSC] = "resource not found",
> + [NVME_RDMA_CM_INVALID_IRD] = "invalid ird",
> + [NVME_RDMA_CM_INVALID_ORD] = "Invalid ord",
> +};
Please capitalize abbreviations (SQ, RQ, ID, IRD and ORD).
> +static const char *nvme_rdma_cm_msg(enum nvme_rdma_cm_status status)
> +{
> + size_t index = status;
> +
> + if (index >= ARRAY_SIZE(nvme_rdma_cm_status_strs) ||
> + !nvme_rdma_cm_status_strs[index])
> + return "unrecognized reason";
> + else
> + return nvme_rdma_cm_status_strs[index];
> +};
Please consider rewriting this if-statement such that the recognized
reason scenario occurs first.
> + rej_msg = rdma_reject_msg(cm_id, status);
> + rej_data = (struct nvme_rdma_cm_rej *)
> + rdma_consumer_reject_data(cm_id, ev, &rej_data_len);
Please reorder the patches in this patch series such that it doesn't
break a bisect. rdma_consumer_reject_data() should be introduced before
it is used.
Thanks,
Bart.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
@ 2016-10-25 18:05 ` Bart Van Assche
0 siblings, 0 replies; 54+ messages in thread
From: Bart Van Assche @ 2016-10-25 18:05 UTC (permalink / raw)
On 10/24/2016 12:09 PM, Steve Wise wrote:
> +static const char *const nvme_rdma_cm_status_strs[] = {
> + [NVME_RDMA_CM_INVALID_LEN] = "invalid length",
> + [NVME_RDMA_CM_INVALID_RECFMT] = "invalid record format",
> + [NVME_RDMA_CM_INVALID_QID] = "invalid queue id",
> + [NVME_RDMA_CM_INVALID_HSQSIZE] = "invalid host sq size",
> + [NVME_RDMA_CM_INVALID_HRQSIZE] = "invalid host rq size",
> + [NVME_RDMA_CM_NO_RSC] = "resource not found",
> + [NVME_RDMA_CM_INVALID_IRD] = "invalid ird",
> + [NVME_RDMA_CM_INVALID_ORD] = "Invalid ord",
> +};
Please capitalize abbreviations (SQ, RQ, ID, IRD and ORD).
> +static const char *nvme_rdma_cm_msg(enum nvme_rdma_cm_status status)
> +{
> + size_t index = status;
> +
> + if (index >= ARRAY_SIZE(nvme_rdma_cm_status_strs) ||
> + !nvme_rdma_cm_status_strs[index])
> + return "unrecognized reason";
> + else
> + return nvme_rdma_cm_status_strs[index];
> +};
Please consider rewriting this if-statement such that the recognized
reason scenario occurs first.
> + rej_msg = rdma_reject_msg(cm_id, status);
> + rej_data = (struct nvme_rdma_cm_rej *)
> + rdma_consumer_reject_data(cm_id, ev, &rej_data_len);
Please reorder the patches in this patch series such that it doesn't
break a bisect. rdma_consumer_reject_data() should be introduced before
it is used.
Thanks,
Bart.
^ permalink raw reply [flat|nested] 54+ messages in thread
* RE: [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function
2016-10-25 17:58 ` Bart Van Assche
@ 2016-10-25 18:18 ` Steve Wise
-1 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-25 18:18 UTC (permalink / raw)
To: 'Bart Van Assche',
dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg,
santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
> -----Original Message-----
> From: Bart Van Assche [mailto:bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org]
> Sent: Tuesday, October 25, 2016 12:58 PM
> To: Steve Wise; dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org; sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org
> Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org; linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org;
> sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org; hch-jcswGhMUV9g@public.gmane.org; axboe-b10kYP2dOMg@public.gmane.org; santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org
> Subject: Re: [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function
>
> On 10/24/2016 12:09 PM, Steve Wise wrote:
> > + [IB_CM_REJ_RDC_NOT_EXIST] = "rdc not exist",
>
> Please change this into "RDC does not exist".
>
ok
> > + [IB_CM_REJ_INVALID_GID] = "invalid gid",
> > + [IB_CM_REJ_INVALID_LID] = "invalid lid",
> > + [IB_CM_REJ_INVALID_SL] = "invalid sl",
> > + [IB_CM_REJ_INVALID_TRAFFIC_CLASS] = "invalid traffic class",
> > + [IB_CM_REJ_INVALID_HOP_LIMIT] = "invalid hop limit",
> > + [IB_CM_REJ_INVALID_PACKET_RATE] = "invalid packet rate",
> > + [IB_CM_REJ_INVALID_ALT_GID] = "invalid alt gid",
> > + [IB_CM_REJ_INVALID_ALT_LID] = "invalid alt lid",
> > + [IB_CM_REJ_INVALID_ALT_SL] = "invalid alt sl",
> > + [IB_CM_REJ_INVALID_ALT_TRAFFIC_CLASS] = "invalid alt traffic class",
> > + [IB_CM_REJ_INVALID_ALT_HOP_LIMIT] = "invalid alt hop limit",
> > + [IB_CM_REJ_INVALID_ALT_PACKET_RATE] = "invalid alt packet rate",
> > + [IB_CM_REJ_PORT_CM_REDIRECT] = "port cm redirect",
> > + [IB_CM_REJ_PORT_REDIRECT] = "port redirect",
> > + [IB_CM_REJ_INVALID_MTU] = "invalid mtu",
> > + [IB_CM_REJ_INSUFFICIENT_RESP_RESOURCES] = "insufficient resp
> resources",
> > + [IB_CM_REJ_CONSUMER_DEFINED] = "consumer defined",
> > + [IB_CM_REJ_INVALID_RNR_RETRY] = "invalid rnr retry",
> > + [IB_CM_REJ_DUPLICATE_LOCAL_COMM_ID] = "duplicate local comm
> id",
> > + [IB_CM_REJ_INVALID_CLASS_VERSION] = "invalid class version",
> > + [IB_CM_REJ_INVALID_FLOW_LABEL] = "invalid flow label",
> > + [IB_CM_REJ_INVALID_ALT_FLOW_LABEL] = "invalid alt flow label",
>
> Other error messages capitalize GID, LID, CM, ID, RNR and SL so please
> do this here too.
>
ok
> > +const char *__attribute_const__ ibcm_reject_msg(int reason)
> > +{
> > + size_t index = reason;
> > +
> > + if (index >= ARRAY_SIZE(ibcm_rej_reason_strs) ||
> > + !ibcm_rej_reason_strs[index])
> > + return "unrecognized reason";
> > + else
> > + return ibcm_rej_reason_strs[index];
> > +}
>
> Please consider using positive logic - this means negating the
> if-condition and swapping the if- and else-parts.
yea that might be even clearer.
>
> > +const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
> > + int reason)
> > +{
> > + if (rdma_ib_or_roce(id->device, id->port_num))
> > + return ibcm_reject_msg(reason);
> > +
> > + if (rdma_protocol_iwarp(id->device, id->port_num))
> > + return iwcm_reject_msg(reason);
> > +
> > + WARN_ON_ONCE(1);
> > + return "unrecognized reason";
>
> Have you considered to return "unrecognized transport" here instead?
>
I can do that.
> > +const char *__attribute_const__ iwcm_reject_msg(int reason)
> > +{
> > + size_t index;
> > +
> > + /* iWARP uses negative errnos */
> > + index = -reason;
> > +
> > + if (index >= ARRAY_SIZE(iwcm_rej_reason_strs) ||
> > + !iwcm_rej_reason_strs[index])
> > + return "unrecognized reason";
> > + else
> > + return iwcm_rej_reason_strs[index];
> > +}
>
> Also for this function, please consider using positive logic.
>
> Thanks,
>
> Bart.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function
@ 2016-10-25 18:18 ` Steve Wise
0 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-25 18:18 UTC (permalink / raw)
> -----Original Message-----
> From: Bart Van Assche [mailto:bart.vanassche at sandisk.com]
> Sent: Tuesday, October 25, 2016 12:58 PM
> To: Steve Wise; dledford at redhat.com; sean.hefty at intel.com
> Cc: linux-rdma at vger.kernel.org; linux-nvme at lists.infradead.org;
> sagi at grimberg.me; hch at lst.de; axboe at fb.com; santosh.shilimkar at oracle.com
> Subject: Re: [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function
>
> On 10/24/2016 12:09 PM, Steve Wise wrote:
> > + [IB_CM_REJ_RDC_NOT_EXIST] = "rdc not exist",
>
> Please change this into "RDC does not exist".
>
ok
> > + [IB_CM_REJ_INVALID_GID] = "invalid gid",
> > + [IB_CM_REJ_INVALID_LID] = "invalid lid",
> > + [IB_CM_REJ_INVALID_SL] = "invalid sl",
> > + [IB_CM_REJ_INVALID_TRAFFIC_CLASS] = "invalid traffic class",
> > + [IB_CM_REJ_INVALID_HOP_LIMIT] = "invalid hop limit",
> > + [IB_CM_REJ_INVALID_PACKET_RATE] = "invalid packet rate",
> > + [IB_CM_REJ_INVALID_ALT_GID] = "invalid alt gid",
> > + [IB_CM_REJ_INVALID_ALT_LID] = "invalid alt lid",
> > + [IB_CM_REJ_INVALID_ALT_SL] = "invalid alt sl",
> > + [IB_CM_REJ_INVALID_ALT_TRAFFIC_CLASS] = "invalid alt traffic class",
> > + [IB_CM_REJ_INVALID_ALT_HOP_LIMIT] = "invalid alt hop limit",
> > + [IB_CM_REJ_INVALID_ALT_PACKET_RATE] = "invalid alt packet rate",
> > + [IB_CM_REJ_PORT_CM_REDIRECT] = "port cm redirect",
> > + [IB_CM_REJ_PORT_REDIRECT] = "port redirect",
> > + [IB_CM_REJ_INVALID_MTU] = "invalid mtu",
> > + [IB_CM_REJ_INSUFFICIENT_RESP_RESOURCES] = "insufficient resp
> resources",
> > + [IB_CM_REJ_CONSUMER_DEFINED] = "consumer defined",
> > + [IB_CM_REJ_INVALID_RNR_RETRY] = "invalid rnr retry",
> > + [IB_CM_REJ_DUPLICATE_LOCAL_COMM_ID] = "duplicate local comm
> id",
> > + [IB_CM_REJ_INVALID_CLASS_VERSION] = "invalid class version",
> > + [IB_CM_REJ_INVALID_FLOW_LABEL] = "invalid flow label",
> > + [IB_CM_REJ_INVALID_ALT_FLOW_LABEL] = "invalid alt flow label",
>
> Other error messages capitalize GID, LID, CM, ID, RNR and SL so please
> do this here too.
>
ok
> > +const char *__attribute_const__ ibcm_reject_msg(int reason)
> > +{
> > + size_t index = reason;
> > +
> > + if (index >= ARRAY_SIZE(ibcm_rej_reason_strs) ||
> > + !ibcm_rej_reason_strs[index])
> > + return "unrecognized reason";
> > + else
> > + return ibcm_rej_reason_strs[index];
> > +}
>
> Please consider using positive logic - this means negating the
> if-condition and swapping the if- and else-parts.
yea that might be even clearer.
>
> > +const char *__attribute_const__ rdma_reject_msg(struct rdma_cm_id *id,
> > + int reason)
> > +{
> > + if (rdma_ib_or_roce(id->device, id->port_num))
> > + return ibcm_reject_msg(reason);
> > +
> > + if (rdma_protocol_iwarp(id->device, id->port_num))
> > + return iwcm_reject_msg(reason);
> > +
> > + WARN_ON_ONCE(1);
> > + return "unrecognized reason";
>
> Have you considered to return "unrecognized transport" here instead?
>
I can do that.
> > +const char *__attribute_const__ iwcm_reject_msg(int reason)
> > +{
> > + size_t index;
> > +
> > + /* iWARP uses negative errnos */
> > + index = -reason;
> > +
> > + if (index >= ARRAY_SIZE(iwcm_rej_reason_strs) ||
> > + !iwcm_rej_reason_strs[index])
> > + return "unrecognized reason";
> > + else
> > + return iwcm_rej_reason_strs[index];
> > +}
>
> Also for this function, please consider using positive logic.
>
> Thanks,
>
> Bart.
^ permalink raw reply [flat|nested] 54+ messages in thread
* RE: [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
2016-10-25 18:05 ` Bart Van Assche
@ 2016-10-25 18:20 ` Steve Wise
-1 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-25 18:20 UTC (permalink / raw)
To: 'Bart Van Assche',
dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
sagi-NQWnxTmZq1alnMjI0IkVqw, hch-jcswGhMUV9g, axboe-b10kYP2dOMg,
santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA
>
> On 10/24/2016 12:09 PM, Steve Wise wrote:
> > +static const char *const nvme_rdma_cm_status_strs[] = {
> > + [NVME_RDMA_CM_INVALID_LEN] = "invalid length",
> > + [NVME_RDMA_CM_INVALID_RECFMT] = "invalid record format",
> > + [NVME_RDMA_CM_INVALID_QID] = "invalid queue id",
> > + [NVME_RDMA_CM_INVALID_HSQSIZE] = "invalid host sq size",
> > + [NVME_RDMA_CM_INVALID_HRQSIZE] = "invalid host rq size",
> > + [NVME_RDMA_CM_NO_RSC] = "resource not found",
> > + [NVME_RDMA_CM_INVALID_IRD] = "invalid ird",
> > + [NVME_RDMA_CM_INVALID_ORD] = "Invalid ord",
> > +};
>
> Please capitalize abbreviations (SQ, RQ, ID, IRD and ORD).
>
will do.
> > +static const char *nvme_rdma_cm_msg(enum nvme_rdma_cm_status status)
> > +{
> > + size_t index = status;
> > +
> > + if (index >= ARRAY_SIZE(nvme_rdma_cm_status_strs) ||
> > + !nvme_rdma_cm_status_strs[index])
> > + return "unrecognized reason";
> > + else
> > + return nvme_rdma_cm_status_strs[index];
> > +};
>
> Please consider rewriting this if-statement such that the recognized
> reason scenario occurs first.
>
sure.
> > + rej_msg = rdma_reject_msg(cm_id, status);
> > + rej_data = (struct nvme_rdma_cm_rej *)
> > + rdma_consumer_reject_data(cm_id, ev, &rej_data_len);
>
> Please reorder the patches in this patch series such that it doesn't
> break a bisect. rdma_consumer_reject_data() should be introduced before
> it is used.
>
rdma_consumer_reject_data() is introduced in patch 3.
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
@ 2016-10-25 18:20 ` Steve Wise
0 siblings, 0 replies; 54+ messages in thread
From: Steve Wise @ 2016-10-25 18:20 UTC (permalink / raw)
>
> On 10/24/2016 12:09 PM, Steve Wise wrote:
> > +static const char *const nvme_rdma_cm_status_strs[] = {
> > + [NVME_RDMA_CM_INVALID_LEN] = "invalid length",
> > + [NVME_RDMA_CM_INVALID_RECFMT] = "invalid record format",
> > + [NVME_RDMA_CM_INVALID_QID] = "invalid queue id",
> > + [NVME_RDMA_CM_INVALID_HSQSIZE] = "invalid host sq size",
> > + [NVME_RDMA_CM_INVALID_HRQSIZE] = "invalid host rq size",
> > + [NVME_RDMA_CM_NO_RSC] = "resource not found",
> > + [NVME_RDMA_CM_INVALID_IRD] = "invalid ird",
> > + [NVME_RDMA_CM_INVALID_ORD] = "Invalid ord",
> > +};
>
> Please capitalize abbreviations (SQ, RQ, ID, IRD and ORD).
>
will do.
> > +static const char *nvme_rdma_cm_msg(enum nvme_rdma_cm_status status)
> > +{
> > + size_t index = status;
> > +
> > + if (index >= ARRAY_SIZE(nvme_rdma_cm_status_strs) ||
> > + !nvme_rdma_cm_status_strs[index])
> > + return "unrecognized reason";
> > + else
> > + return nvme_rdma_cm_status_strs[index];
> > +};
>
> Please consider rewriting this if-statement such that the recognized
> reason scenario occurs first.
>
sure.
> > + rej_msg = rdma_reject_msg(cm_id, status);
> > + rej_data = (struct nvme_rdma_cm_rej *)
> > + rdma_consumer_reject_data(cm_id, ev, &rej_data_len);
>
> Please reorder the patches in this patch series such that it doesn't
> break a bisect. rdma_consumer_reject_data() should be introduced before
> it is used.
>
rdma_consumer_reject_data() is introduced in patch 3.
^ permalink raw reply [flat|nested] 54+ messages in thread
* Re: [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
2016-10-25 18:20 ` Steve Wise
@ 2016-10-25 18:25 ` Bart Van Assche
-1 siblings, 0 replies; 54+ messages in thread
From: Bart Van Assche @ 2016-10-25 18:25 UTC (permalink / raw)
To: swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW,
dledford-H+wXaHxf7aLQT0dZR+AlfA,
sean.hefty-ral2JQCrhuEAvxtiuMwx3w
Cc: hch-jcswGhMUV9g, santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA,
linux-rdma-u79uwXL29TY76Z2rM5mHXA,
linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, axboe-b10kYP2dOMg,
sagi-NQWnxTmZq1alnMjI0IkVqw
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 793 bytes --]
On Tue, 2016-10-25 at 13:20 -0500, Steve Wise wrote:
> >
> > On 10/24/2016 12:09 PM, Steve Wise wrote:
> > >
> > > + rej_msg = rdma_reject_msg(cm_id, status);
> > > + rej_data = (struct nvme_rdma_cm_rej *)
> > > + Â Â Â rdma_consumer_reject_data(cm_id, ev,
> > > &rej_data_len);
> >
> > Please reorder the patches in this patch series such that it
> > doesn't
> > break a bisect. rdma_consumer_reject_data() should be introduced
> > before
> > it is used.
>
> rdma_consumer_reject_data() is introduced in patch 3.
Hello Steve,
Thanks for the feedback. Apparently my e-mail client displayed the
patches in the wrong order ...
Bart.N§²æìr¸yúèØb²X¬¶Ç§vØ^)Þº{.nÇ+·¥{±Ù{ayº\x1dÊÚë,j\a¢f£¢·h»öì\x17/oSc¾Ú³9uÀ¦æåÈ&jw¨®\x03(éÝ¢j"ú\x1a¶^[m§ÿïêäz¹Þàþf£¢·h§~m
^ permalink raw reply [flat|nested] 54+ messages in thread
* [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions
@ 2016-10-25 18:25 ` Bart Van Assche
0 siblings, 0 replies; 54+ messages in thread
From: Bart Van Assche @ 2016-10-25 18:25 UTC (permalink / raw)
On Tue, 2016-10-25@13:20 -0500, Steve Wise wrote:
> >
> > On 10/24/2016 12:09 PM, Steve Wise wrote:
> > >
> > > + rej_msg = rdma_reject_msg(cm_id, status);
> > > + rej_data = (struct nvme_rdma_cm_rej *)
> > > + ???rdma_consumer_reject_data(cm_id, ev,
> > > &rej_data_len);
> >
> > Please reorder the patches in this patch series such that it
> > doesn't
> > break a bisect. rdma_consumer_reject_data() should be introduced
> > before
> > it is used.
>
> rdma_consumer_reject_data() is introduced in patch 3.
Hello Steve,
Thanks for the feedback. Apparently my e-mail client displayed the
patches in the wrong order ...
Bart.
^ permalink raw reply [flat|nested] 54+ messages in thread
end of thread, other threads:[~2016-10-25 18:25 UTC | newest]
Thread overview: 54+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-24 19:07 [PATCH v3 0/6] connect reject event helpers Steve Wise
2016-10-24 19:07 ` Steve Wise
[not found] ` <cover.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
2016-10-24 18:59 ` [PATCH v3 2/6] rdma_cm: add rdma_is_consumer_reject() helper function Steve Wise
2016-10-24 18:59 ` Steve Wise
[not found] ` <66890f3b3abede2fe9fa658b91450c24ab516ed1.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
2016-10-25 16:36 ` Sagi Grimberg
2016-10-25 16:36 ` Sagi Grimberg
2016-10-25 17:00 ` Christoph Hellwig
2016-10-25 17:00 ` Christoph Hellwig
2016-10-24 18:59 ` [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() " Steve Wise
2016-10-24 18:59 ` Steve Wise
[not found] ` <ca2185d1f1e9008922d1b344f3887d400a1d6053.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
2016-10-25 16:37 ` Sagi Grimberg
2016-10-25 16:37 ` Sagi Grimberg
2016-10-25 17:00 ` Christoph Hellwig
2016-10-25 17:00 ` Christoph Hellwig
2016-10-25 17:58 ` Bart Van Assche
2016-10-25 17:58 ` Bart Van Assche
[not found] ` <93f8b8f8-51f5-a595-c9ad-0b3e22789636-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-10-25 18:18 ` Steve Wise
2016-10-25 18:18 ` Steve Wise
2016-10-24 18:59 ` [PATCH v3 3/6] rdma_cm: add rdma_consumer_reject_data " Steve Wise
2016-10-24 18:59 ` Steve Wise
[not found] ` <7690d653aefbf9ff51dfa6c1ebef57b47616be23.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
2016-10-25 16:36 ` Sagi Grimberg
2016-10-25 16:36 ` Sagi Grimberg
2016-10-25 17:01 ` Christoph Hellwig
2016-10-25 17:01 ` Christoph Hellwig
2016-10-24 19:07 ` [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions Steve Wise
2016-10-24 19:07 ` Steve Wise
[not found] ` <55638a1d2a9f79af8b9a19eb444c5d0a41691352.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
2016-10-25 16:36 ` Sagi Grimberg
2016-10-25 16:36 ` Sagi Grimberg
[not found] ` <7191d136-aef4-9fed-223e-f2a9c1d958e5-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>
2016-10-25 16:58 ` Steve Wise
2016-10-25 16:58 ` Steve Wise
2016-10-25 17:02 ` Christoph Hellwig
2016-10-25 17:02 ` Christoph Hellwig
[not found] ` <20161025170238.GE9732-jcswGhMUV9g@public.gmane.org>
2016-10-25 17:04 ` Sagi Grimberg
2016-10-25 17:04 ` Sagi Grimberg
2016-10-25 17:01 ` Christoph Hellwig
2016-10-25 17:01 ` Christoph Hellwig
2016-10-25 18:05 ` Bart Van Assche
2016-10-25 18:05 ` Bart Van Assche
[not found] ` <b5d32deb-af6a-3f98-98da-c5f61d400876-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
2016-10-25 18:20 ` Steve Wise
2016-10-25 18:20 ` Steve Wise
2016-10-25 18:25 ` Bart Van Assche
2016-10-25 18:25 ` Bart Van Assche
2016-10-24 19:07 ` [PATCH v3 5/6] ib_iser: log the connection reject message Steve Wise
2016-10-24 19:07 ` Steve Wise
[not found] ` <11419a4af998b6d28df0040efbbf149e44cf1fe5.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
2016-10-25 16:34 ` Sagi Grimberg
2016-10-25 16:34 ` Sagi Grimberg
2016-10-24 19:07 ` [PATCH v3 6/6] rds_rdma: " Steve Wise
2016-10-24 19:07 ` Steve Wise
[not found] ` <21c48d771ab8a9d37ec19ea5f7a48ed5b84c8984.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
2016-10-25 15:51 ` Santosh Shilimkar
2016-10-25 15:51 ` Santosh Shilimkar
[not found] ` <928b6e33-992b-8b88-e224-224f19566623-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
2016-10-25 16:04 ` Steve Wise
2016-10-25 16:04 ` Steve Wise
2016-10-25 16:11 ` Santosh Shilimkar
2016-10-25 16:11 ` Santosh Shilimkar
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.