[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Remapping memory in a HVM DomU from one pfn to another?

I was just looking into this codepath yesterday, for ballooning down a guest running in compat mode.

My analysis was that this functionality seems to be currently missing in both 3.2 xen and

The following functions:

do_memory_op_compat32 (3.2)
hvm_memory_op_compat32 (3.3)

seem to be missing the "XENMEM_decrease_reservation" and
"XENMEM_increase_reservation" functionality while running in compat mode.
Similarly, for your codepath - it would appear it is also missing XENMEM_exchange for you...

This will default to returning ENOSYS to hvm.c, and eventually bubble our way
up to

linux/drivers/xen/balloon/balloon.c :: decrease_reservation
Where it checks the following after the memory op, and crashes the guest
BUG_ON(ret != nr_pages);

So - for now - unless I'm misunderstanding something here...both you & I appear to be SOL.

James Harper wrote on 06/10/2008 08:02 AM:
XENMEM_exchange. Look at 'struct xen_memory_exchange' in
xen/include/public/memory.h. Note that GMFN means PFN for an HVM
Hopefully it is all self-explanatory enough.


I tried it and 'xm dmesg' says:

(XEN) hvm.c:747:d11 memory_op 11.

And looking in hvm.c, it appears that this occurs in
do_memory_op_compat32(...) and the only supported memory_op function is
XENMEM_add_to_physmap. Does that mean I'm out of luck?


Xen-devel mailing list
Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.