Messages in this thread | | | Date | Thu, 4 Nov 2021 11:55:34 -0400 | Subject | Re: [PATCH v4] xen/balloon: add late_initcall_sync() for initial ballooning done | From | Boris Ostrovsky <> |
| |
On 11/3/21 9:55 PM, Boris Ostrovsky wrote: > > On 11/2/21 5:19 AM, Juergen Gross wrote: >> When running as PVH or HVM guest with actual memory < max memory the >> hypervisor is using "populate on demand" in order to allow the guest >> to balloon down from its maximum memory size. For this to work >> correctly the guest must not touch more memory pages than its target >> memory size as otherwise the PoD cache will be exhausted and the guest >> is crashed as a result of that. >> >> In extreme cases ballooning down might not be finished today before >> the init process is started, which can consume lots of memory. >> >> In order to avoid random boot crashes in such cases, add a late init >> call to wait for ballooning down having finished for PVH/HVM guests. >> >> Warn on console if initial ballooning fails, panic() after stalling >> for more than 3 minutes per default. Add a module parameter for >> changing this timeout. >> >> Cc: <stable@vger.kernel.org> >> Reported-by: Marek Marczykowski-Górecki <marmarek@invisiblethingslab.com> >> Signed-off-by: Juergen Gross <jgross@suse.com> > > > > Reviewed-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
This appears to have noticeable effect on boot time (and boot experience in general).
I have
memory=1024 maxmem=8192
And my boot time (on an admittedly slow box) went from 33 to 45 seconds. And boot pauses in the middle while it is waiting for ballooning to complete.
[ 5.062714] xen:balloon: Waiting for initial ballooning down having finished. [ 5.449696] random: crng init done [ 34.613050] xen:balloon: Initial ballooning down finished.
So at least I think we should consider bumping log level down from info.
-boris
| |