커널 프로세스 또는 기타 인터럽트 중단

커널 프로세스 또는 기타 인터럽트 중단

ISR은 커널 모드(물론 커널 모드에서도 마찬가지)에서 프로세스나 다른 인터럽트(추가 인터럽트를 가능하게 함)를 언제 중단하는지 어떻게 알 수 있습니까?

이 질문이 널리 퍼져 있는 경우 MIPS의 Linux를 대상으로 지정하십시오.

답변1

die_if_kernel분명히 이것을 설명하는 보편적인 기능(단순한 규칙 이상의 것인지는 확실하지 않음)이 있습니다 .

MIPS 구현은 regsISR(인터럽트 전에 저장된 레지스터)에 전달된 레지스터를 확인하기 위해 조건자 함수를 사용합니다 user_mode().

http://elixir.free-electrons.com/linux/latest/source/arch/mips/include/asm/ptrace.h?v=4.12#L169

커널 내부에서 트랩/오류가 발생하면 일반적으로 치명적인 것으로 간주되기 때문에 이와 같은 장소를 살펴보고 싶습니다.

http://elixir.free-electrons.com/linux/latest/source/arch/mips/kernel/traps.c#L1230

관련 정보