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