Date: Mon, 6 Jun 2011 02:31:42 +0900 From: Takuya ASADA <syuu@dokukino.com> To: soc-status@freebsd.org Cc: "Robert N. M. Watson" <rwatson@freebsd.org>, George Neville-Neil <gnn@freebsd.org>, Kazuya Goda <gockzy@gmail.com> Subject: Weekly status report (6th June) Message-ID: <BANLkTimN3Qr9F3tu=igBGakwqEav%2B1ad7w@mail.gmail.com>
index | next in thread | raw e-mail
[-- Attachment #1 --] Sorry (again) for delaying weekly status report, here's status update from last week: * Submitted http://p4web.freebsd.org/@@194133?ac=10 Clear bit ioctls added (BIOCCRRXQMASK, BIOCCRTXQMASK, BIOCCROTHERQMASK) This enables to clear mask bit. http://p4web.freebsd.org/@@194138?ac=10 index size check on ioctl Just bug fix http://p4web.freebsd.org/@@194139?ac=10 implement queue affinity ioctl Now BIOCRXQAFFINITY/BIOCTXQAFFINITY are implemented. Also em(4) support added. http://p4web.freebsd.org/@@194258?ac=10 debug log in bpf_mtap caused panic, commented out Just bug fix http://p4web.freebsd.org/@@194262?ac=10 get queue affinity test code added. Simple test code for BIOCRXQLEN/BIOCTXQLEN/BIOCRXQAFFINITY/BIOCTXQAFFINITY. * Not submitted yet To reduce lock contention in bpf_*tap*, I'm trying to replace BPFIF_LOCK from mtx to rmlock. Right now it doesn't work and not yet to find out why. Diff attached this mail. [-- Attachment #2 --] ==== //depot/projects/soc2011/mq_bpf/src/sys/net/bpf.c#5 - /usr/home/syuu/p4/mq_bpf/src/sys/net/bpf.c ==== 579c579 < BPFIF_LOCK(bp); --- > BPFIF_WLOCK(bp); 584c584 < BPFIF_UNLOCK(bp); --- > BPFIF_WUNLOCK(bp); 600c600 < BPFIF_LOCK(bp); --- > BPFIF_WLOCK(bp); 612c612 < BPFIF_UNLOCK(bp); --- > BPFIF_WUNLOCK(bp); 2141a2142 > struct rm_priotracker tracker; 2144c2145 < BPFIF_LOCK(bp); --- > BPFIF_RLOCK(bp, &tracker); 2180c2181 < BPFIF_UNLOCK(bp); --- > BPFIF_RUNLOCK(bp, &tracker); 2196a2198 > struct rm_priotracker tracker; 2214c2216 < BPFIF_LOCK(bp); --- > BPFIF_RLOCK(bp, &tracker); 2253c2255 < BPFIF_UNLOCK(bp); --- > BPFIF_RUNLOCK(bp, &tracker); 2267a2270 > struct rm_priotracker tracker; 2294c2297 < BPFIF_LOCK(bp); --- > BPFIF_RLOCK(bp, &tracker); 2326c2329 < BPFIF_UNLOCK(bp); --- > BPFIF_RUNLOCK(bp, &tracker); 2603c2606 < mtx_init(&bp->bif_mtx, "bpf interface lock", NULL, MTX_DEF); --- > rm_init_flags(&bp->bif_lock, "bpf interface lock", RM_NOWITNESS); 2653c2656 < mtx_destroy(&bp->bif_mtx); --- > rm_destroy(&bp->bif_lock); 2750a2754 > struct rm_priotracker tracker; 2754c2758 < BPFIF_LOCK(bp); --- > BPFIF_RLOCK(bp, &tracker); 2765c2769 < BPFIF_UNLOCK(bp); --- > BPFIF_RUNLOCK(bp, &tracker); 2807a2812 > struct rm_priotracker tracker; 2846c2851 < BPFIF_LOCK(bp); --- > BPFIF_RLOCK(bp, &tracker); 2853c2858 < BPFIF_UNLOCK(bp); --- > BPFIF_RUNLOCK(bp, &tracker); ==== //depot/projects/soc2011/mq_bpf/src/sys/net/bpf.h#3 - /usr/home/syuu/p4/mq_bpf/src/sys/net/bpf.h ==== 42a43,45 > #include <sys/lock.h> > #include <sys/rmlock.h> > 1117c1120 < struct mtx bif_mtx; /* mutex for interface */ --- > struct rmlock bif_lock; /* rmlock for interface */ ==== //depot/projects/soc2011/mq_bpf/src/sys/net/bpfdesc.h#2 - /usr/home/syuu/p4/mq_bpf/src/sys/net/bpfdesc.h ==== 155,156c155,158 < #define BPFIF_LOCK(bif) mtx_lock(&(bif)->bif_mtx) < #define BPFIF_UNLOCK(bif) mtx_unlock(&(bif)->bif_mtx) --- > #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) > #define BPFIF_WUNLOCK(bif) rm_wunlock(&(bif)->bif_lock)home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTimN3Qr9F3tu=igBGakwqEav%2B1ad7w>
