PERFORCE change 196777 for review
Takuya ASADA
syuu at FreeBSD.org
Wed Jul 27 07:33:24 UTC 2011
http://p4web.freebsd.org/@@196777?ac=10
Change 196777 by syuu at kikurage on 2011/07/27 07:32:47
defined macro for tracker
Affected files ...
.. //depot/projects/soc2011/mq_bpf/src/sys/net/bpf.c#19 edit
.. //depot/projects/soc2011/mq_bpf/src/sys/net/bpfdesc.h#8 edit
Differences ...
==== //depot/projects/soc2011/mq_bpf/src/sys/net/bpf.c#19 (text+ko) ====
@@ -2107,10 +2107,10 @@
#endif
u_int slen;
int gottime;
- struct rm_priotracker tracker;
+ BPFIF_DEF_TRACKER(if_tracker);
gottime = BPF_TSTAMP_NONE;
- BPFIF_RLOCK(bp, &tracker);
+ BPFIF_RLOCK(bp, &if_tracker);
LIST_FOREACH(d, &bp->bif_dlist, bd_next) {
BPFD_LOCK(d);
if (d->bd_qmask.qm_enabled) {
@@ -2146,7 +2146,7 @@
}
BPFD_UNLOCK(d);
}
- BPFIF_RUNLOCK(bp, &tracker);
+ BPFIF_RUNLOCK(bp, &if_tracker);
}
#define BPF_CHECK_DIRECTION(d, r, i) \
@@ -2163,7 +2163,8 @@
#endif
u_int pktlen, slen;
int gottime;
- struct rm_priotracker tracker;
+ BPFIF_DEF_TRACKER(if_tracker);
+ BPFQ_DEF_TRACKER(qm_tracker);
/* Skip outgoing duplicate packets. */
if ((m->m_flags & M_PROMISC) != 0 && m->m_pkthdr.rcvif == NULL) {
@@ -2174,10 +2175,8 @@
pktlen = m_length(m, NULL);
gottime = BPF_TSTAMP_NONE;
- BPFIF_RLOCK(bp, &tracker);
+ BPFIF_RLOCK(bp, &if_tracker);
LIST_FOREACH(d, &bp->bif_dlist, bd_next) {
- struct rm_priotracker qm_tracker;
-
BPFQ_RLOCK(&d->bd_qmask, &qm_tracker);
if (d->bd_qmask.qm_enabled) {
M_ASSERTPKTHDR(m);
@@ -2192,7 +2191,7 @@
if (m->m_pkthdr.rxqueue >= ifp->if_get_rxqueue_len(ifp)) {
log(LOG_DEBUG, "invalid rxqueue:%d len:%d\n", m->m_pkthdr.rxqueue, ifp->if_get_rxqueue_len(ifp));
BPFQ_RUNLOCK(&d->bd_qmask, &qm_tracker);
- BPFIF_RUNLOCK(bp, &tracker);
+ BPFIF_RUNLOCK(bp, &if_tracker);
return;
}
if (!d->bd_qmask.qm_rxq_mask[m->m_pkthdr.rxqueue]) {
@@ -2204,7 +2203,7 @@
if (m->m_pkthdr.txqueue >= ifp->if_get_txqueue_len(ifp)) {
log(LOG_DEBUG, "invalid txqueue:%d len:%d\n", m->m_pkthdr.txqueue, ifp->if_get_txqueue_len(ifp));
BPFQ_RUNLOCK(&d->bd_qmask, &qm_tracker);
- BPFIF_RUNLOCK(bp, &tracker);
+ BPFIF_RUNLOCK(bp, &if_tracker);
return;
}
if (!d->bd_qmask.qm_txq_mask[m->m_pkthdr.txqueue]) {
@@ -2240,7 +2239,7 @@
}
BPFD_UNLOCK(d);
}
- BPFIF_RUNLOCK(bp, &tracker);
+ BPFIF_RUNLOCK(bp, &if_tracker);
}
/*
@@ -2255,7 +2254,8 @@
struct bpf_d *d;
u_int pktlen, slen;
int gottime;
- struct rm_priotracker tracker;
+ BPFIF_DEF_TRACKER(if_tracker);
+ BPFQ_DEF_TRACKER(qm_tracker);
/* Skip outgoing duplicate packets. */
if ((m->m_flags & M_PROMISC) != 0 && m->m_pkthdr.rcvif == NULL) {
@@ -2275,10 +2275,8 @@
pktlen += dlen;
gottime = BPF_TSTAMP_NONE;
- BPFIF_RLOCK(bp, &tracker);
+ BPFIF_RLOCK(bp, &if_tracker);
LIST_FOREACH(d, &bp->bif_dlist, bd_next) {
- struct rm_priotracker qm_tracker;
-
BPFQ_RLOCK(&d->bd_qmask, &qm_tracker);
if (d->bd_qmask.qm_enabled) {
M_ASSERTPKTHDR(m);
@@ -2293,7 +2291,7 @@
if (m->m_pkthdr.rxqueue >= ifp->if_get_rxqueue_len(ifp)) {
log(LOG_DEBUG, "invalid rxqueue:%d len:%d\n", m->m_pkthdr.rxqueue, ifp->if_get_rxqueue_len(ifp));
BPFQ_RUNLOCK(&d->bd_qmask, &qm_tracker);
- BPFIF_RUNLOCK(bp, &tracker);
+ BPFIF_RUNLOCK(bp, &if_tracker);
return;
}
if (!d->bd_qmask.qm_rxq_mask[m->m_pkthdr.rxqueue]) {
@@ -2305,7 +2303,7 @@
if (m->m_pkthdr.txqueue >= ifp->if_get_txqueue_len(ifp)) {
log(LOG_DEBUG, "invalid txqueue:%d len:%d\n", m->m_pkthdr.txqueue, ifp->if_get_txqueue_len(ifp));
BPFQ_RUNLOCK(&d->bd_qmask, &qm_tracker);
- BPFIF_RUNLOCK(bp, &tracker);
+ BPFIF_RUNLOCK(bp, &if_tracker);
return;
}
if (!d->bd_qmask.qm_txq_mask[m->m_pkthdr.txqueue]) {
@@ -2334,7 +2332,7 @@
}
BPFD_UNLOCK(d);
}
- BPFIF_RUNLOCK(bp, &tracker);
+ BPFIF_RUNLOCK(bp, &if_tracker);
}
#undef BPF_CHECK_DIRECTION
@@ -2759,11 +2757,11 @@
{
struct bpf_if *bp;
struct bpf_d *bd;
- struct rm_priotracker tracker;
+ BPFIF_DEF_TRACKER(if_tracker);
mtx_lock(&bpf_mtx);
LIST_FOREACH(bp, &bpf_iflist, bif_next) {
- BPFIF_RLOCK(bp, &tracker);
+ BPFIF_RLOCK(bp, &if_tracker);
LIST_FOREACH(bd, &bp->bif_dlist, bd_next) {
BPFD_LOCK(bd);
bd->bd_rcount = 0;
@@ -2774,7 +2772,7 @@
bd->bd_zcopy = 0;
BPFD_UNLOCK(bd);
}
- BPFIF_RUNLOCK(bp, &tracker);
+ BPFIF_RUNLOCK(bp, &if_tracker);
}
mtx_unlock(&bpf_mtx);
}
@@ -2817,7 +2815,7 @@
int index, error;
struct bpf_if *bp;
struct bpf_d *bd;
- struct rm_priotracker tracker;
+ BPFIF_DEF_TRACKER(if_tracker);
/*
* XXX This is not technically correct. It is possible for non
@@ -2856,14 +2854,14 @@
}
index = 0;
LIST_FOREACH(bp, &bpf_iflist, bif_next) {
- BPFIF_RLOCK(bp, &tracker);
+ BPFIF_RLOCK(bp, &if_tracker);
LIST_FOREACH(bd, &bp->bif_dlist, bd_next) {
xbd = &xbdbuf[index++];
BPFD_LOCK(bd);
bpfstats_fill_xbpf(xbd, bd);
BPFD_UNLOCK(bd);
}
- BPFIF_RUNLOCK(bp, &tracker);
+ BPFIF_RUNLOCK(bp, &if_tracker);
}
mtx_unlock(&bpf_mtx);
error = SYSCTL_OUT(req, xbdbuf, index * sizeof(*xbd));
==== //depot/projects/soc2011/mq_bpf/src/sys/net/bpfdesc.h#8 (text+ko) ====
@@ -58,6 +58,7 @@
#define BPFQ_LOCK_INIT(qm, d) \
rm_init_flags(&(qm)->qm_lock, (d), RM_NOWITNESS | RM_RECURSE);
#define BPFQ_LOCK_DESTROY(qm) rm_destroy(&(qm)->qm_lock)
+#define BPFQ_DEF_TRACKER(name) struct rm_priotracker name
#define BPFQ_RLOCK(qm, tracker) rm_rlock(&(qm)->qm_lock, (tracker))
#define BPFQ_RUNLOCK(qm, tracker) rm_runlock(&(qm)->qm_lock, (tracker))
#define BPFQ_WLOCK(qm) rm_wlock(&(qm)->qm_lock)
@@ -166,6 +167,7 @@
#define BPFIF_LOCK_INIT(bif, d) \
rm_init_flags(&(bif)->bif_lock, (d), RM_NOWITNESS | RM_RECURSE);
#define BPFIF_LOCK_DESTROY(bif) rm_destroy(&(bif)->bif_lock)
+#define BPFIF_DEF_TRACKER(name) struct rm_priotracker name
#define BPFIF_RLOCK(bif, tracker) rm_rlock(&(bif)->bif_lock, (tracker))
#define BPFIF_RUNLOCK(bif, tracker) rm_runlock(&(bif)->bif_lock, (tracker))
#define BPFIF_WLOCK(bif) rm_wlock(&(bif)->bif_lock)
More information about the p4-projects
mailing list