
[NMI åɥå x86  x86-64 ƥǤΤ߻ѤǤޤ]

ʤΥƥͽ˥ååפޤ ܡɤϤ
ʤ饤餹褦ʴʥϡɡååפǤ Τ褦
ååפΥǥХåٱǤ Ƥ֤Ϥפʤ顢ʸ
äȡʤΤΤΤǤ

¿ x86/x86-64 ϡɥˤϡ'åɥå NMI ' 
ͭˤ뵡ǽޤ (NMI: Non Maskable Interrupt. ¾ξǥƥब
ϡɡååפƤޤäȤƤ¹Ԥޤ)ϡϡɡ
ͥ롦ååפǥХåΤ˻ѤǤޤŪ NMI ߤμ¹
ˤꡢͥ CPU Τ줫ååפɤƻǤå
åפʤǥХååϤǤޤ

NMI åɥåȤˤϡͥˤ APIC ݡȤɬפǤ
SMP ͥǤϡAPIC ݡȤϼưŪȤ߹ޤޤUP ξϡ
ͥˤơCONFIG_X86_UP_APIC (Processor type and features ->
Local APIC support on uniprocessors) ⤷ CONFIG_X86_UP_IOAPIC
(Processor type and features -> IO-APIC support on uniprocessors) ͭ
ޤCONFIG_X86_UP_APIC  IO-APIC ʤ˥ץåޥѤǡ
CONFIG_X86_UP_IOAPIC  IO-APIC ĥ˥ץåޥѤǤ[ա
륫ͥǥХåץ㤨 Kernel Stack Meter  Kernel Tracer
ϡŪ NMI åɥå̵ˤޤ]

x86-64 Ǥϡɬפ APIC ϾȤ߹ޤ졢NMI åɥåϾ I/O-APIC
⡼ (nmi_watchdog=1) ͭˤޤߤΤȤx86-64 Ǥϡ
APIC ⡼ (nmi_watchdog=2) ưޤ

 APIC (nmi_watchdog=2) Ѥ硢ܤΥѥեޥ󥹥쥸
ɬפȤʤΤǡ쥸¾Ū (㤨С٥ѥեޥ󥹡ץ
ե󥰤ʤ) ǤϻѤǤޤ󡣤ʤ顢ʤȤ oprofile 
perfctr ɥ饤Фϡ APIC NMI åɥåưŪ̵ˤޤ

ºݤ NMI åɥåͭˤˤϡ'nmi_watchdog=N' ֡ȥץ
ѤƤ㤨СϢ lilo.conf ȥϼΤ褦ˤʤޤ

        append="nmi_watchdog=1"

SMP ޥ󤪤 IO-APIC Τ UP ޥǤϡnmi_watchdog=1 Ѥޤ
IO-APIC Τʤ UP ޥǤϡnmi_watchdog=2 ѤޤĤΥץ
å̤Ǥưޤʾ硢nmi_watchdog=1 ǥ֡Ȥ
/proc/interrupts  NMI ȤĴ٤Ƥ - Ȥ 0 ʤ顢
nmi_watchdog=2 ǺƵưNMI ȤĴ٤Ƥ줬 0 Τޤ
ʤ顢ԶȤƵϿޤ֤ѤƤץåˤ NMI 
ɲäɬפǤ

ååפϼΥʥꥪǤ - ƥ CPU Τ줫Ūʥ
륿ޡߤ 5 ðʾ¹ԤʤСNMI ϥɥ oops 
ץλ (kill) ޤΡˤ륯å(ӷ̤Ȥ
륫ͥå) ϥååפΥǥХåѤǤޤ
äơååפȯϾˡ5 äԤȡoops ưŪȯޤ
ͥ뤬åϤʤ硢ƥब˿ʥå
(㤨Сϡɥ㳲)NMI ߤμ줵Ǥʤʤä
夬ͥΥåϤǤʤΤ줫Ǥ

2.4.2-ac18 顢NMI-oopser ϥǥեȤǤ̵ʤΤǡ֡Ȼ
ѥ᡼ͭˤʤФʤޤ2.4.2-ac18  NMI-oopser 
x86 SMP ܥå̵ͭˤʤޤ

[Хơѥå򵤷ڤ Ingo Molnar <mingo@redhat.com> ⤷
 Linux SMP ᡼󥰥ꥹ <linux-smp@vger.kernel.org> äƤ]

------------------------------------------------------------
Ρ JF ץ < http://www.linux.or.jp/JF/ >
ǽ 2004/05/04
ԡ     <hng(a)ps.ksky.ne.jp>
  ɧ <takahiko(a)hakubi.co.jp>
     IKEDA Katsumi <ikedak(a)rg8.so-net.ne.jp>
