[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v4 8/9] tools: add example application to initialize dom0less PV drivers
Hi,I have posted some comments in v3 after you sent this version. Please have a look. On 01/04/2022 01:38, Stefano Stabellini wrote: +static int init_domain(struct xs_handle *xsh, libxl_dominfo *info) +{ + struct xc_interface_core *xch; + libxl_uuid uuid; + uint64_t xenstore_evtchn, xenstore_pfn; + int rc; + + printf("Init dom0less domain: %u\n", info->domid); + xch = xc_interface_open(0, 0, 0); + + rc = xc_hvm_param_get(xch, info->domid, HVM_PARAM_STORE_EVTCHN, + &xenstore_evtchn); + if (rc != 0) { + printf("Failed to get HVM_PARAM_STORE_EVTCHN\n"); + return 1; + } + + /* Alloc xenstore page */ + if (alloc_xs_page(xch, info, &xenstore_pfn) != 0) { + printf("Error on alloc magic pages\n"); + return 1; + } + + rc = xc_dom_gnttab_seed(xch, info->domid, true, + (xen_pfn_t)-1, xenstore_pfn, 0, 0); + if (rc) + err(1, "xc_dom_gnttab_seed"); + + libxl_uuid_generate(&uuid); + xc_domain_sethandle(xch, info->domid, libxl_uuid_bytearray(&uuid)); + + rc = gen_stub_json_config(info->domid, &uuid); + if (rc) + err(1, "gen_stub_json_config"); + + /* Now everything is ready: set HVM_PARAM_STORE_PFN */ + rc = xc_hvm_param_set(xch, info->domid, HVM_PARAM_STORE_PFN, + xenstore_pfn); On patch #1, you told me you didn't want to allocate the page in Xen because it wouldn't be initialized by Xenstored. But this is what we are doing here. This would be a problem if Linux is still booting and hasn't yet call xenbus_probe_initcall(). I understand we need to have the page setup before raising the event channel. I don't think we can allow Xenstored to set the HVM_PARAM (it may run in a domain with less privilege). So I think we may need to create a separate command to kick the client (not great). Juergen, any thoughts? Cheers, -- Julien Grall
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |