Date: Sat, 22 Nov 2008 08:48:01 +0000 (UTC) From: Kip Macy <kmacy@FreeBSD.org> To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r185167 - in user/kmacy/HEAD_fast_multi_xmit/sys: dev/cxgb sys Message-ID: <200811220848.mAM8m1QJ011461@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kmacy Date: Sat Nov 22 08:48:01 2008 New Revision: 185167 URL: http://svn.freebsd.org/changeset/base/185167 Log: add buf ring counter for debugging Modified: user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb/cxgb_sge.c user/kmacy/HEAD_fast_multi_xmit/sys/sys/buf_ring.h Modified: user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb/cxgb_sge.c ============================================================================== --- user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb/cxgb_sge.c Sat Nov 22 08:46:16 2008 (r185166) +++ user/kmacy/HEAD_fast_multi_xmit/sys/dev/cxgb/cxgb_sge.c Sat Nov 22 08:48:01 2008 (r185167) @@ -3513,22 +3513,19 @@ t3_add_configured_sysctls(adapter_t *sc) SYSCTL_ADD_PROC(ctx, rspqpoidlist, OID_AUTO, "qdump", CTLTYPE_STRING | CTLFLAG_RD, &qs->rspq, 0, t3_dump_rspq, "A", "dump of the response queue"); +#ifdef DEBUG_BUFRING - + SYSCTL_ADD_INT(ctx, txqpoidlist, OID_AUTO, + "buffered_count", CTLFLAG_RD, + &qs->txq[TXQ_ETH].txq_mr->br_count, + 0, "#buf ring packets enqueued"); +#endif SYSCTL_ADD_INT(ctx, txqpoidlist, OID_AUTO, "dropped", CTLFLAG_RD, &qs->txq[TXQ_ETH].txq_drops, 0, "#tunneled packets dropped"); SYSCTL_ADD_INT(ctx, txqpoidlist, OID_AUTO, "sendqlen", CTLFLAG_RD, &qs->txq[TXQ_ETH].sendq.qlen, 0, "#tunneled packets waiting to be sent"); -#if 0 - SYSCTL_ADD_UINT(ctx, txqpoidlist, OID_AUTO, "queue_pidx", - CTLFLAG_RD, (uint32_t *)(uintptr_t)&qs->txq[TXQ_ETH].txq_mr.br_prod, - 0, "#tunneled packets queue producer index"); - SYSCTL_ADD_UINT(ctx, txqpoidlist, OID_AUTO, "queue_cidx", - CTLFLAG_RD, (uint32_t *)(uintptr_t)&qs->txq[TXQ_ETH].txq_mr.br_cons, - 0, "#tunneled packets queue consumer index"); -#endif SYSCTL_ADD_INT(ctx, txqpoidlist, OID_AUTO, "processed", CTLFLAG_RD, &qs->txq[TXQ_ETH].processed, 0, "#tunneled packets processed by the card"); Modified: user/kmacy/HEAD_fast_multi_xmit/sys/sys/buf_ring.h ============================================================================== --- user/kmacy/HEAD_fast_multi_xmit/sys/sys/buf_ring.h Sat Nov 22 08:46:16 2008 (r185166) +++ user/kmacy/HEAD_fast_multi_xmit/sys/sys/buf_ring.h Sat Nov 22 08:48:01 2008 (r185167) @@ -56,6 +56,8 @@ #error "unknown compiler" #endif +#define DEBUG_BUFRING 1 + #if defined(INVARIANTS) && !defined(DEBUG_BUFRING) #define DEBUG_BUFRING 1 #endif @@ -86,6 +88,7 @@ struct buf_ring { uint64_t _pad1[14]; #ifdef DEBUG_BUFRING struct mtx *br_lock; + uint32_t br_count; #endif void *br_ring[0]; }; @@ -123,7 +126,9 @@ buf_ring_enqueue(struct buf_ring *br, vo #ifdef DEBUG_BUFRING if (br->br_ring[prod_head] != NULL) panic("dangling value in enqueue"); -#endif + + atomic_add_int(&br->br_count, 1); +#endif br->br_ring[prod_head] = buf; wmb(); @@ -171,6 +176,7 @@ buf_ring_dequeue_mc(struct buf_ring *br) buf = br->br_ring[cons_head]; #ifdef DEBUG_BUFRING br->br_ring[cons_head] = NULL; + atomic_subtract_int(&br->br_count, 1); #endif mb(); @@ -216,6 +222,7 @@ buf_ring_dequeue_sc(struct buf_ring *br) mb(); #ifdef DEBUG_BUFRING + atomic_subtract_int(&br->br_count, 1); br->br_ring[cons_head] = NULL; if (!mtx_owned(br->br_lock)) panic("lock not held on single consumer dequeue");
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200811220848.mAM8m1QJ011461>