RE: [PATCH for-next v2 02/11] IB/hfi1: List all receive contexts from debugfs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>-----Original Message-----
>From: Dalessandro, Dennis <dennis.dalessandro@xxxxxxxxx>
>Sent: Tuesday, November 26, 2019 9:12 AM
>To: jgg@xxxxxxxx; dledford@xxxxxxxxxx
>Cc: linux-rdma@xxxxxxxxxxxxxxx; Ruhl, Michael J <michael.j.ruhl@xxxxxxxxx>;
>Marciniszyn, Mike <mike.marciniszyn@xxxxxxxxx>; Wan, Kaike
><kaike.wan@xxxxxxxxx>
>Subject: [PATCH for-next v2 02/11] IB/hfi1: List all receive contexts from
>debugfs
>
>From: Michael J. Ruhl <michael.j.ruhl@xxxxxxxxx>
>
>The current debugfs output for receive contexts (rcds), stops after
>the kernel receive contexts have been displayed.  This is not enough
>information.
>
>Display all of the receive contexts.
>
>Augment the output with some more context information.
>
>Limit the ring buffer header output to 5 entries to avoid
>overextending they sequential file output.

Minor nit:

s/they/the

Mike

>
>Reviewed-by: Dennis Dalessandro <dennis.dalessandro@xxxxxxxxx>
>Reviewed-by: Mike Marciniszyn <mike.marciniszyn@xxxxxxxxx>
>Signed-off-by: Michael J. Ruhl <michael.j.ruhl@xxxxxxxxx>
>Signed-off-by: Kaike Wan <kaike.wan@xxxxxxxxx>
>Signed-off-by: Dennis Dalessandro <dennis.dalessandro@xxxxxxxxx>
>---
> drivers/infiniband/hw/hfi1/debugfs.c |    2 +-
> drivers/infiniband/hw/hfi1/driver.c  |   12 +++++++++---
> 2 files changed, 10 insertions(+), 4 deletions(-)
>
>diff --git a/drivers/infiniband/hw/hfi1/debugfs.c
>b/drivers/infiniband/hw/hfi1/debugfs.c
>index d268bf9..4633a0c 100644
>--- a/drivers/infiniband/hw/hfi1/debugfs.c
>+++ b/drivers/infiniband/hw/hfi1/debugfs.c
>@@ -379,7 +379,7 @@ static void *_rcds_seq_next(struct seq_file *s, void *v,
>loff_t *pos)
> 	struct hfi1_devdata *dd = dd_from_dev(ibd);
>
> 	++*pos;
>-	if (!dd->rcd || *pos >= dd->n_krcv_queues)
>+	if (!dd->rcd || *pos >= dd->num_rcv_contexts)
> 		return NULL;
> 	return pos;
> }
>diff --git a/drivers/infiniband/hw/hfi1/driver.c
>b/drivers/infiniband/hw/hfi1/driver.c
>index cbc5219..8374922 100644
>--- a/drivers/infiniband/hw/hfi1/driver.c
>+++ b/drivers/infiniband/hw/hfi1/driver.c
>@@ -1726,23 +1726,29 @@ static int process_receive_invalid(struct
>hfi1_packet *packet)
> 	return RHF_RCV_CONTINUE;
> }
>
>+#define HFI1_RCVHDR_DUMP_MAX	5
>+
> void seqfile_dump_rcd(struct seq_file *s, struct hfi1_ctxtdata *rcd)
> {
> 	struct hfi1_packet packet;
> 	struct ps_mdata mdata;
>+	int i;
>
>-	seq_printf(s, "Rcd %u: RcvHdr cnt %u entsize %u %s head %llu tail
>%llu\n",
>+	seq_printf(s, "Rcd %u: RcvHdr cnt %u entsize %u %s ctrl 0x%08llx
>status 0x%08llx, head %llu tail %llu  sw head %u\n",
> 		   rcd->ctxt, get_hdrq_cnt(rcd), get_hdrqentsize(rcd),
> 		   get_dma_rtail_setting(rcd) ?
> 		   "dma_rtail" : "nodma_rtail",
>+		   read_kctxt_csr(rcd->dd, rcd->ctxt, RCV_CTXT_CTRL),
>+		   read_kctxt_csr(rcd->dd, rcd->ctxt, RCV_CTXT_STATUS),
> 		   read_uctxt_csr(rcd->dd, rcd->ctxt, RCV_HDR_HEAD) &
> 		   RCV_HDR_HEAD_HEAD_MASK,
>-		   read_uctxt_csr(rcd->dd, rcd->ctxt, RCV_HDR_TAIL));
>+		   read_uctxt_csr(rcd->dd, rcd->ctxt, RCV_HDR_TAIL),
>+		   rcd->head);
>
> 	init_packet(rcd, &packet);
> 	init_ps_mdata(&mdata, &packet);
>
>-	while (1) {
>+	for (i = 0; i < HFI1_RCVHDR_DUMP_MAX; i++) {
> 		__le32 *rhf_addr = (__le32 *)rcd->rcvhdrq + mdata.ps_head
>+
> 					 rcd->rhf_offset;
> 		struct ib_header *hdr;





[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux