DragonFly BSD
DragonFly commits List (threaded) for 2011-12
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

git: intr: Per-cpu MI interrupt information array


From: Sepherosa Ziehau <sephe@xxxxxxxxxxxxxxxxxxxxxxx>
Date: Wed, 14 Dec 2011 22:50:10 -0800 (PST)

commit c83c147ec7809044a209b1ea4b3cc251ab6474df
Author: Sepherosa Ziehau <sephe@dragonflybsd.org>
Date:   Thu Dec 15 13:47:26 2011 +0800

    intr: Per-cpu MI interrupt information array
    
    - Interrupt information is only recorded in its target CPU's interrupt
      information array.
    - Interrupt threads, emergency polling threads, interrupt livelock
      processing and hardware interrupt threads scheduling only access
      the interrupt information of the CPU they are running on; they have
      already been locked to the interrupt's target CPU.
    - Location of SWI information is saved in a global array swi_info_ary,
      since scheduling SWI does not necessarily happens on the CPU that
      SWI thread is running, we need a quick and correct way find the SWI
      information.
    - Factor out sched_ithd_intern, which accept interrupt information
      (struct intr_info) instead of interrupt number.  Split the original
      sched_ithd() into sched_ithd_soft(), which schedules SWI thread, and
      sched_ithd_hard() which schedules hardware interrupt thread.
    - vmstat(8) interrupt reporting w/ -v is augmented to print the interrupts'
      target CPU.
    
    This paves way to the per-cpu MD interrupt description table

Summary of changes:
 sys/kern/kern_intr.c                       |  223 ++++++++++++++++++----------
 sys/platform/pc32/acpica5/acpi_fadt.c      |    4 +-
 sys/platform/pc32/i386/ipl.s               |    4 +-
 sys/platform/pc32/isa/clock.c              |    4 +-
 sys/platform/pc64/acpica5/acpi_fadt.c      |    4 +-
 sys/platform/pc64/isa/clock.c              |    4 +-
 sys/platform/pc64/x86_64/ipl.s             |    4 +-
 sys/platform/vkernel/platform/machintr.c   |    8 +-
 sys/platform/vkernel64/platform/machintr.c |    8 +-
 sys/sys/interrupt.h                        |    5 +-
 usr.bin/vmstat/vmstat.c                    |    9 +-
 11 files changed, 170 insertions(+), 107 deletions(-)

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/c83c147ec7809044a209b1ea4b3cc251ab6474df


-- 
DragonFly BSD source repository



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]