cvs commit: src/sys/i386/i386 local_apic.c

Jeff Roberson 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
>        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.

Thanks,
Jeff

>
> --
> 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 mailing list