Skip site navigation (1)Skip section navigation (2)
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>