From owner-cvs-src@FreeBSD.ORG Tue Apr 15 21:15:32 2008 Return-Path: Delivered-To: cvs-src@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3F5671065670; Tue, 15 Apr 2008 21:15:32 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 2E3B08FC15; Tue, 15 Apr 2008 21:15:32 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m3FLFW1p026346; Tue, 15 Apr 2008 21:15:32 GMT (envelope-from mav@repoman.freebsd.org) Received: (from mav@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m3FLFWnK026345; Tue, 15 Apr 2008 21:15:32 GMT (envelope-from mav) Message-Id: <200804152115.m3FLFWnK026345@repoman.freebsd.org> From: Alexander Motin Date: Tue, 15 Apr 2008 21:15:32 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/netgraph netgraph.h ng_base.c src/sys/netgraph/bluetooth/include ng_bluetooth.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 15 Apr 2008 21:15:32 -0000 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