Re: [PATCH] KVM: VMX: Update shared MSRs to be saved/restored on MSR_EFER.LMA changes

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

 



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




[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