[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2] SVM: Add union intstat_t for offset 68h in vmcb struct
On 24/03/2020 10:37, Pu Wen wrote: > According to chapter "Appendix B Layout of VMCB" in the new version > (v3.32) AMD64 APM[1], bit 1 of the VMCB offset 68h is defined as > GUEST_INTERRUPT_MASK. > > In current xen codes, it use whole u64 interrupt_shadow to setup > interrupt shadow, which will misuse other bit in VMCB offset 68h > as part of interrupt_shadow. > > Add union intstat_t for VMCB offset 68h and fix codes to only use > bit 0 as intr_shadow according to the new APM description. > > Reference: > [1] https://www.amd.com/system/files/TechDocs/24593.pdf > > Signed-off-by: Pu Wen <puwen@xxxxxxxx> Hmm - this field doesn't appear to be part of AVIC, which makes me wonder what we're doing without it. It appears to be a shadow copy of EFLAGS.IF which is only written on vmexit, and never consumed, but this is based on Appendix B which is the only reference I can find to the field at all. Neither the VMRUN/#VMEXIT descriptions discuss it at all. Given its position next to the (ambiguous) INTERRUPT_SHADOW, it just might actually distinguish the STI shadow from the MovSS shadow, but it could only do that by not behaving as described, and being asymmetric with EFLAGS. I don't have time to investigate this right now. We need the field described in Xen to set it appropriately for virtual vmexit, but I think that is the extent of what we need to do. ~Andrew
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |