From 75c3ead8b33b7b9b6000e8d434832d71857af12e Mon Sep 17 00:00:00 2001 From: Vinay Shaw Date: Fri, 3 Jun 2016 00:32:15 +0200 Subject: [PATCH] sif: qp/ah: Added XRC QPs & IPD(AH) to debugfs output Signed-off-by: Vinay Shaw Reviewed-by: Knut Omang --- drivers/infiniband/hw/sif/sif_ah.c | 6 +++--- drivers/infiniband/hw/sif/sif_qp.c | 23 +++++++++++++++++++---- 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/drivers/infiniband/hw/sif/sif_ah.c b/drivers/infiniband/hw/sif/sif_ah.c index 6d76057b43c9..5a7f16761eaf 100644 --- a/drivers/infiniband/hw/sif/sif_ah.c +++ b/drivers/infiniband/hw/sif/sif_ah.c @@ -154,13 +154,13 @@ void sif_dfs_print_ah(struct seq_file *s, struct sif_dev *sdev, loff_t pos) { if (unlikely(pos < 0)) - seq_puts(s, "# Index Port PD Rem.lid\n"); + seq_puts(s, "# Index Port PD Rem.lid IPD\n"); else { struct psif_ah *ah_p = get_ah(sdev, pos); struct psif_ah lah; copy_conv_to_sw(&lah, ah_p, sizeof(struct psif_ah)); - seq_printf(s, "%7lld %5d %5d %7d\n", - pos, lah.port + 1, lah.pd, lah.remote_lid); + seq_printf(s, "%7lld %5d %5d %7d%5d\n", + pos, lah.port + 1, lah.pd, lah.remote_lid, lah.ipd); } } diff --git a/drivers/infiniband/hw/sif/sif_qp.c b/drivers/infiniband/hw/sif/sif_qp.c index f804b27baee1..b0733dbb01bc 100644 --- a/drivers/infiniband/hw/sif/sif_qp.c +++ b/drivers/infiniband/hw/sif/sif_qp.c @@ -2393,6 +2393,8 @@ void sif_dfs_print_qp(struct seq_file *s, struct sif_dev *sdev, loff_t pos) { struct sif_qp *qp; + struct sif_sq *sq; + struct sif_rq *rq; volatile struct psif_qp *qps; struct psif_qp lqps; @@ -2408,17 +2410,26 @@ void sif_dfs_print_qp(struct seq_file *s, struct sif_dev *sdev, if (pos <= 3 && atomic_read(&sdev->sqp_usecnt[pos]) != 1) return; + sq = get_sq(sdev, qp); + rq = get_rq(sdev, qp); + seq_printf(s, "%llu\t%d\t", pos, qp->last_set_state); - if (qp->rq_idx == -1) + if (!rq) seq_puts(s, "[none]"); else seq_printf(s, "%u", lqps.state.rcv_cq_indx); - seq_printf(s, "\t%u\t", lqps.state.send_cq_indx); - - if (qp->rq_idx == -1) + if (!sq) seq_puts(s, "[none]"); + else + seq_printf(s, "\t%u\t", lqps.state.send_cq_indx); + + if (!rq) + if (!sq) + seq_puts(s, "\t[none]"); + else + seq_puts(s, "[none]"); else seq_printf(s, "%u", lqps.state.rq_indx); @@ -2457,6 +2468,10 @@ void sif_dfs_print_qp(struct seq_file *s, struct sif_dev *sdev, seq_puts(s, "\t[GSI_QP_P1]\n"); else seq_puts(s, "\t[GSI_QP_P2]\n"); + else if (qp->ibqp.qp_type == IB_QPT_XRC_TGT) + seq_puts(s, "\t[RECV]\n"); + else if (qp->ibqp.qp_type == IB_QPT_XRC_INI) + seq_puts(s, "\t[SEND]\n"); else seq_puts(s, "\n"); } -- 2.50.1