|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 5/6] xen/pvh: balloon and grant changes.
On Mon, Oct 22, 2012 at 02:25:43PM +0100, Stefano Stabellini wrote:
> On Sat, 20 Oct 2012, Konrad Rzeszutek Wilk wrote:
> > From: Mukesh Rathor <mukesh.rathor@xxxxxxxxxx>
> >
> > For balloon changes we skip setting of local P2M as it's updated
> > in Xen. For grant, the shared grant frame is the pfn and not mfn,
> > hence its mapped via the same code path as HVM.
> >
> > Signed-off-by: Mukesh Rathor <mukesh.rathor@xxxxxxxxxx>
> > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx>
> > ---
> > drivers/xen/balloon.c | 15 +++++++++------
> > drivers/xen/gntdev.c | 3 ++-
> > drivers/xen/grant-table.c | 26 ++++++++++++++++++++++----
> > 3 files changed, 33 insertions(+), 11 deletions(-)
> >
> > diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
> > index 31ab82f..c825b63 100644
> > --- a/drivers/xen/balloon.c
> > +++ b/drivers/xen/balloon.c
> > @@ -361,7 +361,9 @@ static enum bp_state increase_reservation(unsigned long
> > nr_pages)
> > set_phys_to_machine(pfn, frame_list[i]);
> >
> > /* Link back into the page tables if not highmem. */
> > - if (xen_pv_domain() && !PageHighMem(page)) {
> > + if (xen_pv_domain() && !PageHighMem(page) &&
> > + !xen_feature(XENFEAT_auto_translated_physmap)) {
This could be done as:
if ((xen_pv_domain() && !PageHighMem(page) &&
!xen_feature(XENFEAT_auto_translated_physmap))
Just to make it more easier to read.
> > +
> > int ret;
> > ret = HYPERVISOR_update_va_mapping(
> > (unsigned long)__va(pfn << PAGE_SHIFT),
> > @@ -418,12 +420,13 @@ static enum bp_state decrease_reservation(unsigned
> > long nr_pages, gfp_t gfp)
> > scrub_page(page);
> >
> > if (xen_pv_domain() && !PageHighMem(page)) {
> > - ret = HYPERVISOR_update_va_mapping(
> > - (unsigned long)__va(pfn << PAGE_SHIFT),
> > - __pte_ma(0), 0);
> > - BUG_ON(ret);
> > + if (!xen_feature(XENFEAT_auto_translated_physmap)) {
> > + ret = HYPERVISOR_update_va_mapping(
> > + (unsigned long)__va(pfn << PAGE_SHIFT),
> > + __pte_ma(0), 0);
> > + BUG_ON(ret);
> > + }
> > }
>
> this change, unlike the one before, actually makes things different for
> traditional pv domains in case PageHighMem(page).
How? He is not altering the !PageHighMem check. Just adding a check
before the hypercall to render it nop on PVH.
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |