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の問題ですか?

関連情報