Re: Nested virtualization and software page walks in the L1 hypervsior

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Feb 29, 2020 at 2:31 PM Jim Mattson <jmattson@xxxxxxxxxx> wrote:
>
> Peter Feiner asked me an intriguing question the other day. If you
> have a hypervisor that walks  its guest's x86 page tables in software
> during emulation, how can you make that software page walk behave
> exactly like a hardware page walk? In particular, when the hypervisor
> is running as an L1 guest, how is it possible to write the software
> page walk so that accesses to L2's x86 page tables are treated as
> reads if L0 isn't using EPT A/D bits, but they're treated as writes if
> L0 is using EPT A/D bits? (Paravirtualization is not allowed.)
>
> It seems to me that this behavior isn't virtualizable. Am I wrong?

Jim, I thought about this some more after talking to you. I think it's
entirely moot what L0 sees so long as L1 and L2 work correctly. So,
the question becomes, is there anything that L0 could possibly rely on
this behavior for? My first thought was dirty tracking, but that's not
a problem because *writes* to the L2 x86 page tables' A/D bits will
still be intercepted by L0. The missing D bit on a guest page that
doesn't actually change doesn't matter :-)



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux