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@citrix.com>
Signed-off-by: Juergen Gross <jgross@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Anthony PERARD <anthony.perard@citrix.com>
This commit is contained in:
Juergen Gross authored and Andrew Cooper committed 2021-12-09 16:26:29 +00:00
1 parent 1e8b732de1
commit 1d896a0ef7
2 files changed
+12 -9

No files matched your search

+6
View File
@@ -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;
}
+6 -9
View File
@@ -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;
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.