kexec:relocate_kernel 失败

kexec:relocate_kernel 失败

我无法让 kexec 工作。对于 x86_64 relocate_kernel 无法存储用于跳回的信息。

Kexec 停止在movq %r9, CP_PA_TABLE_PAGE(%r11).


适用于内核 4.4.162,不适用于 4.19.2


也适用于 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的问题吗?

相关内容