RE: [PATCH v1 12/23] KVM: VMX: Handle FRED event data

2023-11-20 Thread Li, Xin3
> >> IIUC, L1 KVM can inject a nested exception whose vector isn't #DB, or > >> #NM or #PF with a non-zero event_data to L2. > > > >No, this is not allowed. > > How do you interpret the last sentence: > > Section 5.2.1 specifies the event data that FRED event delivery of > certain eve

Re: [PATCH v1 12/23] KVM: VMX: Handle FRED event data

2023-11-15 Thread Chao Gao
>> >> >+default: >> >> >+WARN_ON(event_data != 0); >> >> >> >> I am not sure if this WARN_ON() can be triggeded by nested VMX. It is >> >> legitimate for L1 VMM to inject any event w/ an event_data. >> >> >> >> FRED spec says: >> >> >> >> Sect

RE: [PATCH v1 12/23] KVM: VMX: Handle FRED event data

2023-11-14 Thread Li, Xin3
> >> >+ else if (is_nm_fault(intr_info) && > >> >+ vcpu->arch.guest_fpu.fpstate->xfd) > >> > >> does this necessarily mean the #NM is caused by XFD? > > > >Then the event data should be 0. Or I missed something obvious? I.e., > >it can be easily differentia

Re: [PATCH v1 12/23] KVM: VMX: Handle FRED event data

2023-11-14 Thread Chao Gao
On Tue, Nov 14, 2023 at 12:34:02PM +0800, Li, Xin3 wrote: >> >+ else if (is_nm_fault(intr_info) && >> >+vcpu->arch.guest_fpu.fpstate->xfd) >> >> does this necessarily mean the #NM is caused by XFD? > >Then the event data should be 0. Or I missed somet

RE: [PATCH v1 12/23] KVM: VMX: Handle FRED event data

2023-11-13 Thread Li, Xin3
> >+else if (is_nm_fault(intr_info) && > >+ vcpu->arch.guest_fpu.fpstate->xfd) > > does this necessarily mean the #NM is caused by XFD? Then the event data should be 0. Or I missed something obvious? I.e., it can be easily differentiated and we sho

Re: [PATCH v1 12/23] KVM: VMX: Handle FRED event data

2023-11-13 Thread Chao Gao
On Wed, Nov 08, 2023 at 10:29:52AM -0800, Xin Li wrote: >Set injected-event data when injecting a #PF, #DB, or #NM caused >by extended feature disable using FRED event delivery, and save >original-event data for being used as injected-event data. > >Unlike IDT using some extra CPU register as part

[PATCH v1 12/23] KVM: VMX: Handle FRED event data

2023-11-08 Thread Xin Li
Set injected-event data when injecting a #PF, #DB, or #NM caused by extended feature disable using FRED event delivery, and save original-event data for being used as injected-event data. Unlike IDT using some extra CPU register as part of an event context, e.g., %cr2 for #PF, FRED saves a complet