cvs commit: src/sys/netgraph netgraph.h ng_base.c
src/sys/netgraph/bluetooth/include ng_bluetooth.h
Alexander Motin
mav at FreeBSD.org
Tue Apr 15 21:15:32 UTC 2008
mav 2008-04-15 21:15:32 UTC
FreeBSD src repository
Modified files:
sys/netgraph netgraph.h ng_base.c
sys/netgraph/bluetooth/include ng_bluetooth.h
Log:
Several changes breaking netgraph module ABI collected together:
- reorder structures fields (XX_refs) a bit to group fields modified
same time together. According to my tests it gives up to 10%
SMP performance benefit on real workload due to reduced inter-CPU
cache trashing.
- change q_flags from long to int as long is not really needed there and
it's usage with atomics is argued by some people.
- move NGF_WORKQ flag into the separate field q_flags2 as it protected by
queue mutex instead of node writer protection used by the rest of flags.
- move nd_work queue entry to ng_queue structure to which it is more
related and make it STAILQ instead of TAILQ as now it is a classic FIFO.
- remove q_node pointer from ng_queue structure as it is not really needed.
- reimplement item queue using STAILQ instead of own equal implementation.
As soon as BT subsystem has own item queues using ng_item.el_next update
it also.
- change depth field in ng_item from uintptr_t to u_int. It was made
uintptr_t to keep ABI compatibility.
Reviewed by: julian, emax
Tested with: Netperf cluster
Revision Changes Path
1.5 +15 -23 src/sys/netgraph/bluetooth/include/ng_bluetooth.h
1.73 +9 -12 src/sys/netgraph/netgraph.h
1.157 +91 -104 src/sys/netgraph/ng_base.c
More information about the cvs-src
mailing list