cvs commit: src/sys/kern kern_intr.c lwkt_serialize.c subr_taskqueue.c src/sys/sys bus.h interrupt.h serialize.h thread.h src/sys/bus/cam cam_xpt.c src/sys/bus/isa/i386 isa_device.h src/sys/dev/disk/ata ata-all.c src/sys/dev/disk/mcd ...

Matthew Dillon dillon at crater.dragonflybsd.org
Wed Oct 12 17:03:44 PDT 2005


dillon      2005/10/12 17:02:48 PDT

DragonFly src repository

  Modified files:
    sys/kern             kern_intr.c lwkt_serialize.c 
                         subr_taskqueue.c 
    sys/sys              bus.h interrupt.h serialize.h thread.h 
    sys/bus/cam          cam_xpt.c 
    sys/bus/isa/i386     isa_device.h 
    sys/dev/disk/ata     ata-all.c 
    sys/dev/disk/mcd     mcd.c 
    sys/dev/disk/wt      wt.c 
    sys/dev/misc/labpc   labpc.c 
    sys/dev/misc/spigot  spigot.c 
    sys/dev/misc/tw      tw.c 
    sys/dev/netif/cx     if_cx.c 
    sys/dev/netif/el     if_el.c 
    sys/dev/netif/ie     if_ie.c 
    sys/dev/netif/le     if_le.c 
    sys/dev/serial/cy    cy.c 
    sys/dev/serial/rc    rc.c 
    sys/dev/serial/sio   sio.c 
    sys/dev/serial/stl   stallion.c 
    sys/i386/i386        nexus.c vm_machdep.c 
    sys/i386/include     atomic.h 
    sys/i386/isa         apic_vector.s asc.c clock.c icu_vector.s 
                         intr_machdep.c intr_machdep.h vector.s 
    sys/opencrypto       crypto.c 
  Log:
  Major cleanup of the interrupt registration subsystem.
  
  * Collapse the separate registrations in the kernel interrupt thread and
    i386 layers into a single machine-independant kernel interrupt thread layer
    in kern/kern_intr.c.  Get rid of the i386 layer's 'MUX' code entirely.
  
  * Have the interrupt vector assembly code (icu_vector.s and apic_vector.s)
    call a machine-independant function in the kernel interrupt thread
    layer to figure out how to process an interrupt.
  
  * Move a lot of assembly into the new C interrupt processing function.
  
  * Add support for INTR_MPSAFE.  If a device driver registers an interrupt
    as being MPSAFE, the Big Giant Lock will not be obtained or required.
  
  * Temporarily just schedule the ithread if a FAST interrupt cannot be executed
    due to its serializer being locked.
  
  * Add LWKT serialization support for a non-blocking 'try' function.
  
  * Get rid of ointhand2_t and adjust all old ISA code to use inthand2_t.
  
  * Supply a frame pointer as a pointer rather then embedding it on th stack.
  
  * Allow FAST and SLOW interrupts to be mixed on the same IRQ, though this
    will not necessarily result in optimal operation.
  
  * Remove direct APIC/ICU vector calls from the apic/icu vector assembly code.
    Everything goes through the new routine in kern/kern_intr.c now.
  
  * Add a new flag, INTR_NOPOLL.  Interrupts registered with the flag will
    not be polled by the upcoming emergency general interrupt polling
    sysctl (e.g. ATA cannot be safely polled due to the way ATA register
    access interferes with ATA DMA).
  
  * Remove most of the distinction in the i386 assembly layers between FAST
    and SLOW interrupts (part 1/2).
  
  * Revamp the interrupt name array returned to userland to list multiple
    drivers associated with the same IRQ.
  
  Revision  Changes    Path
  1.24      +364 -83   src/sys/kern/kern_intr.c
  1.6       +25 -2     src/sys/kern/lwkt_serialize.c
  1.9       +2 -2      src/sys/kern/subr_taskqueue.c
  1.16      +1 -0      src/sys/sys/bus.h
  1.11      +16 -11    src/sys/sys/interrupt.h
  1.2       +2 -1      src/sys/sys/serialize.h
  1.70      +0 -3      src/sys/sys/thread.h
  1.27      +8 -8      src/sys/bus/cam/cam_xpt.c
  1.7       +1 -6      src/sys/bus/isa/i386/isa_device.h
  1.28      +7 -1      src/sys/dev/disk/ata/ata-all.c
  1.13      +3 -4      src/sys/dev/disk/mcd/mcd.c
  1.11      +4 -3      src/sys/dev/disk/wt/wt.c
  1.13      +5 -3      src/sys/dev/misc/labpc/labpc.c
  1.10      +4 -3      src/sys/dev/misc/spigot/spigot.c
  1.13      +4 -4      src/sys/dev/misc/tw/tw.c
  1.17      +4 -3      src/sys/dev/netif/cx/if_cx.c
  1.17      +4 -3      src/sys/dev/netif/el/if_el.c
  1.21      +4 -3      src/sys/dev/netif/ie/if_ie.c
  1.28      +5 -3      src/sys/dev/netif/le/if_le.c
  1.18      +6 -6      src/sys/dev/serial/cy/cy.c
  1.16      +7 -7      src/sys/dev/serial/rc/rc.c
  1.31      +2 -2      src/sys/dev/serial/sio/sio.c
  1.15      +5 -4      src/sys/dev/serial/stl/stallion.c
  1.18      +6 -1      src/sys/i386/i386/nexus.c
  1.37      +2 -2      src/sys/i386/i386/vm_machdep.c
  1.15      +31 -0     src/sys/i386/include/atomic.h
  1.23      +7 -35     src/sys/i386/isa/apic_vector.s
  1.10      +4 -3      src/sys/i386/isa/asc.c
  1.33      +12 -20    src/sys/i386/isa/clock.c
  1.19      +9 -18     src/sys/i386/isa/icu_vector.s
  1.33      +45 -376   src/sys/i386/isa/intr_machdep.c
  1.18      +3 -10     src/sys/i386/isa/intr_machdep.h
  1.7       +0 -21     src/sys/i386/isa/vector.s
  1.10      +7 -4      src/sys/opencrypto/crypto.c


http://www.dragonflybsd.org/cvsweb/src/sys/kern/kern_intr.c.diff?r1=1.23&r2=1.24&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/lwkt_serialize.c.diff?r1=1.5&r2=1.6&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/kern/subr_taskqueue.c.diff?r1=1.8&r2=1.9&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/bus.h.diff?r1=1.15&r2=1.16&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/interrupt.h.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/serialize.h.diff?r1=1.1&r2=1.2&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/sys/thread.h.diff?r1=1.69&r2=1.70&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/bus/cam/cam_xpt.c.diff?r1=1.26&r2=1.27&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/bus/isa/i386/isa_device.h.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/ata/ata-all.c.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/mcd/mcd.c.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/disk/wt/wt.c.diff?r1=1.10&r2=1.11&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/misc/labpc/labpc.c.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/misc/spigot/spigot.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/misc/tw/tw.c.diff?r1=1.12&r2=1.13&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/cx/if_cx.c.diff?r1=1.16&r2=1.17&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/el/if_el.c.diff?r1=1.16&r2=1.17&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/ie/if_ie.c.diff?r1=1.20&r2=1.21&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/netif/le/if_le.c.diff?r1=1.27&r2=1.28&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/serial/cy/cy.c.diff?r1=1.17&r2=1.18&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/serial/rc/rc.c.diff?r1=1.15&r2=1.16&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/serial/sio/sio.c.diff?r1=1.30&r2=1.31&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/dev/serial/stl/stallion.c.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/nexus.c.diff?r1=1.17&r2=1.18&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/i386/vm_machdep.c.diff?r1=1.36&r2=1.37&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/include/atomic.h.diff?r1=1.14&r2=1.15&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/isa/apic_vector.s.diff?r1=1.22&r2=1.23&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/isa/asc.c.diff?r1=1.9&r2=1.10&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/isa/clock.c.diff?r1=1.32&r2=1.33&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/isa/icu_vector.s.diff?r1=1.18&r2=1.19&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/isa/intr_machdep.c.diff?r1=1.32&r2=1.33&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/isa/intr_machdep.h.diff?r1=1.17&r2=1.18&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/i386/isa/vector.s.diff?r1=1.6&r2=1.7&f=u
http://www.dragonflybsd.org/cvsweb/src/sys/opencrypto/crypto.c.diff?r1=1.9&r2=1.10&f=u





More information about the Commits mailing list