On 28/11/18 17:43, Liran Alon wrote: > > >> On 20 Nov 2018, at 20:20, Jim Mattson <jmattson@xxxxxxxxxx> wrote: >> >> On Tue, Nov 20, 2018 at 8:03 AM, Liran Alon <liran.alon@xxxxxxxxxx> wrote: >>> When guest transitions from/to long-mode by modifying MSR_EFER.LMA, >>> the list of shared MSRs to be saved/restored on guest<->host >>> transitions is updated (See vmx_set_efer() call to setup_msrs()). >>> >>> On every entry to guest, vcpu_enter_guest() calls >>> vmx_prepare_switch_to_guest(). This function should also take care >>> of setting the shared MSRs to be saved/restored. However, the >>> function does nothing in case we are already running with loaded >>> guest state (vmx->loaded_cpu_state != NULL). >>> >>> This means that even when guest modifies MSR_EFER.LMA which results >>> in updating the list of shared MSRs, it isn't being taken into account >>> by vmx_prepare_switch_to_guest() because it happens while we are >>> running with loaded guest state. >>> >>> To fix above mentioned issue, add a flag to mark that the list of >>> shared MSRs has been updated and modify vmx_prepare_switch_to_guest() >>> to set shared MSRs when running with host state *OR* list of shared >>> MSRs has been updated. >>> >>> Note that this issue was mistakenly introduced by commit >>> 678e315e78a7 ("KVM: vmx: add dedicated utility to access guest's >>> kernel_gs_base") because previously vmx_set_efer() always called >>> vmx_load_host_state() which resulted in vmx_prepare_switch_to_guest() to >>> set shared MSRs. >>> >>> Fixes: 678e315e78a7 ("KVM: vmx: add dedicated utility to access guest's kernel_gs_base") >>> >>> Reported-by: Eyal Moscovici <eyal.moscovici@xxxxxxxxxx> >>> Reviewed-by: Mihai Carabas <mihai.carabas@xxxxxxxxxx> >>> Reviewed-by: Liam Merwick <liam.merwick@xxxxxxxxxx> >>> Signed-off-by: Liran Alon <liran.alon@xxxxxxxxxx> >> Reviewed-by: Jim Mattson <jmattson@xxxxxxxxxx> > > Paolo, I saw this patch don’t have a Cc to stable tree. It seems that it should have one as-well as it also fixes an important regression issue. Ok, I wasn't sure if this is a regression. I'll propose it after Linus pulls. Paolo