cvs commit: src/sys/i386/i386 local_apic.c
jhb at FreeBSD.org
Mon Jan 26 12:47:23 PST 2004
On Monday 26 January 2004 03:08 pm, Jeff Roberson wrote:
> On Mon, 26 Jan 2004, John Baldwin wrote:
> > On Sunday 25 January 2004 12:03 am, Jeff Roberson wrote:
> > > jeff 2004/01/24 21:03:14 PST
> > >
> > > FreeBSD src repository
> > >
> > > Modified files:
> > > sys/i386/i386 local_apic.c
> > > Log:
> > > - Don't define DETECT_DEADLOCK. I don't know that this code has
> > > detected a deadlock in several years. Furthermore, the IPI code is
> > > currently protected by a seperate spinlock. This only served to make
> > > IPIs twice as expensive as they had to be which severely slowed down
> > > the IPI heavy ULE scheduler.
> > What spinlock?
> Er, based on earlier conversations with you I was under the assumption
> that there was a lock around all of the ipi sender code. I must have this
> confused with something else.
> > > grep mtx local_apic.c | wc -l
> > 0
> > Some users of the ipi API use a spinlock themselves, but not all, and
> > there certainly isn't a global ipi spin lock. According to witness, only
> > sparc64 has an ipi spin lock. It might still be a good idea to turn this
> > off or perhaps at least half of it. We will lose ipi's on non-XAPIC
> > systems if you don't wait for the delivery status to clear before sending
> > an IPI. Have you tested this on Pentium II's or earlier?
> My original patch did still poll before transmit. I'll correct this.
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-all