On Thu, Nov 17, 2022, Maxim Levitsky wrote: > Calling nested_sync_control_from_vmcb02 on each VM exit (nested or not), > was an attempt to keep the int_ctl field in the vmcb12 cache > up to date on each VM exit. This doesn't mesh with the reasoning in commit 2d8a42be0e2b ("KVM: nSVM: synchronize VMCB controls updated by the processor on every vmexit"), which states that the goal is to keep svm->nested.ctl.* synchronized, not vmcb12. Or is nested.ctl the cache you are referring to? > However all other fields in the vmcb12 cache are not kept up to date, IIUC, this isn't technically true. They are up-to-date because they're never modified by hardware. > therefore for consistency it is better to do this on a nested VM exit only. Again, IIUC, this actually introduces an inconsistency because it leaves stale state in svm->nested.ctl, whereas the existing code ensures all state in svm->nested.ctl is fresh immediately after non-nested VM-Exit.