On Wed, Jul 05, 2023 at 03:29:39PM +0200, Claudio Imbrenda wrote: > On Wed, 5 Jul 2023 14:08:27 +0100 > Daniel P. Berrangé <berra...@redhat.com> wrote: > > > On Wed, Jul 05, 2023 at 02:46:03PM +0200, Claudio Imbrenda wrote: > > > On Wed, 5 Jul 2023 13:26:32 +0100 > > > Daniel P. Berrangé <berra...@redhat.com> wrote: > > > > > > [...] > > > > > > > > > I rather think mgmt apps need to explicitly opt-in to async > > > > > > teardown, > > > > > > so they're aware that they need to take account of delayed RAM > > > > > > availablity in their accounting / guest placement logic. > > > > > > > > > > what would you think about enabling it by default only for guests that > > > > > are capable to run in Secure Execution mode? > > > > > > > > IIUC, that's basically /all/ guests if running on new enough hardware > > > > with prot_virt=1 enabled on the host OS, so will still present > > > > challenges > > > > to mgmt apps needing to be aware of this behaviour AFAICS. > > > > > > I think there is some fencing still? I don't think it's automatic > > > > IIUC, the following sequence is possible > > > > 1. Start QEMU with -m 500G > > -> QEMU spawns async teardown helper process > > 2. Stop QEMU > > -> Async teardown helper process remains running while > > not running, the process terminates immediately as soon as QEMU > terminates. the termination takes some time, because of the memory > cleanup. > > > kernel releases RAM > > 3. Start QEMU with -m 500G > > -> Fails with ENOMEM > > why though? the new VM will not manage to instantly use all of the > memory > > > ...time passes... > > 4. Async teardown helper finally terminates > > -> The full original 500G is only now released for use > > memory starts to get freed as soon as the helper process terminates > (which is as immediately as possible after QEMU terminates > > so unless you have a guest that will allocate and use all of its memory > immediately as fast as possible at boot, this won't be a concern.
When using huge pages, QEMU should be fully allocating memory immediately, regardless of whether the guest OS touches all RAM. With regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|