[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 06/19] x86/pv: Implement pv_inject_{event, page_fault, hw_exception}()
At 11:13 +0000 on 28 Nov (1480331603), Andrew Cooper wrote: > To help with event injection improvements for the PV uses of x86_emulate(), > implement a event injection API which matches its hvm counterpart. > > This is started with taking do_guest_trap() and modifying its calling API to > pv_inject_event(), subsequentally implementing the former in terms of the > latter. > > The existing propagate_page_fault() is fairly similar to > pv_inject_page_fault(), although it has a return value. Only a single caller > makes use of the return value, and non-NULL is only returned if the passed cr2 > is non-canonical. Opencode this single case in > handle_gdt_ldt_mapping_fault(), allowing propagate_page_fault() to become > void. > > The #PF specific bits are moved into pv_inject_event(), and > pv_inject_page_fault() is implemented as a static inline wrapper. > reserved_bit_page_fault() is pure code motion. > > No functional change. > > Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Acked-by: Tim Deegan <tim@xxxxxxx> with one note: > + if ( vector == TRAP_page_fault ) > + { > + v->arch.pv_vcpu.ctrlreg[2] = event->cr2; > + arch_set_cr2(v, event->cr2); > + > + /* Re-set error_code.user flag appropriately for the guest. */ > + error_code &= ~PFEC_user_mode; > + if ( !guest_kernel_mode(v, regs) ) > + error_code |= PFEC_user_mode; I can see that you're just moving this code, but isn't it wrong for what are now called "implicit" accesses? My Ack stands on this patch regardless. Cheers, Tim. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |