From owner-cvs-all@FreeBSD.ORG Wed Feb 9 19:21:50 2005 Return-Path: Delivered-To: cvs-all@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 978FD16A4CE; Wed, 9 Feb 2005 19:21:50 +0000 (GMT) Received: from pooker.samsco.org (pooker.samsco.org [168.103.85.57]) by mx1.FreeBSD.org (Postfix) with ESMTP id DB62A43D1D; Wed, 9 Feb 2005 19:21:49 +0000 (GMT) (envelope-from scottl@freebsd.org) Received: from [192.168.254.12] (g4.samsco.home [192.168.254.12]) (authenticated bits=0) by pooker.samsco.org (8.13.1/8.13.1) with ESMTP id j19JM3GJ011078; Wed, 9 Feb 2005 12:22:03 -0700 (MST) (envelope-from scottl@freebsd.org) Message-ID: <420A62C9.80405@freebsd.org> Date: Wed, 09 Feb 2005 12:21:45 -0700 From: Scott Long User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7) Gecko/20040514 X-Accept-Language: en-us, en MIME-Version: 1.0 To: John Baldwin References: <200502082025.j18KP72E069507@repoman.freebsd.org> <20050209041221.GA16675@dragon.nuxi.com> <200502091353.10200.jhb@FreeBSD.org> In-Reply-To: <200502091353.10200.jhb@FreeBSD.org> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-2.8 required=3.8 tests=ALL_TRUSTED autolearn=failed version=3.0.2 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on pooker.samsco.org cc: cvs-src@freebsd.org cc: src-committers@freebsd.org cc: cvs-all@freebsd.org cc: obrien@freebsd.org Subject: Re: cvs commit: src/sys/i386/i386 apic_vector.s local_apic.cmp_machdep.c src/sys/i386/include apicvar.h smp.h src/sys/i386/isa clock.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Feb 2005 19:21:50 -0000 John Baldwin wrote: > On Tuesday 08 February 2005 11:12 pm, David O'Brien wrote: > >>On Tue, Feb 08, 2005 at 08:25:07PM +0000, John Baldwin wrote: >> >>>jhb 2005-02-08 20:25:07 UTC >>> >>> FreeBSD src repository >>> >>> Modified files: >>> sys/i386/i386 apic_vector.s local_apic.c mp_machdep.c >>> sys/i386/include apicvar.h smp.h >>> sys/i386/isa clock.c >>> Log: >>> Use the local APIC timer to drive the various kernel clocks on SMP >>>machines rather than forwarding interrupts from the clock devices around >>>using IPIs: - Add an IDT vector that pushes a clock frame and calls >>> lapic_handle_timer(). >> >>What is the performance improvement of this? What benchmark is used to >>show a benefit? > > > Getting rid of these two IPIs means that no IPI handlers now need to access > spinlocks and we will now be able to look at allowing IPIs to fire while > spinlocks are held thus reducing latency for TLB shootdowns, etc. Also, > making the clock stuff a little less synchronized (more like Alpha FWIW) > should reduce contention on sched_lock since {hard,stat,prof}clock() all bang > on sched_lock (i.e. all the CPUs don't always run fooclock() at the same > exact time now). Also, by removing the need for functioning clocks when > using the APIC, we don't really have to care as much if the RTC and ISA timer > interrupts really work anymore when using an APIC (though I keep the "real" > clocks on UP systems for now). > > I did not do any formal benchmarks, however and I don't think anyone else who > tested this did either. Of course, I also posted these patches several weeks > ago and hardly anyone bothered to test them then (same for the spinlock_* > patches as well). I can go work on some buildworld loop benchmarks though as > I haven't integ'd this into my work trees yet so I still have a base to > compare against. > I did some testing under an earlier version of this work and found no appreciable change in things like I/O and network thoroughput. What you committed is actually more efficient, so there might indeed be a (small) gain. Scott