[리눅스커널] Arm64: Preemption 3가지 함수 실행 흐름 (v5.4)

Guillermo Austin Kim|2021년 7월 21일
Posts

[리눅스커널] Arm64: Preemption 3가지 함수 실행 흐름 (v5.4)

Guillermo Austin Kim|2021년 7월 21일

1. 커널 코드 실행 도중(인터럽트 핸들러를 처리한 시점): Preemption el1_irq 레이블에서 arm64_preempt_schedule_irq 함수를 호출함 ... irq_handler #ifdef CONFIG_PREEMPT ldr x24, [tsk, #TSK_TI_PREEMPT] // get preempt countalternative_if ARM64_HAS_IRQ_PRIO_MASKING /* * DA_F were cleared at start of handling. If anything is set in DAIF, * we come back from an NMI, so skip preemption */ mrs x0, daif orr x24, x24, x0alternative_els