|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v3 4/4] x86/svm: Drop emulation of Intel's SYSENTER behaviour on AMD systems
On Wed Mar 11, 2026 at 9:46 AM CET, Jan Beulich wrote:
> On 13.02.2026 12:42, Alejandro Vallejo wrote:
>> @@ -501,6 +492,9 @@ static void svm_save_cpu_state(struct vcpu *v, struct
>> hvm_hw_cpu *data)
>> {
>> struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
>>
>> + data->sysenter_cs = vmcb->sysenter_cs;
>> + data->sysenter_esp = vmcb->sysenter_esp;
>> + data->sysenter_eip = vmcb->sysenter_eip;
>> data->shadow_gs = vmcb->kerngsbase;
>> data->msr_lstar = vmcb->lstar;
>> data->msr_star = vmcb->star;
>
> May I suggest to do writes by increasing address order? I.e. while this
> already looks fine, ...
>
>> @@ -512,11 +506,14 @@ static void svm_load_cpu_state(struct vcpu *v, struct
>> hvm_hw_cpu *data)
>> {
>> struct vmcb_struct *vmcb = v->arch.hvm.svm.vmcb;
>>
>> - vmcb->kerngsbase = data->shadow_gs;
>> - vmcb->lstar = data->msr_lstar;
>> - vmcb->star = data->msr_star;
>> - vmcb->cstar = data->msr_cstar;
>> - vmcb->sfmask = data->msr_syscall_mask;
>> + vmcb->sysenter_cs = data->sysenter_cs;
>> + vmcb->sysenter_esp = data->sysenter_esp;
>> + vmcb->sysenter_eip = data->sysenter_eip;
>> + vmcb->kerngsbase = data->shadow_gs;
>> + vmcb->lstar = data->msr_lstar;
>> + vmcb->star = data->msr_star;
>> + vmcb->cstar = data->msr_cstar;
>> + vmcb->sfmask = data->msr_syscall_mask;
>> v->arch.hvm.guest_efer = data->msr_efer;
>> svm_update_guest_efer(v);
>> }
>
> ... your additions would want to move down here (and the other writes may
> then want re-ordering as well). Preferably with that:
Sure.
> Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
Thanks.
Alejandro
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |