[dpdk-dev] [PATCH v2 4/4] bus/vmbus: improve debug output

Stephen Hemminger stephen at networkplumber.org
Wed May 6 21:52:21 CEST 2020


Make debug output more compact. Don't print pending size
or interrupt mask for the transmit side (not applicable).

Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
 drivers/bus/vmbus/vmbus_channel.c | 42 +++++++++++++++++++------------
 1 file changed, 26 insertions(+), 16 deletions(-)

diff --git a/drivers/bus/vmbus/vmbus_channel.c b/drivers/bus/vmbus/vmbus_channel.c
index ff2985c25758..5df7deadd3f1 100644
--- a/drivers/bus/vmbus/vmbus_channel.c
+++ b/drivers/bus/vmbus/vmbus_channel.c
@@ -421,26 +421,36 @@ void rte_vmbus_chan_close(struct vmbus_channel *chan)
 static void vmbus_dump_ring(FILE *f, const char *id, const struct vmbus_br *br)
 {
 	const struct vmbus_bufring *vbr = br->vbr;
-	struct vmbus_chanpkt_hdr pkt;
 
-	fprintf(f, "%s windex=%u rindex=%u mask=%u pending=%u feature=%#x\n",
-		id, vbr->windex, vbr->rindex, vbr->imask,
-		vbr->pending_send, vbr->feature_bits.value);
-	fprintf(f, " size=%u avail write=%u read=%u\n",
-		br->dsize, vmbus_br_availwrite(br, vbr->windex),
+	fprintf(f, "%s index=%u/%u  avail=%u/%u\n",
+		id, vbr->windex, vbr->rindex,
+		vmbus_br_availwrite(br, vbr->windex),
 		vmbus_br_availread(br));
-
-	if (vmbus_rxbr_peek(br, &pkt, sizeof(pkt)) == 0)
-		fprintf(f, "  pkt type %#x len %u flags %#x xactid %#"PRIx64"\n",
-			pkt.type,
-			pkt.tlen << VMBUS_CHANPKT_SIZE_SHIFT,
-			pkt.flags, pkt.xactid);
 }
 
 void rte_vmbus_chan_dump(FILE *f, const struct vmbus_channel *chan)
 {
-	fprintf(f, "channel[%u] relid=%u monitor=%u\n",
-		chan->subchannel_id, chan->relid, chan->monitor_id);
-	vmbus_dump_ring(f, "rxbr", &chan->rxbr);
-	vmbus_dump_ring(f, "txbr", &chan->txbr);
+	const struct vmbus_br *rbr = &chan->rxbr;
+	const struct vmbus_bufring *vbr = rbr->vbr;
+	struct vmbus_chanpkt_hdr pkt;
+
+	fprintf(f, "chan %u: relid=%u mask=%u",
+		chan->subchannel_id, chan->relid, vbr->imask);
+
+	if (vbr->feature_bits.feat_pending_send_sz)
+		fprintf(f, " pending_sz=%u\n",
+			vbr->pending_send);
+	else
+		fprintf(f, "\n");
+
+	vmbus_dump_ring(f, "    tx", &chan->txbr);
+	vmbus_dump_ring(f, "    rx", rbr);
+
+	/* show first packet if any from host */
+	if (vmbus_rxbr_peek(rbr, &pkt, sizeof(pkt)))
+		return;
+
+	fprintf(f, "[pkt type %#x len %u flags %#x xactid %#"PRIx64"]\n",
+		pkt.type, pkt.tlen << VMBUS_CHANPKT_SIZE_SHIFT,
+		pkt.flags, pkt.xactid);
 }
-- 
2.20.1



More information about the dev mailing list