You are suggesting the hypervisor communicate dynamically-rapidly-changing
In this case you could use the same mechanism to stop new put_page()s?
physical memory availability information to a userland daemon in each guest,
and each daemon communicate this information to each respective kernel
to notify the kernel that hypervisor memory is not available?
Seems very convoluted to me, and anyway it doesn't eliminate the need
for a hook placed exactly where the frontswap_put hook is placed.
Seems frontswap is like a reverse balloon, where the balloon is inThat's a reasonable analogy. Frontswap serves nicely as an
hypervisor space instead of the guest space.
emergency safety valve when a guest has given up (too) much of
its memory via ballooning but unexpectedly has an urgent need
that can't be serviced quickly enough by the balloon driver.