git: intr: Per-cpu MI interrupt information array

看板DFBSD_commit作者時間14年前 (2011/12/28 02:05), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
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
文章代碼(AID): #1E-WZTLv (DFBSD_commit)