* [PATCH v3 0/6] connect reject event helpers
@ 2016-10-24 19:07 Steve Wise
[not found] ` <cover.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
0 siblings, 1 reply; 27+ 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] 27+ messages in thread[parent not found: <cover.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>]
* [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function [not found] ` <cover.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> @ 2016-10-24 18:59 ` Steve Wise [not found] ` <ca2185d1f1e9008922d1b344f3887d400a1d6053.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> 2016-10-24 18:59 ` [PATCH v3 3/6] rdma_cm: add rdma_consumer_reject_data " Steve Wise ` (4 subsequent siblings) 5 siblings, 1 reply; 27+ 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] 27+ messages in thread
[parent not found: <ca2185d1f1e9008922d1b344f3887d400a1d6053.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>]
* Re: [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function [not found] ` <ca2185d1f1e9008922d1b344f3887d400a1d6053.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> @ 2016-10-25 16:37 ` Sagi Grimberg 2016-10-25 17:00 ` Christoph Hellwig 2016-10-25 17:58 ` Bart Van Assche 2 siblings, 0 replies; 27+ 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] 27+ messages in thread
* Re: [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function [not found] ` <ca2185d1f1e9008922d1b344f3887d400a1d6053.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> 2016-10-25 16:37 ` Sagi Grimberg @ 2016-10-25 17:00 ` Christoph Hellwig 2016-10-25 17:58 ` Bart Van Assche 2 siblings, 0 replies; 27+ 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] 27+ messages in thread
* Re: [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function [not found] ` <ca2185d1f1e9008922d1b344f3887d400a1d6053.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> 2016-10-25 16:37 ` Sagi Grimberg 2016-10-25 17:00 ` Christoph Hellwig @ 2016-10-25 17:58 ` Bart Van Assche [not found] ` <93f8b8f8-51f5-a595-c9ad-0b3e22789636-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org> 2 siblings, 1 reply; 27+ messages in thread From: Bart Van Assche @ 2016-10-25 17:58 UTC (permalink / raw) 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 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] 27+ messages in thread
[parent not found: <93f8b8f8-51f5-a595-c9ad-0b3e22789636-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>]
* RE: [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function [not found] ` <93f8b8f8-51f5-a595-c9ad-0b3e22789636-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org> @ 2016-10-25 18:18 ` Steve Wise 0 siblings, 0 replies; 27+ 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] 27+ messages in thread
* [PATCH v3 3/6] rdma_cm: add rdma_consumer_reject_data helper function [not found] ` <cover.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> 2016-10-24 18:59 ` [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function Steve Wise @ 2016-10-24 18:59 ` Steve Wise [not found] ` <7690d653aefbf9ff51dfa6c1ebef57b47616be23.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() " Steve Wise ` (3 subsequent siblings) 5 siblings, 1 reply; 27+ 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] 27+ messages in thread
[parent not found: <7690d653aefbf9ff51dfa6c1ebef57b47616be23.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>]
* Re: [PATCH v3 3/6] rdma_cm: add rdma_consumer_reject_data helper function [not found] ` <7690d653aefbf9ff51dfa6c1ebef57b47616be23.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> @ 2016-10-25 16:36 ` Sagi Grimberg 2016-10-25 17:01 ` Christoph Hellwig 1 sibling, 0 replies; 27+ 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] 27+ messages in thread
* Re: [PATCH v3 3/6] rdma_cm: add rdma_consumer_reject_data helper function [not found] ` <7690d653aefbf9ff51dfa6c1ebef57b47616be23.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> 2016-10-25 16:36 ` Sagi Grimberg @ 2016-10-25 17:01 ` Christoph Hellwig 1 sibling, 0 replies; 27+ 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] 27+ messages in thread
* [PATCH v3 2/6] rdma_cm: add rdma_is_consumer_reject() helper function [not found] ` <cover.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> 2016-10-24 18:59 ` [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function 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] ` <66890f3b3abede2fe9fa658b91450c24ab516ed1.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> 2016-10-24 19:07 ` [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions Steve Wise ` (2 subsequent siblings) 5 siblings, 1 reply; 27+ 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] 27+ messages in thread
[parent not found: <66890f3b3abede2fe9fa658b91450c24ab516ed1.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>]
* Re: [PATCH v3 2/6] rdma_cm: add rdma_is_consumer_reject() helper function [not found] ` <66890f3b3abede2fe9fa658b91450c24ab516ed1.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> @ 2016-10-25 16:36 ` Sagi Grimberg 2016-10-25 17:00 ` Christoph Hellwig 1 sibling, 0 replies; 27+ 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] 27+ messages in thread
* Re: [PATCH v3 2/6] rdma_cm: add rdma_is_consumer_reject() helper function [not found] ` <66890f3b3abede2fe9fa658b91450c24ab516ed1.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> 2016-10-25 16:36 ` Sagi Grimberg @ 2016-10-25 17:00 ` Christoph Hellwig 1 sibling, 0 replies; 27+ 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] 27+ messages in thread
* [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions [not found] ` <cover.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> ` (2 preceding siblings ...) 2016-10-24 18:59 ` [PATCH v3 2/6] rdma_cm: add rdma_is_consumer_reject() " Steve Wise @ 2016-10-24 19:07 ` Steve Wise [not found] ` <55638a1d2a9f79af8b9a19eb444c5d0a41691352.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> 2016-10-24 19:07 ` [PATCH v3 5/6] ib_iser: log the connection reject message Steve Wise 2016-10-24 19:07 ` [PATCH v3 6/6] rds_rdma: " Steve Wise 5 siblings, 1 reply; 27+ 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] 27+ messages in thread
[parent not found: <55638a1d2a9f79af8b9a19eb444c5d0a41691352.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>]
* Re: [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions [not found] ` <55638a1d2a9f79af8b9a19eb444c5d0a41691352.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> @ 2016-10-25 16:36 ` Sagi Grimberg [not found] ` <7191d136-aef4-9fed-223e-f2a9c1d958e5-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org> 2016-10-25 17:01 ` Christoph Hellwig 2016-10-25 18:05 ` Bart Van Assche 2 siblings, 1 reply; 27+ 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] 27+ messages in thread
[parent not found: <7191d136-aef4-9fed-223e-f2a9c1d958e5-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org>]
* RE: [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions [not found] ` <7191d136-aef4-9fed-223e-f2a9c1d958e5-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org> @ 2016-10-25 16:58 ` Steve Wise 2016-10-25 17:02 ` Christoph Hellwig 1 sibling, 0 replies; 27+ 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] 27+ messages in thread
* Re: [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions [not found] ` <7191d136-aef4-9fed-223e-f2a9c1d958e5-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org> 2016-10-25 16:58 ` Steve Wise @ 2016-10-25 17:02 ` Christoph Hellwig [not found] ` <20161025170238.GE9732-jcswGhMUV9g@public.gmane.org> 1 sibling, 1 reply; 27+ 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] 27+ messages in thread
[parent not found: <20161025170238.GE9732-jcswGhMUV9g@public.gmane.org>]
* Re: [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions [not found] ` <20161025170238.GE9732-jcswGhMUV9g@public.gmane.org> @ 2016-10-25 17:04 ` Sagi Grimberg 0 siblings, 0 replies; 27+ 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] 27+ messages in thread
* Re: [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions [not found] ` <55638a1d2a9f79af8b9a19eb444c5d0a41691352.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> 2016-10-25 16:36 ` Sagi Grimberg @ 2016-10-25 17:01 ` Christoph Hellwig 2016-10-25 18:05 ` Bart Van Assche 2 siblings, 0 replies; 27+ 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] 27+ messages in thread
* Re: [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions [not found] ` <55638a1d2a9f79af8b9a19eb444c5d0a41691352.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> 2016-10-25 16:36 ` Sagi Grimberg 2016-10-25 17:01 ` Christoph Hellwig @ 2016-10-25 18:05 ` Bart Van Assche [not found] ` <b5d32deb-af6a-3f98-98da-c5f61d400876-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org> 2 siblings, 1 reply; 27+ messages in thread From: Bart Van Assche @ 2016-10-25 18:05 UTC (permalink / raw) 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 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] 27+ messages in thread
[parent not found: <b5d32deb-af6a-3f98-98da-c5f61d400876-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>]
* RE: [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions [not found] ` <b5d32deb-af6a-3f98-98da-c5f61d400876-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org> @ 2016-10-25 18:20 ` Steve Wise 2016-10-25 18:25 ` Bart Van Assche 0 siblings, 1 reply; 27+ 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] 27+ 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 0 siblings, 0 replies; 27+ messages in thread From: Bart Van Assche @ 2016-10-25 18:25 UTC (permalink / raw) To: swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org, dledford-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, sean.hefty-ral2JQCrhuEAvxtiuMwx3w@public.gmane.org Cc: hch-jcswGhMUV9g@public.gmane.org, santosh.shilimkar-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org, linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-nvme-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org, axboe-b10kYP2dOMg@public.gmane.org, sagi-NQWnxTmZq1alnMjI0IkVqw@public.gmane.org [-- 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] 27+ messages in thread
* [PATCH v3 5/6] ib_iser: log the connection reject message [not found] ` <cover.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> ` (3 preceding siblings ...) 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] ` <11419a4af998b6d28df0040efbbf149e44cf1fe5.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> 2016-10-24 19:07 ` [PATCH v3 6/6] rds_rdma: " Steve Wise 5 siblings, 1 reply; 27+ 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] 27+ messages in thread
[parent not found: <11419a4af998b6d28df0040efbbf149e44cf1fe5.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>]
* Re: [PATCH v3 5/6] ib_iser: log the connection reject message [not found] ` <11419a4af998b6d28df0040efbbf149e44cf1fe5.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> @ 2016-10-25 16:34 ` Sagi Grimberg 0 siblings, 0 replies; 27+ 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] 27+ messages in thread
* [PATCH v3 6/6] rds_rdma: log the connection reject message [not found] ` <cover.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> ` (4 preceding siblings ...) 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] ` <21c48d771ab8a9d37ec19ea5f7a48ed5b84c8984.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> 5 siblings, 1 reply; 27+ 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] 27+ messages in thread
[parent not found: <21c48d771ab8a9d37ec19ea5f7a48ed5b84c8984.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>]
* Re: [PATCH v3 6/6] rds_rdma: log the connection reject message [not found] ` <21c48d771ab8a9d37ec19ea5f7a48ed5b84c8984.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org> @ 2016-10-25 15:51 ` Santosh Shilimkar [not found] ` <928b6e33-992b-8b88-e224-224f19566623-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> 0 siblings, 1 reply; 27+ 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] 27+ messages in thread
[parent not found: <928b6e33-992b-8b88-e224-224f19566623-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>]
* RE: [PATCH v3 6/6] rds_rdma: log the connection reject message [not found] ` <928b6e33-992b-8b88-e224-224f19566623-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org> @ 2016-10-25 16:04 ` Steve Wise 2016-10-25 16:11 ` Santosh Shilimkar 0 siblings, 1 reply; 27+ 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] 27+ 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 0 siblings, 0 replies; 27+ 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] 27+ messages in thread
end of thread, other threads:[~2016-10-25 18:25 UTC | newest]
Thread overview: 27+ 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
[not found] ` <cover.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
2016-10-24 18:59 ` [PATCH v3 1/6] rdma_cm: add rdma_reject_msg() helper function Steve Wise
[not found] ` <ca2185d1f1e9008922d1b344f3887d400a1d6053.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
2016-10-25 16:37 ` Sagi Grimberg
2016-10-25 17:00 ` Christoph Hellwig
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-24 18:59 ` [PATCH v3 3/6] rdma_cm: add rdma_consumer_reject_data " Steve Wise
[not found] ` <7690d653aefbf9ff51dfa6c1ebef57b47616be23.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
2016-10-25 16:36 ` Sagi Grimberg
2016-10-25 17:01 ` Christoph Hellwig
2016-10-24 18:59 ` [PATCH v3 2/6] rdma_cm: add rdma_is_consumer_reject() " Steve Wise
[not found] ` <66890f3b3abede2fe9fa658b91450c24ab516ed1.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
2016-10-25 16:36 ` Sagi Grimberg
2016-10-25 17:00 ` Christoph Hellwig
2016-10-24 19:07 ` [PATCH v3 4/6] nvme-rdma: use rdma connection reject helper functions Steve Wise
[not found] ` <55638a1d2a9f79af8b9a19eb444c5d0a41691352.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
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 17:02 ` Christoph Hellwig
[not found] ` <20161025170238.GE9732-jcswGhMUV9g@public.gmane.org>
2016-10-25 17:04 ` Sagi Grimberg
2016-10-25 17:01 ` Christoph Hellwig
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:25 ` Bart Van Assche
2016-10-24 19:07 ` [PATCH v3 5/6] ib_iser: log the connection reject message Steve Wise
[not found] ` <11419a4af998b6d28df0040efbbf149e44cf1fe5.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
2016-10-25 16:34 ` Sagi Grimberg
2016-10-24 19:07 ` [PATCH v3 6/6] rds_rdma: " Steve Wise
[not found] ` <21c48d771ab8a9d37ec19ea5f7a48ed5b84c8984.1477336045.git.swise-7bPotxP6k4+P2YhJcF5u+vpXobYPEAuW@public.gmane.org>
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:11 ` Santosh Shilimkar
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).