[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH for-4.10 3/5] tools/dombuilder: Switch to using gfn terminology for console and xenstore rings
On 06/10/17 10:57, Roger Pau Monné wrote: > On Thu, Oct 05, 2017 at 06:23:41PM +0000, Andrew Cooper wrote: >> >> - xc_dom_printf(xch, "%s: called, pfn=0x%"PRI_xen_pfn, __FUNCTION__, >> - scratch_gpfn); >> + xc_dom_printf(xch, "%s: called, scratch gfn=0x%"PRI_xen_pfn, >> __FUNCTION__, >> + scratch_gfn); >> >> >> rc = do_memory_op(xch, XENMEM_add_to_physmap, &xatp, sizeof(xatp)); >> @@ -357,7 +357,7 @@ int xc_dom_gnttab_hvm_seed(xc_interface *xch, domid_t >> domid, >> } >> >> rc = xc_dom_gnttab_seed(xch, domid, >> - console_gpfn, xenstore_gpfn, >> + console_gfn, xenstore_gfn, >> console_domid, xenstore_domid); >> if (rc != 0) >> { >> @@ -385,12 +385,11 @@ int xc_dom_gnttab_init(struct xc_dom_image *dom) >> { >> if ( xc_dom_translated(dom) ) { >> return xc_dom_gnttab_hvm_seed(dom->xch, dom->guest_domid, >> - dom->console_pfn, dom->xenstore_pfn, >> + dom->console_gfn, dom->xenstore_gfn, >> dom->console_domid, >> dom->xenstore_domid); >> } else { >> return xc_dom_gnttab_seed(dom->xch, dom->guest_domid, >> - xc_dom_p2m(dom, dom->console_pfn), >> - xc_dom_p2m(dom, dom->xenstore_pfn), >> + dom->console_gfn, dom->xenstore_gfn, >> dom->console_domid, dom->xenstore_domid); > return xc_dom_translated(dom) ? xc_dom_gnttab_hvm_seed : xc_dom_gnttab_seed > (dom->xch, dom->guest_domid, dom->console_gfn, > dom->xenstore_gfn, dom->console_domid, > dom->xenstore_domid); > > Not sure about the best indentation here. Or that could even be hidden > inside of xc_dom_gnttab_seed, so that xc_dom_gnttab_hvm_seed can be > removed. These seed functions are also needed in isolation from the migration code, so I can't make them local. I considered what you suggest here, but I'm not sure that it helps the readability. > >> } >> } >> diff --git a/tools/libxc/xc_dom_compat_linux.c >> b/tools/libxc/xc_dom_compat_linux.c >> index c922c61..6d27ec2 100644 >> --- a/tools/libxc/xc_dom_compat_linux.c >> +++ b/tools/libxc/xc_dom_compat_linux.c >> @@ -78,8 +78,8 @@ int xc_linux_build(xc_interface *xch, uint32_t domid, >> if ( (rc = xc_dom_gnttab_init(dom)) != 0) >> goto out; >> >> - *console_mfn = xc_dom_p2m(dom, dom->console_pfn); >> - *store_mfn = xc_dom_p2m(dom, dom->xenstore_pfn); >> + *console_mfn = dom->console_gfn; >> + *store_mfn = dom->xenstore_gfn; >> >> out: >> xc_dom_release(dom); >> diff --git a/tools/libxc/xc_dom_x86.c b/tools/libxc/xc_dom_x86.c >> index 0c80b59..aa0ced1 100644 >> --- a/tools/libxc/xc_dom_x86.c >> +++ b/tools/libxc/xc_dom_x86.c >> @@ -536,21 +536,23 @@ static int alloc_p2m_list_x86_64(struct xc_dom_image >> *dom) >> >> static int alloc_magic_pages_pv(struct xc_dom_image *dom) >> { >> + xen_pfn_t pfn; >> + >> dom->start_info_pfn = xc_dom_alloc_page(dom, "start info"); >> if ( dom->start_info_pfn == INVALID_PFN ) >> return -1; >> >> - dom->xenstore_pfn = xc_dom_alloc_page(dom, "xenstore"); >> - if ( dom->xenstore_pfn == INVALID_PFN ) >> + pfn = xc_dom_alloc_page(dom, "xenstore"); >> + if ( pfn == INVALID_PFN ) >> return -1; >> - xc_clear_domain_page(dom->xch, dom->guest_domid, >> - xc_dom_p2m(dom, dom->xenstore_pfn)); >> + dom->xenstore_gfn = xc_dom_p2m(dom, pfn); >> + xc_clear_domain_page(dom->xch, dom->guest_domid, dom->xenstore_gfn); >> >> - dom->console_pfn = xc_dom_alloc_page(dom, "console"); >> - if ( dom->console_pfn == INVALID_PFN ) >> + pfn = xc_dom_alloc_page(dom, "console"); >> + if ( pfn == INVALID_PFN ) >> return -1; >> - xc_clear_domain_page(dom->xch, dom->guest_domid, >> - xc_dom_p2m(dom, dom->console_pfn)); >> + dom->console_gfn = xc_dom_p2m(dom, pfn); >> + xc_clear_domain_page(dom->xch, dom->guest_domid, dom->console_gfn); >> >> dom->alloc_bootstack = 1; >> >> @@ -612,14 +614,19 @@ static int alloc_magic_pages_hvm(struct xc_dom_image >> *dom) >> X86_HVM_NR_SPECIAL_PAGES) ) >> goto error_out; >> >> - xc_hvm_param_set(xch, domid, HVM_PARAM_STORE_PFN, >> - special_pfn(SPECIALPAGE_XENSTORE)); >> + dom->xenstore_gfn = special_pfn(SPECIALPAGE_XENSTORE); > A pre-patch to s/special_pfn/special_gfn/ would be nice :) for > coherency. Sorting out all terminology is a far larger problem than I have time for atm. For HVM guests, pfn == gfn, so I chose not to dive down that rabbit hole right now. > >> diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c >> index ef834e6..0389a06 100644 >> --- a/tools/libxl/libxl_dom.c >> +++ b/tools/libxl/libxl_dom.c >> @@ -851,14 +851,9 @@ int libxl__build_pv(libxl__gc *gc, uint32_t domid, >> if (ret != 0) >> goto out; >> >> - if (xc_dom_translated(dom)) { >> - state->console_mfn = dom->console_pfn; >> - state->store_mfn = dom->xenstore_pfn; >> - state->vuart_gfn = dom->vuart_gfn; > This chunk should go with patch 1, it's a PVHv1 leftover also. Sadly, no its not :( ARM uses libxl__build_pv(), not libxl__build_hvm() ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |