[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen staging] tools/libxl: Re-position CPUID handling during domain construction
commit 454239acc59cd067867f56e42f2ca910ec98cc56 Author: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> AuthorDate: Thu Jan 2 19:44:36 2020 +0000 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Fri May 29 17:33:03 2020 +0100 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@xxxxxxxxxx> Acked-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> --- tools/libxl/libxl_create.c | 6 +++++- tools/libxl/libxl_dom.c | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c index baed817a96..cc7340c48d 100644 --- a/tools/libxl/libxl_create.c +++ b/tools/libxl/libxl_create.c @@ -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); + + libxl_domain_config *d_config = dcs->guest_config; + libxl_domain_build_info *info = &d_config->b_info; - /* Nothing to do (yet). */ + libxl__cpuid_legacy(ctx, dcs->guest_domid, info); return 0; } diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c index 71cb578923..dd1aff89a3 100644 --- a/tools/libxl/libxl_dom.c +++ b/tools/libxl/libxl_dom.c @@ -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, -- generated by git-patchbot for /home/xen/git/xen.git#staging
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |