/proc/interrupts에 있는 숫자가 아닌 IRQ는 무엇입니까?

/proc/interrupts에 있는 숫자가 아닌 IRQ는 무엇입니까?

cat /proc/interruptsNMI및 와 같은 IRQ를 보여줍니다 LOC. 출력의 각 줄에 대한 설명은 명확한 설명을 제공하지만 숫자 IRQ 번호가 없는 경우 x86 CPU는 인터럽트 설명자 테이블의 항목을 기반으로 어떻게 응답합니까?

답변1

숫자가 아닌 항목은 /proc/interrupts아키텍처별, 장치 독립적인 인터럽트에 해당합니다.

x86에서 IDT 레이아웃은 다음 항목에 설명되어 있습니다.arch/x86/include/asm/irq_vectors.h:

  • 벡터 0...31: 시스템 트랩 및 예외 - 하드코딩된 이벤트
  • 벡터 32...127: 장치 인터럽트
  • 벡터 128: 레거시 int80 시스템 호출 인터페이스
  • 벡터 129...LOCAL_TIMER_VECTOR-1
  • 벡터 LOCAL_TIMER_VECTOR ... 255: 특수 인터럽트

아키텍처별 인터럽트는 0~31 및 129~255의 IDT 항목에 의해 처리되며 로컬 타이머 인터럽트는 후자 범위의 첫 번째 인터럽트입니다. 따라서 0이 표시되면 /proc/interruptsIDT 항목 32이고, NMI가 표시되면 항목 2입니다. IDT 자체는 다음과 같이 설정됩니다.arch/x86/kernel/idt.c.

관련 정보