kexec:relocate_kernel 실패

kexec:relocate_kernel 실패

kexec을 작동시킬 수 없습니다. x86_64의 경우 relocate_kernel은 점프백에 대한 정보를 저장할 수 없습니다.

Kexec은 에 정차합니다 movq %r9, CP_PA_TABLE_PAGE(%r11).


4.19.2가 아닌 커널 4.4.162에서 작동합니다.


4.19.16에서도 작동합니다.

어떤 변경으로 인해 이 오류가 발생했는지 어떻게 알 수 있나요?


이는 구성 문제인 것 같습니다. 4.19.2에서도 작동하지만 defconfig에서는 작동합니다. kexec를 손상시키는 구성 옵션이 무엇인지 아는 사람이 있습니까?


스크래치 레지스터를 저장/복원하는 것을 잊어버렸습니다.

정말 kexec이 에 멈춥니다.

/* Switch to the identity mapped page tables */
movq    %r9, %cr3

어떤 아이디어가 있나요? 어떤 구성 매개변수가 잘못되었나요?


또한 load_segments()에서 fs 및 gs의 로딩을 비활성화해야 했다는 점도 언급해야 합니다. 그렇지 않으면 kexec가 load_segments()에서 손상되었을 것입니다.

EFI 문제인가요?

관련 정보