mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
tools/libxl: Re-position CPUID handling during domain construction
CPUID handling needs to be earlier in construction. Move it from its current position in libxl__build_post() to libxl__build_pre() for fresh builds, and libxl__srm_callout_callback_static_data_done() for the migration/resume case. Later changes will make the migration/resume case conditional on whether CPUID data was present in the migration stream, and the libxc layer took care of restoring it. No functional change. Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com> Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
This commit is contained in:
1 parent
c1a552ec7f
commit
454239acc5
2 files changed
+11
-3
No files matched your search
@@ -1433,8 +1433,12 @@ int libxl__srm_callout_callback_static_data_done(void *user)
|
||||
libxl__save_helper_state *shs = user;
|
||||
libxl__domain_create_state *dcs = shs->caller_state;
|
||||
STATE_AO_GC(dcs->ao);
|
||||
libxl_ctx *ctx = libxl__gc_owner(gc);
|
||||
|
||||
/* Nothing to do (yet). */
|
||||
libxl_domain_config *d_config = dcs->guest_config;
|
||||
libxl_domain_build_info *info = &d_config->b_info;
|
||||
|
||||
libxl__cpuid_legacy(ctx, dcs->guest_domid, info);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -387,6 +387,12 @@ int libxl__build_pre(libxl__gc *gc, uint32_t domid,
|
||||
|
||||
rc = libxl__arch_domain_create(gc, d_config, domid);
|
||||
|
||||
/* Construct a CPUID policy, but only for brand new domains. Domains
|
||||
* being migrated-in/restored have CPUID handled during the
|
||||
* static_data_done() callback. */
|
||||
if (!state->restore)
|
||||
libxl__cpuid_legacy(ctx, domid, info);
|
||||
|
||||
return rc;
|
||||
}
|
||||
|
||||
@@ -454,8 +460,6 @@ int libxl__build_post(libxl__gc *gc, uint32_t domid,
|
||||
if (rc)
|
||||
return rc;
|
||||
|
||||
libxl__cpuid_legacy(ctx, domid, info);
|
||||
|
||||
if (info->type == LIBXL_DOMAIN_TYPE_HVM
|
||||
&& !libxl_ms_vm_genid_is_zero(&info->u.hvm.ms_vm_genid)) {
|
||||
rc = libxl__ms_vm_genid_set(gc, domid,
|
||||
|
||||