cvs commit: src/sys/i386/i386 intr_machdep.c io_apic.c src/sys/i386/include intr_machdep.h src/sys/i386/isa atpic.c

Scott Long scottl at FreeBSD.org
Mon Aug 2 08:31:10 PDT 2004


scottl      2004-08-02 15:31:10 UTC

  FreeBSD src repository

  Modified files:
    sys/i386/i386        intr_machdep.c io_apic.c 
    sys/i386/include     intr_machdep.h 
    sys/i386/isa         atpic.c 
  Log:
  Optimize intr_execute_handlers() by combining the pic_disable_source() and
  pic_eoi_source() into one call.  This halves the number of spinlock operations
  and indirect function calls in the normal case of handling a normal (ithread)
  interrupt.  Optimize the atpic and ioapic drivers to use inlines where
  appropriate in supporting the intr_execute_handlers() change.
  
  This knocks 900ns, or roughly 1350 cycles, off of the time spent servicing an
  interrupt in the common case on my 1.5GHz P4 uniprocessor system.  SMP systems
  likely won't see as much of a gain due to the ioapic being more efficient than
  the atpic.  I'll investigate porting this to amd64 soon.
  
  Reviewed by:    jhb
  
  Revision  Changes    Path
  1.9       +1 -2      src/sys/i386/i386/intr_machdep.c
  1.14      +13 -3     src/sys/i386/i386/io_apic.c
  1.5       +7 -1      src/sys/i386/include/intr_machdep.h
  1.18      +50 -21    src/sys/i386/isa/atpic.c


More information about the cvs-all mailing list