On 13/06/19 19:02, Jim Mattson wrote: > On Tue, May 7, 2019 at 8:36 AM Sean Christopherson > <sean.j.christopherson@xxxxxxxxx> wrote: > >> Not intercepting fields tagged read-only also allows for additional >> optimizations, e.g. marking GUEST_{CS,SS}_AR_BYTES as SHADOW_FIELD_RO >> since those fields are rarely written by a VMMs, but read frequently. > > Do you have data to support this, or is this just a gut feeling? The > last time I looked at Virtual Box (which was admittedly a long time > ago), it liked to read and write just about every VMCS guest-state > field it could find on every VM-exit. I have never looked at VirtualBox, but most other hypervisors do have a common set of fields (give or take a couple) that they like to read and/or write on most if not every vmexit. Also, while this may vary dynamically based on the L2 guest that is running, this is much less true for unrestricted-guest processors. Without data on _which_ scenarios are bad for a static set of shadowed fields, I'm not really happy to add even more complexity. Paolo > The decision of which fields to shadow is really something that should > be done dynamically, depending on the behavior of the guest hypervisor > (which may vary depending on the L2 guest it's running!) Making the > decision statically is bound to result in a poor outcome for some > scenarios.