From: Yann Droneaud <ydroneaud-RlY5vtjFyJ3QT0dZR+AlfA@public.gmane.org>
To: Sagi Grimberg <sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Cc: linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
Sagi Grimberg
<sagig-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
Subject: Re: [PATCH v4 2/2] ulps: Align several ULPs to use core/rdma_cm logging helpers
Date: Tue, 12 May 2015 13:04:35 +0200 [thread overview]
Message-ID: <1431428675.25060.48.camel@opteya.com> (raw)
In-Reply-To: <1431425527-30114-3-git-send-email-sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
Hi,
Le mardi 12 mai 2015 à 13:12 +0300, Sagi Grimberg a écrit :
> Remove rds & xprtrdma specific helpers and have them and
> srp, iser, isert use the generic helpers. While we're at it
> align svcrdma as well.
>
> Reviewed-by: Bart Van Assche <bart.vanassche-XdAiOPVOjttBDgjK7y7TUQ@public.gmane.org>
> Reviewed-by: Chuck Lever <chuck.lever-QHcLZuEGTsvQT0dZR+AlfA@public.gmane.org>
> Signed-off-by: Sagi Grimberg <sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
> Signed-off-by: Anna Schumaker <anna.schumaker-HgOvQuBEEgTQT0dZR+AlfA@public.gmane.org>
That's quite a big patch. Why not splitting it per ulp ?
Anyway, is changing the format of the messages going to break some
userspace trying to parse those ?
> ---
> drivers/infiniband/ulp/iser/iser_verbs.c | 26 +++++---
> drivers/infiniband/ulp/isert/ib_isert.c | 19 ++++--
> drivers/infiniband/ulp/srp/ib_srp.c | 15 +++--
> net/rds/af_rds.c | 9 ---
> net/rds/ib.h | 1 -
> net/rds/ib_cm.c | 36 +-----------
> net/rds/ib_recv.c | 4 +-
> net/rds/ib_send.c | 38 +------------
> net/rds/rdma_transport.c | 34 +----------
> net/rds/rds.h | 1 -
> net/sunrpc/xprtrdma/frwr_ops.c | 4 +-
> net/sunrpc/xprtrdma/svc_rdma_transport.c | 29 ++++++----
> net/sunrpc/xprtrdma/verbs.c | 90 ++----------------------------
> 13 files changed, 72 insertions(+), 234 deletions(-)
>
> diff --git a/drivers/infiniband/ulp/iser/iser_verbs.c b/drivers/infiniband/ulp/iser/iser_verbs.c
> index cc2dd35..7b4d105 100644
> --- a/drivers/infiniband/ulp/iser/iser_verbs.c
> +++ b/drivers/infiniband/ulp/iser/iser_verbs.c
> @@ -51,19 +51,20 @@ static void iser_cq_callback(struct ib_cq *cq, void *cq_context);
>
> static void iser_cq_event_callback(struct ib_event *cause, void *context)
> {
> - iser_err("got cq event %d \n", cause->event);
> + iser_err("cq event %s(%d)\n", ib_event_msg(cause->event), cause->event);
> }
>
> static void iser_qp_event_callback(struct ib_event *cause, void *context)
> {
> - iser_err("got qp event %d\n",cause->event);
> + iser_err("qp event %s(%d)\n", ib_event_msg(cause->event), cause->event);
> }
>
> static void iser_event_handler(struct ib_event_handler *handler,
> struct ib_event *event)
> {
> - iser_err("async event %d on device %s port %d\n", event->event,
> - event->device->name, event->element.port_num);
> + iser_err("async event %s(%d) on device %s port %d\n",
> + ib_event_msg(event->event), event->event,
> + event->device->name, event->element.port_num);
> }
>
> /**
> @@ -873,8 +874,9 @@ static int iser_cma_handler(struct rdma_cm_id *cma_id, struct rdma_cm_event *eve
> int ret = 0;
>
> iser_conn = (struct iser_conn *)cma_id->context;
> - iser_info("event %d status %d conn %p id %p\n",
> - event->event, event->status, cma_id->context, cma_id);
> + iser_info("event %s(%d) status %d conn %p id %p\n",
> + rdma_event_msg(event->event), event->event,
> + event->status, cma_id->context, cma_id);
>
> mutex_lock(&iser_conn->state_mutex);
> switch (event->event) {
> @@ -913,7 +915,8 @@ static int iser_cma_handler(struct rdma_cm_id *cma_id, struct rdma_cm_event *eve
> }
> break;
> default:
> - iser_err("Unexpected RDMA CM event (%d)\n", event->event);
> + iser_err("Unexpected RDMA CM event %s(%d)\n",
> + rdma_event_msg(event->event), event->event);
> break;
> }
> mutex_unlock(&iser_conn->state_mutex);
> @@ -1173,10 +1176,13 @@ static void iser_handle_wc(struct ib_wc *wc)
> }
> } else {
> if (wc->status != IB_WC_WR_FLUSH_ERR)
> - iser_err("wr id %llx status %d vend_err %x\n",
> - wc->wr_id, wc->status, wc->vendor_err);
> + iser_err("%s(%d): wr id %llx vend_err %x\n",
> + ib_wc_status_msg(wc->status), wc->status,
> + wc->wr_id, wc->vendor_err);
> else
> - iser_dbg("flush error: wr id %llx\n", wc->wr_id);
> + iser_dbg("%s(%d): wr id %llx\n",
> + ib_wc_status_msg(wc->status), wc->status,
> + wc->wr_id);
>
> if (wc->wr_id == ISER_BEACON_WRID)
> /* all flush errors were consumed */
> diff --git a/drivers/infiniband/ulp/isert/ib_isert.c b/drivers/infiniband/ulp/isert/ib_isert.c
> index 327529e..209e765 100644
> --- a/drivers/infiniband/ulp/isert/ib_isert.c
> +++ b/drivers/infiniband/ulp/isert/ib_isert.c
> @@ -78,7 +78,9 @@ isert_qp_event_callback(struct ib_event *e, void *context)
> {
> struct isert_conn *isert_conn = context;
>
> - isert_err("conn %p event: %d\n", isert_conn, e->event);
> + isert_err("conn %p event: %s(%d)\n", isert_conn,
> + ib_event_msg(e->event), e->event);
> +
> switch (e->event) {
> case IB_EVENT_COMM_EST:
> rdma_notify(isert_conn->cm_id, IB_EVENT_COMM_EST);
> @@ -897,7 +899,8 @@ static int
> isert_np_cma_handler(struct isert_np *isert_np,
> enum rdma_cm_event_type event)
> {
> - isert_dbg("isert np %p, handling event %d\n", isert_np, event);
> + isert_dbg("isert np %p, handling event %s(%d)\n",
> + isert_np, rdma_event_msg(event), event);
>
> switch (event) {
> case RDMA_CM_EVENT_DEVICE_REMOVAL:
> @@ -957,7 +960,8 @@ isert_cma_handler(struct rdma_cm_id *cma_id, struct rdma_cm_event *event)
> {
> int ret = 0;
>
> - isert_info("event %d status %d id %p np %p\n", event->event,
> + isert_info("event %s(%d) status %d id %p np %p\n",
> + rdma_event_msg(event->event), event->event,
> event->status, cma_id, cma_id->context);
>
> switch (event->event) {
> @@ -2091,10 +2095,13 @@ isert_handle_wc(struct ib_wc *wc)
> }
> } else {
> if (wc->status != IB_WC_WR_FLUSH_ERR)
> - isert_err("wr id %llx status %d vend_err %x\n",
> - wc->wr_id, wc->status, wc->vendor_err);
> + isert_err("%s(%d): wr id %llx vend_err %x\n",
> + ib_wc_status_msg(wc->status), wc->status,
> + wc->wr_id, wc->vendor_err);
> else
> - isert_dbg("flush error: wr id %llx\n", wc->wr_id);
> + isert_dbg("%s(%d): wr id %llx\n",
> + ib_wc_status_msg(wc->status), wc->status,
> + wc->wr_id);
>
> if (wc->wr_id != ISER_FASTREG_LI_WRID)
> isert_cq_comp_err(isert_conn, wc);
> diff --git a/drivers/infiniband/ulp/srp/ib_srp.c b/drivers/infiniband/ulp/srp/ib_srp.c
> index 918814c..86b8097 100644
> --- a/drivers/infiniband/ulp/srp/ib_srp.c
> +++ b/drivers/infiniband/ulp/srp/ib_srp.c
> @@ -253,7 +253,7 @@ static void srp_free_iu(struct srp_host *host, struct srp_iu *iu)
>
> static void srp_qp_event(struct ib_event *event, void *context)
> {
> - pr_debug("QP event %d\n", event->event);
> + pr_debug("QP event %s(%d)\n", ib_event_msg(event->event), event->event);
> }
>
> static int srp_init_qp(struct srp_target_port *target,
> @@ -1932,17 +1932,18 @@ static void srp_handle_qp_err(u64 wr_id, enum ib_wc_status wc_status,
> if (target->connected && !target->qp_in_error) {
> if (wr_id & LOCAL_INV_WR_ID_MASK) {
> shost_printk(KERN_ERR, target->scsi_host, PFX
> - "LOCAL_INV failed with status %d\n",
> - wc_status);
> + "LOCAL_INV failed with status %s(%d)\n",
> + ib_wc_status_msg(wc_status), wc_status);
> } else if (wr_id & FAST_REG_WR_ID_MASK) {
> shost_printk(KERN_ERR, target->scsi_host, PFX
> - "FAST_REG_MR failed status %d\n",
> - wc_status);
> + "FAST_REG_MR failed status %s(%d)\n",
> + ib_wc_status_msg(wc_status), wc_status);
> } else {
> shost_printk(KERN_ERR, target->scsi_host,
> - PFX "failed %s status %d for iu %p\n",
> + PFX "failed %s status %s(%d) for iu %p\n",
> send_err ? "send" : "receive",
> - wc_status, (void *)(uintptr_t)wr_id);
> + ib_wc_status_msg(wc_status), wc_status,
> + (void *)(uintptr_t)wr_id);
> }
> queue_work(system_long_wq, &target->tl_err_work);
> }
> diff --git a/net/rds/af_rds.c b/net/rds/af_rds.c
> index 1044337..11b623c 100644
> --- a/net/rds/af_rds.c
> +++ b/net/rds/af_rds.c
> @@ -40,15 +40,6 @@
>
> #include "rds.h"
>
> -char *rds_str_array(char **array, size_t elements, size_t index)
> -{
> - if ((index < elements) && array[index])
> - return array[index];
> - else
> - return "unknown";
> -}
> -EXPORT_SYMBOL(rds_str_array);
> -
> /* this is just used for stats gathering :/ */
> static DEFINE_SPINLOCK(rds_sock_lock);
> static unsigned long rds_sock_count;
> diff --git a/net/rds/ib.h b/net/rds/ib.h
> index c36d713..333611d 100644
> --- a/net/rds/ib.h
> +++ b/net/rds/ib.h
> @@ -339,7 +339,6 @@ u32 rds_ib_ring_completed(struct rds_ib_work_ring *ring, u32 wr_id, u32 oldest);
> extern wait_queue_head_t rds_ib_ring_empty_wait;
>
> /* ib_send.c */
> -char *rds_ib_wc_status_str(enum ib_wc_status status);
> void rds_ib_xmit_complete(struct rds_connection *conn);
> int rds_ib_xmit(struct rds_connection *conn, struct rds_message *rm,
> unsigned int hdr_off, unsigned int sg, unsigned int off);
> diff --git a/net/rds/ib_cm.c b/net/rds/ib_cm.c
> index 31b74f5..6e33061 100644
> --- a/net/rds/ib_cm.c
> +++ b/net/rds/ib_cm.c
> @@ -39,36 +39,6 @@
> #include "rds.h"
> #include "ib.h"
>
> -static char *rds_ib_event_type_strings[] = {
> -#define RDS_IB_EVENT_STRING(foo) \
> - [IB_EVENT_##foo] = __stringify(IB_EVENT_##foo)
> - RDS_IB_EVENT_STRING(CQ_ERR),
> - RDS_IB_EVENT_STRING(QP_FATAL),
> - RDS_IB_EVENT_STRING(QP_REQ_ERR),
> - RDS_IB_EVENT_STRING(QP_ACCESS_ERR),
> - RDS_IB_EVENT_STRING(COMM_EST),
> - RDS_IB_EVENT_STRING(SQ_DRAINED),
> - RDS_IB_EVENT_STRING(PATH_MIG),
> - RDS_IB_EVENT_STRING(PATH_MIG_ERR),
> - RDS_IB_EVENT_STRING(DEVICE_FATAL),
> - RDS_IB_EVENT_STRING(PORT_ACTIVE),
> - RDS_IB_EVENT_STRING(PORT_ERR),
> - RDS_IB_EVENT_STRING(LID_CHANGE),
> - RDS_IB_EVENT_STRING(PKEY_CHANGE),
> - RDS_IB_EVENT_STRING(SM_CHANGE),
> - RDS_IB_EVENT_STRING(SRQ_ERR),
> - RDS_IB_EVENT_STRING(SRQ_LIMIT_REACHED),
> - RDS_IB_EVENT_STRING(QP_LAST_WQE_REACHED),
> - RDS_IB_EVENT_STRING(CLIENT_REREGISTER),
> -#undef RDS_IB_EVENT_STRING
> -};
> -
> -static char *rds_ib_event_str(enum ib_event_type type)
> -{
> - return rds_str_array(rds_ib_event_type_strings,
> - ARRAY_SIZE(rds_ib_event_type_strings), type);
> -};
> -
> /*
> * Set the selected protocol version
> */
> @@ -234,7 +204,7 @@ static void rds_ib_cm_fill_conn_param(struct rds_connection *conn,
> static void rds_ib_cq_event_handler(struct ib_event *event, void *data)
> {
> rdsdebug("event %u (%s) data %p\n",
> - event->event, rds_ib_event_str(event->event), data);
> + event->event, ib_event_msg(event->event), data);
> }
>
> static void rds_ib_qp_event_handler(struct ib_event *event, void *data)
> @@ -243,7 +213,7 @@ static void rds_ib_qp_event_handler(struct ib_event *event, void *data)
> struct rds_ib_connection *ic = conn->c_transport_data;
>
> rdsdebug("conn %p ic %p event %u (%s)\n", conn, ic, event->event,
> - rds_ib_event_str(event->event));
> + ib_event_msg(event->event));
>
> switch (event->event) {
> case IB_EVENT_COMM_EST:
> @@ -252,7 +222,7 @@ static void rds_ib_qp_event_handler(struct ib_event *event, void *data)
> default:
> rdsdebug("Fatal QP Event %u (%s) "
> "- connection %pI4->%pI4, reconnecting\n",
> - event->event, rds_ib_event_str(event->event),
> + event->event, ib_event_msg(event->event),
> &conn->c_laddr, &conn->c_faddr);
> rds_conn_drop(conn);
> break;
> diff --git a/net/rds/ib_recv.c b/net/rds/ib_recv.c
> index 1b981a4..cac5b45 100644
> --- a/net/rds/ib_recv.c
> +++ b/net/rds/ib_recv.c
> @@ -956,7 +956,7 @@ static inline void rds_poll_cq(struct rds_ib_connection *ic,
> while (ib_poll_cq(ic->i_recv_cq, 1, &wc) > 0) {
> rdsdebug("wc wr_id 0x%llx status %u (%s) byte_len %u imm_data %u\n",
> (unsigned long long)wc.wr_id, wc.status,
> - rds_ib_wc_status_str(wc.status), wc.byte_len,
> + ib_wc_status_msg(wc.status), wc.byte_len,
> be32_to_cpu(wc.ex.imm_data));
> rds_ib_stats_inc(s_ib_rx_cq_event);
>
> @@ -978,7 +978,7 @@ static inline void rds_poll_cq(struct rds_ib_connection *ic,
> "status %u (%s), disconnecting and "
> "reconnecting\n", &conn->c_faddr,
> wc.status,
> - rds_ib_wc_status_str(wc.status));
> + ib_wc_status_msg(wc.status));
> }
>
> /*
> diff --git a/net/rds/ib_send.c b/net/rds/ib_send.c
> index bd3825d..25d0482 100644
> --- a/net/rds/ib_send.c
> +++ b/net/rds/ib_send.c
> @@ -39,40 +39,6 @@
> #include "rds.h"
> #include "ib.h"
>
> -static char *rds_ib_wc_status_strings[] = {
> -#define RDS_IB_WC_STATUS_STR(foo) \
> - [IB_WC_##foo] = __stringify(IB_WC_##foo)
> - RDS_IB_WC_STATUS_STR(SUCCESS),
> - RDS_IB_WC_STATUS_STR(LOC_LEN_ERR),
> - RDS_IB_WC_STATUS_STR(LOC_QP_OP_ERR),
> - RDS_IB_WC_STATUS_STR(LOC_EEC_OP_ERR),
> - RDS_IB_WC_STATUS_STR(LOC_PROT_ERR),
> - RDS_IB_WC_STATUS_STR(WR_FLUSH_ERR),
> - RDS_IB_WC_STATUS_STR(MW_BIND_ERR),
> - RDS_IB_WC_STATUS_STR(BAD_RESP_ERR),
> - RDS_IB_WC_STATUS_STR(LOC_ACCESS_ERR),
> - RDS_IB_WC_STATUS_STR(REM_INV_REQ_ERR),
> - RDS_IB_WC_STATUS_STR(REM_ACCESS_ERR),
> - RDS_IB_WC_STATUS_STR(REM_OP_ERR),
> - RDS_IB_WC_STATUS_STR(RETRY_EXC_ERR),
> - RDS_IB_WC_STATUS_STR(RNR_RETRY_EXC_ERR),
> - RDS_IB_WC_STATUS_STR(LOC_RDD_VIOL_ERR),
> - RDS_IB_WC_STATUS_STR(REM_INV_RD_REQ_ERR),
> - RDS_IB_WC_STATUS_STR(REM_ABORT_ERR),
> - RDS_IB_WC_STATUS_STR(INV_EECN_ERR),
> - RDS_IB_WC_STATUS_STR(INV_EEC_STATE_ERR),
> - RDS_IB_WC_STATUS_STR(FATAL_ERR),
> - RDS_IB_WC_STATUS_STR(RESP_TIMEOUT_ERR),
> - RDS_IB_WC_STATUS_STR(GENERAL_ERR),
> -#undef RDS_IB_WC_STATUS_STR
> -};
> -
> -char *rds_ib_wc_status_str(enum ib_wc_status status)
> -{
> - return rds_str_array(rds_ib_wc_status_strings,
> - ARRAY_SIZE(rds_ib_wc_status_strings), status);
> -}
> -
> /*
> * Convert IB-specific error message to RDS error message and call core
> * completion handler.
> @@ -293,7 +259,7 @@ void rds_ib_send_cq_comp_handler(struct ib_cq *cq, void *context)
> while (ib_poll_cq(cq, 1, &wc) > 0) {
> rdsdebug("wc wr_id 0x%llx status %u (%s) byte_len %u imm_data %u\n",
> (unsigned long long)wc.wr_id, wc.status,
> - rds_ib_wc_status_str(wc.status), wc.byte_len,
> + ib_wc_status_msg(wc.status), wc.byte_len,
> be32_to_cpu(wc.ex.imm_data));
> rds_ib_stats_inc(s_ib_tx_cq_event);
>
> @@ -344,7 +310,7 @@ void rds_ib_send_cq_comp_handler(struct ib_cq *cq, void *context)
> rds_ib_conn_error(conn, "send completion on %pI4 had status "
> "%u (%s), disconnecting and reconnecting\n",
> &conn->c_faddr, wc.status,
> - rds_ib_wc_status_str(wc.status));
> + ib_wc_status_msg(wc.status));
> }
> }
> }
> diff --git a/net/rds/rdma_transport.c b/net/rds/rdma_transport.c
> index 6cd9d1d..2082408 100644
> --- a/net/rds/rdma_transport.c
> +++ b/net/rds/rdma_transport.c
> @@ -37,34 +37,6 @@
>
> static struct rdma_cm_id *rds_rdma_listen_id;
>
> -static char *rds_cm_event_strings[] = {
> -#define RDS_CM_EVENT_STRING(foo) \
> - [RDMA_CM_EVENT_##foo] = __stringify(RDMA_CM_EVENT_##foo)
> - RDS_CM_EVENT_STRING(ADDR_RESOLVED),
> - RDS_CM_EVENT_STRING(ADDR_ERROR),
> - RDS_CM_EVENT_STRING(ROUTE_RESOLVED),
> - RDS_CM_EVENT_STRING(ROUTE_ERROR),
> - RDS_CM_EVENT_STRING(CONNECT_REQUEST),
> - RDS_CM_EVENT_STRING(CONNECT_RESPONSE),
> - RDS_CM_EVENT_STRING(CONNECT_ERROR),
> - RDS_CM_EVENT_STRING(UNREACHABLE),
> - RDS_CM_EVENT_STRING(REJECTED),
> - RDS_CM_EVENT_STRING(ESTABLISHED),
> - RDS_CM_EVENT_STRING(DISCONNECTED),
> - RDS_CM_EVENT_STRING(DEVICE_REMOVAL),
> - RDS_CM_EVENT_STRING(MULTICAST_JOIN),
> - RDS_CM_EVENT_STRING(MULTICAST_ERROR),
> - RDS_CM_EVENT_STRING(ADDR_CHANGE),
> - RDS_CM_EVENT_STRING(TIMEWAIT_EXIT),
> -#undef RDS_CM_EVENT_STRING
> -};
> -
> -static char *rds_cm_event_str(enum rdma_cm_event_type type)
> -{
> - return rds_str_array(rds_cm_event_strings,
> - ARRAY_SIZE(rds_cm_event_strings), type);
> -};
> -
> int rds_rdma_cm_event_handler(struct rdma_cm_id *cm_id,
> struct rdma_cm_event *event)
> {
> @@ -74,7 +46,7 @@ int rds_rdma_cm_event_handler(struct rdma_cm_id *cm_id,
> int ret = 0;
>
> rdsdebug("conn %p id %p handling event %u (%s)\n", conn, cm_id,
> - event->event, rds_cm_event_str(event->event));
> + event->event, rdma_event_msg(event->event));
>
> if (cm_id->device->node_type == RDMA_NODE_RNIC)
> trans = &rds_iw_transport;
> @@ -139,7 +111,7 @@ int rds_rdma_cm_event_handler(struct rdma_cm_id *cm_id,
> default:
> /* things like device disconnect? */
> printk(KERN_ERR "RDS: unknown event %u (%s)!\n",
> - event->event, rds_cm_event_str(event->event));
> + event->event, rdma_event_msg(event->event));
> break;
> }
>
> @@ -148,7 +120,7 @@ out:
> mutex_unlock(&conn->c_cm_lock);
>
> rdsdebug("id %p event %u (%s) handling ret %d\n", cm_id, event->event,
> - rds_cm_event_str(event->event), ret);
> + rdma_event_msg(event->event), ret);
>
> return ret;
> }
> diff --git a/net/rds/rds.h b/net/rds/rds.h
> index 0d41155..099754c 100644
> --- a/net/rds/rds.h
> +++ b/net/rds/rds.h
> @@ -575,7 +575,6 @@ struct rds_statistics {
> };
>
> /* af_rds.c */
> -char *rds_str_array(char **array, size_t elements, size_t index);
> void rds_sock_addref(struct rds_sock *rs);
> void rds_sock_put(struct rds_sock *rs);
> void rds_wake_sk_sleep(struct rds_sock *rs);
> diff --git a/net/sunrpc/xprtrdma/frwr_ops.c b/net/sunrpc/xprtrdma/frwr_ops.c
> index dff0481..b3fda09 100644
> --- a/net/sunrpc/xprtrdma/frwr_ops.c
> +++ b/net/sunrpc/xprtrdma/frwr_ops.c
> @@ -128,8 +128,8 @@ frwr_sendcompletion(struct ib_wc *wc)
>
> /* WARNING: Only wr_id and status are reliable at this point */
> r = (struct rpcrdma_mw *)(unsigned long)wc->wr_id;
> - dprintk("RPC: %s: frmr %p (stale), status %d\n",
> - __func__, r, wc->status);
> + dprintk("RPC: %s: frmr %p (stale), status %s(%d)\n",
> + __func__, r, ib_wc_status_msg(wc->status), wc->status);
> r->r.frmr.fr_state = FRMR_IS_STALE;
> }
>
> diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
> index f609c1c..abd2d51 100644
> --- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
> +++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
> @@ -175,8 +175,8 @@ void svc_rdma_put_req_map(struct svc_rdma_req_map *map)
> static void cq_event_handler(struct ib_event *event, void *context)
> {
> struct svc_xprt *xprt = context;
> - dprintk("svcrdma: received CQ event id=%d, context=%p\n",
> - event->event, context);
> + dprintk("svcrdma: received CQ event %s(%d), context=%p\n",
> + ib_event_msg(event->event), event->event, context);
> set_bit(XPT_CLOSE, &xprt->xpt_flags);
> }
>
> @@ -191,8 +191,9 @@ static void qp_event_handler(struct ib_event *event, void *context)
> case IB_EVENT_COMM_EST:
> case IB_EVENT_SQ_DRAINED:
> case IB_EVENT_QP_LAST_WQE_REACHED:
> - dprintk("svcrdma: QP event %d received for QP=%p\n",
> - event->event, event->element.qp);
> + dprintk("svcrdma: QP event %s(%d) received for QP=%p\n",
> + ib_event_msg(event->event), event->event,
> + event->element.qp);
> break;
> /* These are considered fatal events */
> case IB_EVENT_PATH_MIG_ERR:
> @@ -201,9 +202,10 @@ static void qp_event_handler(struct ib_event *event, void *context)
> case IB_EVENT_QP_ACCESS_ERR:
> case IB_EVENT_DEVICE_FATAL:
> default:
> - dprintk("svcrdma: QP ERROR event %d received for QP=%p, "
> + dprintk("svcrdma: QP ERROR event %s(%d) received for QP=%p, "
> "closing transport\n",
> - event->event, event->element.qp);
> + ib_event_msg(event->event), event->event,
> + event->element.qp);
> set_bit(XPT_CLOSE, &xprt->xpt_flags);
> break;
> }
> @@ -402,7 +404,8 @@ static void sq_cq_reap(struct svcxprt_rdma *xprt)
> for (i = 0; i < ret; i++) {
> wc = &wc_a[i];
> if (wc->status != IB_WC_SUCCESS) {
> - dprintk("svcrdma: sq wc err status %d\n",
> + dprintk("svcrdma: sq wc err status %s(%d)\n",
> + ib_wc_status_msg(wc->status),
> wc->status);
>
> /* Close the transport */
> @@ -616,7 +619,8 @@ static int rdma_listen_handler(struct rdma_cm_id *cma_id,
> switch (event->event) {
> case RDMA_CM_EVENT_CONNECT_REQUEST:
> dprintk("svcrdma: Connect request on cma_id=%p, xprt = %p, "
> - "event=%d\n", cma_id, cma_id->context, event->event);
> + "event=%s(%d)\n", cma_id, cma_id->context,
> + rdma_event_msg(event->event), event->event);
> handle_connect_req(cma_id,
> event->param.conn.initiator_depth);
> break;
> @@ -636,7 +640,8 @@ static int rdma_listen_handler(struct rdma_cm_id *cma_id,
>
> default:
> dprintk("svcrdma: Unexpected event on listening endpoint %p, "
> - "event=%d\n", cma_id, event->event);
> + "event=%s(%d)\n", cma_id, rdma_event_msg(event->event),
> + event->event);
> break;
> }
>
> @@ -669,7 +674,8 @@ static int rdma_cma_handler(struct rdma_cm_id *cma_id,
> break;
> case RDMA_CM_EVENT_DEVICE_REMOVAL:
> dprintk("svcrdma: Device removal cma_id=%p, xprt = %p, "
> - "event=%d\n", cma_id, xprt, event->event);
> + "event=%s(%d)\n", cma_id, xprt,
> + rdma_event_msg(event->event), event->event);
> if (xprt) {
> set_bit(XPT_CLOSE, &xprt->xpt_flags);
> svc_xprt_enqueue(xprt);
> @@ -677,7 +683,8 @@ static int rdma_cma_handler(struct rdma_cm_id *cma_id,
> break;
> default:
> dprintk("svcrdma: Unexpected event on DTO endpoint %p, "
> - "event=%d\n", cma_id, event->event);
> + "event=%d\n", cma_id, rdma_event_msg(event->event),
> + event->event);
> break;
> }
> return 0;
> diff --git a/net/sunrpc/xprtrdma/verbs.c b/net/sunrpc/xprtrdma/verbs.c
> index 4870d27..6f6b8a5 100644
> --- a/net/sunrpc/xprtrdma/verbs.c
> +++ b/net/sunrpc/xprtrdma/verbs.c
> @@ -105,32 +105,6 @@ rpcrdma_run_tasklet(unsigned long data)
>
> static DECLARE_TASKLET(rpcrdma_tasklet_g, rpcrdma_run_tasklet, 0UL);
>
> -static const char * const async_event[] = {
> - "CQ error",
> - "QP fatal error",
> - "QP request error",
> - "QP access error",
> - "communication established",
> - "send queue drained",
> - "path migration successful",
> - "path mig error",
> - "device fatal error",
> - "port active",
> - "port error",
> - "LID change",
> - "P_key change",
> - "SM change",
> - "SRQ error",
> - "SRQ limit reached",
> - "last WQE reached",
> - "client reregister",
> - "GID change",
> -};
> -
> -#define ASYNC_MSG(status) \
> - ((status) < ARRAY_SIZE(async_event) ? \
> - async_event[(status)] : "unknown async error")
> -
> static void
> rpcrdma_schedule_tasklet(struct list_head *sched_list)
> {
> @@ -148,7 +122,7 @@ rpcrdma_qp_async_error_upcall(struct ib_event *event, void *context)
> struct rpcrdma_ep *ep = context;
>
> pr_err("RPC: %s: %s on device %s ep %p\n",
> - __func__, ASYNC_MSG(event->event),
> + __func__, ib_event_msg(event->event),
> event->device->name, context);
> if (ep->rep_connected == 1) {
> ep->rep_connected = -EIO;
> @@ -163,7 +137,7 @@ rpcrdma_cq_async_error_upcall(struct ib_event *event, void *context)
> struct rpcrdma_ep *ep = context;
>
> pr_err("RPC: %s: %s on device %s ep %p\n",
> - __func__, ASYNC_MSG(event->event),
> + __func__, ib_event_msg(event->event),
> event->device->name, context);
> if (ep->rep_connected == 1) {
> ep->rep_connected = -EIO;
> @@ -172,35 +146,6 @@ rpcrdma_cq_async_error_upcall(struct ib_event *event, void *context)
> }
> }
>
> -static const char * const wc_status[] = {
> - "success",
> - "local length error",
> - "local QP operation error",
> - "local EE context operation error",
> - "local protection error",
> - "WR flushed",
> - "memory management operation error",
> - "bad response error",
> - "local access error",
> - "remote invalid request error",
> - "remote access error",
> - "remote operation error",
> - "transport retry counter exceeded",
> - "RNR retry counter exceeded",
> - "local RDD violation error",
> - "remove invalid RD request",
> - "operation aborted",
> - "invalid EE context number",
> - "invalid EE context state",
> - "fatal error",
> - "response timeout error",
> - "general error",
> -};
> -
> -#define COMPLETION_MSG(status) \
> - ((status) < ARRAY_SIZE(wc_status) ? \
> - wc_status[(status)] : "unexpected completion error")
> -
> static void
> rpcrdma_sendcq_process_wc(struct ib_wc *wc)
> {
> @@ -209,7 +154,7 @@ rpcrdma_sendcq_process_wc(struct ib_wc *wc)
> if (wc->status != IB_WC_SUCCESS &&
> wc->status != IB_WC_WR_FLUSH_ERR)
> pr_err("RPC: %s: SEND: %s\n",
> - __func__, COMPLETION_MSG(wc->status));
> + __func__, ib_wc_status_msg(wc->status));
> } else {
> struct rpcrdma_mw *r;
>
> @@ -302,7 +247,7 @@ out_schedule:
> out_fail:
> if (wc->status != IB_WC_WR_FLUSH_ERR)
> pr_err("RPC: %s: rep %p: %s\n",
> - __func__, rep, COMPLETION_MSG(wc->status));
> + __func__, rep, ib_wc_status_msg(wc->status));
> rep->rr_len = ~0U;
> goto out_schedule;
> }
> @@ -386,31 +331,6 @@ rpcrdma_flush_cqs(struct rpcrdma_ep *ep)
> rpcrdma_sendcq_process_wc(&wc);
> }
>
> -#if IS_ENABLED(CONFIG_SUNRPC_DEBUG)
> -static const char * const conn[] = {
> - "address resolved",
> - "address error",
> - "route resolved",
> - "route error",
> - "connect request",
> - "connect response",
> - "connect error",
> - "unreachable",
> - "rejected",
> - "established",
> - "disconnected",
> - "device removal",
> - "multicast join",
> - "multicast error",
> - "address change",
> - "timewait exit",
> -};
> -
> -#define CONNECTION_MSG(status) \
> - ((status) < ARRAY_SIZE(conn) ? \
> - conn[(status)] : "unrecognized connection error")
> -#endif
> -
> static int
> rpcrdma_conn_upcall(struct rdma_cm_id *id, struct rdma_cm_event *event)
> {
> @@ -476,7 +396,7 @@ connected:
> default:
> dprintk("RPC: %s: %pIS:%u (ep 0x%p): %s\n",
> __func__, sap, rpc_get_port(sap), ep,
> - CONNECTION_MSG(event->event));
> + rdma_event_msg(event->event));
> break;
> }
>
--
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
next prev parent reply other threads:[~2015-05-12 11:04 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-12 10:12 Generic logging helpers [v4] Sagi Grimberg
[not found] ` <1431425527-30114-1-git-send-email-sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-05-12 10:12 ` [PATCH v4 1/2] IB/core, cma: Nice log-friendly string helpers Sagi Grimberg
[not found] ` <1431425527-30114-2-git-send-email-sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-05-12 11:01 ` Yann Droneaud
2015-05-12 11:24 ` Bart Van Assche
2015-05-12 10:12 ` [PATCH v4 2/2] ulps: Align several ULPs to use core/rdma_cm logging helpers Sagi Grimberg
[not found] ` <1431425527-30114-3-git-send-email-sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-05-12 11:04 ` Yann Droneaud [this message]
[not found] ` <1431428675.25060.48.camel-RlY5vtjFyJ3QT0dZR+AlfA@public.gmane.org>
2015-05-12 11:31 ` Sagi Grimberg
[not found] ` <5551E4A0.3050405-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org>
2015-05-12 11:52 ` Yann Droneaud
-- strict thread matches above, loose matches on Subject: below --
2015-05-12 10:09 Generic logging helpers [v4] Sagi Grimberg
[not found] ` <1431425393-26946-1-git-send-email-sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-05-12 10:09 ` [PATCH v4 2/2] ulps: Align several ULPs to use core/rdma_cm logging helpers Sagi Grimberg
2015-05-12 9:41 Generic logging helpers [v4] Sagi Grimberg
[not found] ` <1431423705-3922-1-git-send-email-sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org>
2015-05-12 9:41 ` [PATCH v4 2/2] ulps: Align several ULPs to use core/rdma_cm logging helpers Sagi Grimberg
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1431428675.25060.48.camel@opteya.com \
--to=ydroneaud-rly5vtjfyj3qt0dzr+alfa@public.gmane.org \
--cc=linux-rdma-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=sagig-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org \
--cc=sagig-VPRAkNaXOzVWk0Htik3J/w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox