Date: Tue, 15 Apr 2008 21:15:32 +0000 (UTC) From: Alexander Motin <mav@FreeBSD.org> To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/netgraph netgraph.h ng_base.c src/sys/netgraph/bluetooth/include ng_bluetooth.h Message-ID: <200804152115.m3FLFWnK026345@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200804152115.m3FLFWnK026345>