diff options
author | mav <mav@FreeBSD.org> | 2008-04-15 21:15:32 +0000 |
---|---|---|
committer | mav <mav@FreeBSD.org> | 2008-04-15 21:15:32 +0000 |
commit | 9ed14d3ac1062059f90ad8a3f47c3b7ecf2b4db9 (patch) | |
tree | f4c5e462487e00fa80b6e4128d4d881ce05227af /lib/libthr/thread/thr_sig.c | |
parent | 17592597420bddf1004fcfa1a8707155cbe78ab0 (diff) | |
download | FreeBSD-src-9ed14d3ac1062059f90ad8a3f47c3b7ecf2b4db9.zip FreeBSD-src-9ed14d3ac1062059f90ad8a3f47c3b7ecf2b4db9.tar.gz |
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
Diffstat (limited to 'lib/libthr/thread/thr_sig.c')
0 files changed, 0 insertions, 0 deletions