[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH V6 5/5] xen: Handle resumed instruction based on previous mem_event reply
On 09/10/2014 07:03 PM, George Dunlap wrote: > On Tue, Sep 9, 2014 at 11:28 AM, Razvan Cojocaru > <rcojocaru@xxxxxxxxxxxxxxx> wrote: >> In a scenario where a page fault that triggered a mem_event occured, >> p2m_mem_access_check() will now be able to either 1) emulate the >> current instruction, or 2) emulate it, but don't allow it to perform >> any writes. >> >> Signed-off-by: Razvan Cojocaru <rcojocaru@xxxxxxxxxxxxxxx> >> Acked-by: Kevin Tian <kevin.tian@xxxxxxxxx> > [snip] > >> + else if ( v->arch.mem_event.emulate_flags == 0 && >> + npfec.kind != npfec_kind_with_gla ) /* don't send a mem_event >> */ >> + { >> + v->arch.mem_event.emulate_flags = MEM_EVENT_FLAG_EMULATE; >> + v->arch.mem_event.gpa = gpa; >> + v->arch.mem_event.eip = eip; >> + } > > It looks like the previous if() is true, that it will never get to > this point (because it will either return 0 or 1 depending on whether > p2m->access_required is set). So you don't need to make this an > "else" here -- you should just add a blank line and make this a normal > if(). > > Also, maybe it's just because I'm not familiar with the mem_event > interface, but I don't really see what this code is doing. It seems > to be changing the behavior even for clients that aren't using > MEM_EVENT_FLAG_EMULATE*. Is that intended? In any case it seems like > there could be a better comment here. Thanks, those are very good points. I'll make that a regular if(), and test also if introspection monitoring is enabled (please see patch 3/5: d->arch.hvm_domain.introspection_enabled) before setting the emulate flag, that way we won't alter the behaviour for other clients. As for the previous if, I think that if it holds then it won't be possible to send a mem_event anyway, hence the else. Thanks, Razvan Cojocaru _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |