[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Xen-devel] [PATCH V3] x86/vm_event: block interrupt injection for sync vm_events
- To: xen-devel@xxxxxxxxxxxxxxxxxxxx, tamas@xxxxxxxxxxxxx, sstabellini@xxxxxxxxxx, julien.grall@xxxxxxx
- From: Razvan Cojocaru <rcojocaru@xxxxxxxxxxxxxxx>
- Date: Mon, 14 Jan 2019 11:34:39 +0200
- Cc: kevin.tian@xxxxxxxxx, wei.liu2@xxxxxxxxxx, suravee.suthikulpanit@xxxxxxx, jun.nakajima@xxxxxxxxx, andrew.cooper3@xxxxxxxxxx, jbeulich@xxxxxxxx, Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>, brian.woods@xxxxxxx, roger.pau@xxxxxxxxxx
- Delivery-date: Mon, 14 Jan 2019 09:35:18 +0000
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
On 1/12/19 12:04 AM, Boris Ostrovsky wrote:
On 12/14/18 6:49 AM, Razvan Cojocaru wrote:
Block interrupts (in vmx_intr_assist()) for the duration of
processing a sync vm_event (similarly to the strategy
currently used for single-stepping). Otherwise, attempting
to emulate an instruction when requested by a vm_event
reply may legitimately need to call e.g.
hvm_inject_page_fault(), which then overwrites the active
interrupt in the VMCS.
The sync vm_event handling path on x86/VMX is (roughly):
monitor_traps() -> process vm_event -> vmx_intr_assist()
(possibly writing VM_ENTRY_INTR_INFO) ->
hvm_vm_event_do_resume() -> hvm_emulate_one_vm_event()
(possibly overwriting the VM_ENTRY_INTR_INFO value).
This patch may also be helpful for the future removal
of may_defer in hvm_set_cr{0,3,4} and hvm_set_msr().
Signed-off-by: Razvan Cojocaru <rcojocaru@xxxxxxxxxxxxxxx>
Reviewed-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
Thanks! So now we have three reviewed-bys, if I'm not mistaken all we
need is Tamas' (for the vm_event part) and Julien / Stefano's (for ARM)
acks (or otherwise).
Could you please take a look?
Thanks,
Razvan
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel
|