[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 06/14 v4] xen/arm: vpl011: Add a new domctl API to initialize vpl011
Hi Julien, I was mistaken in my earlier mail about vpl011 init working if it is moved to libxl__arch_domain_create(). It is failing because as you have mentioned vuart_pfn is allocated later in xc_dom_build_image(). Can we delay mapping of this page in Xen until the ring buffer is actually required by the emulation code for reading/writing data. By that time, the page would have been physically mapped. Regards, Bhupinder On 15 June 2017 at 12:03, Bhupinder Thakur <bhupinder.thakur@xxxxxxxxxx> wrote: > Hi Julien, > > >>>>> diff --git a/tools/libxl/libxl_arch.h b/tools/libxl/libxl_arch.h >>>>> index 5e1fc60..d1ca9c6 100644 >>>>> --- a/tools/libxl/libxl_arch.h >>>>> +++ b/tools/libxl/libxl_arch.h >>>>> @@ -32,6 +32,13 @@ _hidden >>>>> int libxl__arch_domain_create(libxl__gc *gc, libxl_domain_config >>>>> *d_config, >>>>> uint32_t domid); >>>>> >>>>> +/* arch specific internal domain creation finish function */ >>>>> +_hidden >>>>> +int libxl__arch_domain_create_finish(libxl__gc *gc, >>>>> + libxl_domain_build_info *info, >>>>> + uint32_t domid, >>>>> + libxl__domain_build_state *state); >>>> >>>> >>>> >>>> Can you explain why you need a new arch helper rather than using the >>>> current >>>> one? >>> >>> >>> libxl__arch_domain_create() is called from libxl__build_pre(). This >>> function is called before libxl__build_pv(). By this time the domain >>> has not be created and I found that if I tried to initialize vpl011 >>> from inside libxl__arch_domain_create() then initialization was >>> failing due to prepare_ring_for_helper() failing. >> >> >> What do you mean by the domain has not been created? The domain has already >> been created (you have a domid in hand) when you libxl__build_pre. So the >> problem is different. >> >> Looking at the code, I guess the problem is because the vuart pfn will be >> allocated by xc_dom_build_image called by libxl_build_pv -> >> libxl__build_dom. >> >>> >>> So I had to create another function which will be called from >>> libxl__build_post() after domain has been setup. >> >> >> It looks a bit odd to me to create the vpl011 UART that late in the process >> because when you read the code you would expect all the hardware to be setup >> after libxl__arch_domain_finalise_hw_descriptions is called. >> >> But I understand it is not possible to do it as the ring has not yet been >> allocated. So is there a way to allocate the ring before? > > >> Wei, Ian, do you have any opinions on what should the workflow in libxl? > > Actually, I had introduced an API xc_get_vuart_gfn() to get the pfn. > Since it is a fixed pfn, the API can > return it even before xc_build_dom_image() is called. I tried after > moving the vpl011_init function to libxl__arch_domain_create() and it > is working. > > Regards, > Bhupinder _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |