cvs commit: src/sys/i386/i386 apic_vector.s local_apic.c
mp_machdep.c src/sys/i386/include apicvar.h smp.h src/sys/i386/isa
clock.c
John Baldwin
jhb at FreeBSD.org
Wed Feb 9 18:52:29 GMT 2005
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.
Speaking of benchmarks, how about testing the patches I posted to amd64@?
Specifically, how about benchmarking the atomic patch to change membars to
use the fence instructions?
--
John Baldwin <jhb at FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve" = http://www.FreeBSD.org
More information about the cvs-src
mailing list