@@ -725,6 +725,26 @@ static const VMStateDescription vmstate_xss = {
VMSTATE_END_OF_LIST()
}
};
+#ifdef TARGET_X86_64
+static bool pkru_needed(void *opaque)
+{
+ X86CPU *cpu = opaque;
+ CPUX86State *env = &cpu->env;
+
+ return env->pkru != 0;
+}
+
+static const VMStateDescription vmstate_pkru = {
+ .name = "cpu/pkru",
+ .version_id = 1,
+ .minimum_version_id = 1,
+ .needed = pkru_needed,
+ .fields = (VMStateField[]){
+ VMSTATE_UINT32(env.pkru, X86CPU),
+ VMSTATE_END_OF_LIST()
+ }
+};
+#endif
VMStateDescription vmstate_x86_cpu = {
.name = "cpu",
@@ -844,6 +864,9 @@ VMStateDescription vmstate_x86_cpu = {
&vmstate_msr_hyperv_time,
&vmstate_avx512,
&vmstate_xss,
+#ifdef TARGET_X86_64
+ &vmstate_pkru,
+#endif
NULL
}
};
This patch adds pkeys support for vm migration. Signed-off-by: Huaitong Han <huaitong.han@intel.com>