[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] tools: set event channel HVM parameters in libxenguest
commit 1d896a0ef7df2bf4c74c3c5272e0d341038eea8b Author: Juergen Gross <jgross@xxxxxxxx> AuthorDate: Wed Dec 8 09:47:45 2021 +0100 Commit: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> CommitDate: Thu Dec 9 16:26:29 2021 +0000 tools: set event channel HVM parameters in libxenguest The HVM parameters for pre-allocated event channels should be set in libxenguest, like it is done for PV guests, and the ring pages that libxenguest allocates. Suggested-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Signed-off-by: Juergen Gross <jgross@xxxxxxxx> Reviewed-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Acked-by: Anthony PERARD <anthony.perard@xxxxxxxxxx> --- tools/libs/guest/xg_dom_x86.c | 6 ++++++ tools/libs/light/libxl_dom.c | 15 ++++++--------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/tools/libs/guest/xg_dom_x86.c b/tools/libs/guest/xg_dom_x86.c index b6e75afba2..9328fbf804 100644 --- a/tools/libs/guest/xg_dom_x86.c +++ b/tools/libs/guest/xg_dom_x86.c @@ -1866,6 +1866,12 @@ static int bootlate_hvm(struct xc_dom_image *dom) munmap(hvm_info_page, PAGE_SIZE); } + if ( xc_hvm_param_set(xch, domid, HVM_PARAM_CONSOLE_EVTCHN, + dom->console_evtchn) || + xc_hvm_param_set(xch, domid, HVM_PARAM_STORE_EVTCHN, + dom->xenstore_evtchn) ) + return -1; + return 0; } diff --git a/tools/libs/light/libxl_dom.c b/tools/libs/light/libxl_dom.c index fe9f760f71..c9c24666cd 100644 --- a/tools/libs/light/libxl_dom.c +++ b/tools/libs/light/libxl_dom.c @@ -723,9 +723,8 @@ out: static int hvm_build_set_params(xc_interface *handle, uint32_t domid, libxl_domain_build_info *info, - int store_evtchn, unsigned long *store_mfn, - int console_evtchn, unsigned long *console_mfn, - domid_t store_domid, domid_t console_domid) + unsigned long *store_mfn, + unsigned long *console_mfn) { struct hvm_info_table *va_hvm; uint8_t *va_map, sum; @@ -752,8 +751,6 @@ static int hvm_build_set_params(xc_interface *handle, uint32_t domid, xc_hvm_param_get(handle, domid, HVM_PARAM_STORE_PFN, &str_mfn); xc_hvm_param_get(handle, domid, HVM_PARAM_CONSOLE_PFN, &cons_mfn); - xc_hvm_param_set(handle, domid, HVM_PARAM_STORE_EVTCHN, store_evtchn); - xc_hvm_param_set(handle, domid, HVM_PARAM_CONSOLE_EVTCHN, console_evtchn); *store_mfn = str_mfn; *console_mfn = cons_mfn; @@ -1123,7 +1120,9 @@ int libxl__build_hvm(libxl__gc *gc, uint32_t domid, dom->vga_hole_size = device_model ? LIBXL_VGA_HOLE_SIZE : 0; dom->device_model = device_model; dom->max_vcpus = info->max_vcpus; + dom->console_evtchn = state->console_port; dom->console_domid = state->console_domid; + dom->xenstore_evtchn = state->store_port; dom->xenstore_domid = state->store_domid; rc = libxl__domain_device_construct_rdm(gc, d_config, @@ -1169,10 +1168,8 @@ int libxl__build_hvm(libxl__gc *gc, uint32_t domid, if (rc != 0) goto out; - rc = hvm_build_set_params(ctx->xch, domid, info, state->store_port, - &state->store_mfn, state->console_port, - &state->console_mfn, state->store_domid, - state->console_domid); + rc = hvm_build_set_params(ctx->xch, domid, info, &state->store_mfn, + &state->console_mfn); if (rc != 0) { LOG(ERROR, "hvm build set params failed"); goto out; -- generated by git-patchbot for /home/xen/git/xen.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |