Hello,

besides there not having been any indication what has gone wrong
(if anything in the first place), I wonder in how far the operation
of freemem() / libxl_wait_for_memory_target() is fully suitable for
all possible scenarios. I did create the guest in question on a
Dom0 running in strict mode on large IOMMU page mappings (as far as
they didn't get shattered by that point). If we consider the case
of Dom0 ballooning out a page that was mapped by a 1G mapping, then
the shattering of the 1G page as well as one of the resulting 2M
pages would result in _one less_ free pages in the end: The
ballooned out page was freed at the price of the allocation of two
pages to become page table ones. This looks to undermine the
"forward progress" determination, which I consider fragile anyway
as long as other parallel operations potentially consuming memory
aren't locked out.

Does one of you have thoughts towards possible improvements here?

Thanks, Jan


Reply via email to