SMP Status Report for review

John Baldwin jhb at FreeBSD.org
Tue Jan 27 12:22:05 PST 2004


Scott has asked for status reports covering October through December of 2003.  
I've included a start below.  If anyone has suggestions for improvement or 
things that I've missed (likely), please let me know.  Thanks.

  <project>
    <title>SMPng Status Report</title>

    <contact>
      <person>
        <name>
          <given>John</given>

          <common>Baldwin</common>
        </name>

        <email>jhb at FreeBSD.org</email>
      </person>

      <person>
        <email>smp at FreeBSD.org</email>
      </person>
    </contact>

    <links>
      <url href="http://www.FreeBSD.org/smp/" />
    </links>

    <body>
      <p>Work is progressing on SMPng on several different fronts.  Sam
        Leffler and several other folks have been working on locking the
        network stack as mentioned elsewhere in this update.  Several
        infrastructure improvements have been made in the past few months
        as well.</p>

      <p>The low-level interrupt code for the i386 architecture has been
        redesigned to allow for a runtime selection between different types
        of interrupt controllers.  This work allows the Advanced Programmable
        Interrupt Controllers (APICs) to be used instead of the AT 8259A PIC
        without having to compile a separate kernel to do so.  It also allows
        the APIC to be used in a UP kernel as well as on a UP box.  Together,
        all these changes allow an SMP kernel to work on a UP box and thus
        allowed SMP to be enabled in GENERIC as it already is on all of the
        other supported architectures.  This work also reworked the APIC
        support to correctly route PCI interrupts when using an APIC to
        service device interrupts.  This work was also used to add SMP support
        to the amd64 port.</p>

      <p>A turnstile implementation was committed that implemented a queue
        of threads blocked on a resource along with priority inheritance of
        blocked threads to the owner of the resource.  Turnstiles were then
        used to replace the thread queue built into each mutex object which
        shrunk the size of each mutex as well as reduced the use of the
        sched_lock spin mutex.</p>
  </project>

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