[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 Thu, Oct 05, 2017 at 06:23:41PM +0000, Andrew Cooper wrote: > diff --git a/tools/libxc/xc_dom_boot.c b/tools/libxc/xc_dom_boot.c > index ce3c22e..a84a95e 100644 > --- a/tools/libxc/xc_dom_boot.c > +++ b/tools/libxc/xc_dom_boot.c > @@ -257,24 +257,24 @@ static xen_pfn_t xc_dom_gnttab_setup(xc_interface *xch, > domid_t domid) > } > > int xc_dom_gnttab_seed(xc_interface *xch, domid_t domid, > - xen_pfn_t console_gmfn, > - xen_pfn_t xenstore_gmfn, > + xen_pfn_t console_gfn, > + xen_pfn_t xenstore_gfn, > domid_t console_domid, > domid_t xenstore_domid) > { > > - xen_pfn_t gnttab_gmfn; > + xen_pfn_t gnttab_gfn; > grant_entry_v1_t *gnttab; > > - gnttab_gmfn = xc_dom_gnttab_setup(xch, domid); > - if ( gnttab_gmfn == -1 ) > + gnttab_gfn = xc_dom_gnttab_setup(xch, domid); > + if ( gnttab_gfn == -1 ) > return -1; > > gnttab = xc_map_foreign_range(xch, > domid, > PAGE_SIZE, > PROT_READ|PROT_WRITE, > - gnttab_gmfn); > + gnttab_gfn); > if ( gnttab == NULL ) > { > xc_dom_panic(xch, XC_INTERNAL_ERROR, > @@ -284,17 +284,17 @@ int xc_dom_gnttab_seed(xc_interface *xch, domid_t domid, > return -1; > } > > - if ( domid != console_domid && console_gmfn != -1) > + if ( domid != console_domid && console_gfn != -1 ) ^ extra space > { > gnttab[GNTTAB_RESERVED_CONSOLE].flags = GTF_permit_access; > gnttab[GNTTAB_RESERVED_CONSOLE].domid = console_domid; > - gnttab[GNTTAB_RESERVED_CONSOLE].frame = console_gmfn; > + gnttab[GNTTAB_RESERVED_CONSOLE].frame = console_gfn; > } > - if ( domid != xenstore_domid && xenstore_gmfn != -1) > + if ( domid != xenstore_domid && xenstore_gfn != -1 ) > { > gnttab[GNTTAB_RESERVED_XENSTORE].flags = GTF_permit_access; > gnttab[GNTTAB_RESERVED_XENSTORE].domid = xenstore_domid; > - gnttab[GNTTAB_RESERVED_XENSTORE].frame = xenstore_gmfn; > + gnttab[GNTTAB_RESERVED_XENSTORE].frame = xenstore_gfn; > } > > if ( munmap(gnttab, PAGE_SIZE) == -1 ) > @@ -308,19 +308,19 @@ int xc_dom_gnttab_seed(xc_interface *xch, domid_t domid, > > /* Guest shouldn't really touch its grant table until it has > * enabled its caches. But lets be nice. */ > - xc_domain_cacheflush(xch, domid, gnttab_gmfn, 1); > + xc_domain_cacheflush(xch, domid, gnttab_gfn, 1); > > return 0; > } > > int xc_dom_gnttab_hvm_seed(xc_interface *xch, domid_t domid, > - xen_pfn_t console_gpfn, > - xen_pfn_t xenstore_gpfn, > + xen_pfn_t console_gfn, > + xen_pfn_t xenstore_gfn, > domid_t console_domid, > domid_t xenstore_domid) > { > int rc; > - xen_pfn_t scratch_gpfn; > + xen_pfn_t scratch_gfn; > struct xen_add_to_physmap xatp = { > .domid = domid, > .space = XENMAPSPACE_grant_table, > @@ -330,7 +330,7 @@ int xc_dom_gnttab_hvm_seed(xc_interface *xch, domid_t > domid, > .domid = domid, > }; > > - rc = xc_core_arch_get_scratch_gpfn(xch, domid, &scratch_gpfn); > + rc = xc_core_arch_get_scratch_gpfn(xch, domid, &scratch_gfn); > if ( rc < 0 ) > { > xc_dom_panic(xch, XC_INTERNAL_ERROR, > @@ -339,11 +339,11 @@ int xc_dom_gnttab_hvm_seed(xc_interface *xch, domid_t > domid, > __FUNCTION__, errno); > return -1; > } > - xatp.gpfn = scratch_gpfn; > - xrfp.gpfn = scratch_gpfn; > + xatp.gpfn = scratch_gfn; > + xrfp.gpfn = scratch_gfn; xatp.gpfn = xrfp.gpfn = scratch_gfn; Maybe, not important IMHO. > > - 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. > } > } > 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. > 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. Thanks, Roger. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |