On Thu, 31 Oct 2019 18:30:30 +0100 David Hildenbrand <david@xxxxxxxxxx> wrote: > On 31.10.19 16:41, Christian Borntraeger wrote: > > > > > > On 25.10.19 10:49, David Hildenbrand wrote: > >> On 24.10.19 13:40, Janosch Frank wrote: > >>> From: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx> > >>> > >>> Pin the guest pages when they are first accessed, instead of all > >>> at the same time when starting the guest. > >> > >> Please explain why you do stuff. Why do we have to pin the hole > >> guest memory? Why can't we mlock() the hole memory to avoid > >> swapping in user space? > > > > Basically we pin the guest for the same reason as AMD did it for > > their SEV. It is hard > > Pinning all guest memory is very ugly. What you want is "don't page", > what you get is unmovable pages all over the place. I was hoping that > you could get around this by having an automatic back-and-forth > conversion in place (due to the special new exceptions). we're not pinning all of guest memory, btw, but only the pages that are actually used. so if you have a *huge* guest, only the few pages used by the kernel and initrd are actually pinned at VM start. Then one by one the ones actually used when the guest is running get pinned on first use. I don't need to add anything regarding the other points since the other have commented already :)