cvs commit: src/sys/i386/i386 local_apic.c
jroberson at chesapeake.net
Mon Jan 26 12:08:08 PST 2004
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
> 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