[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] mem_event: Return previous value of CR0/CR3/CR4 on change.



At 10:54 +0000 on 25 Feb (1393322055), Jan Beulich wrote:
> >>> On 30.01.14 at 22:34, Tamas K Lengyel <tamas.lengyel@xxxxxxxxxxxx> wrote:
> > This patch extends the information returned for CR0/CR3/CR4 register write 
> > events
> > with the previous value of the register. The old value was already passed 
> > to 
> > the trap
> > processing function, just never placed into the returned request. By 
> > returning     
> > this value, applications subscribing the CR events obtain additional 
> > context 
> > about
> > the event.
> > 
> > Signed-off-by: Tamas K Lengyel <tamas.lengyel@xxxxxxxxxxxx>
> 
> Tim, Andres,
> 
> this seems to fall in your area - any thoughts?

I already acked this; I was intending to apply it on Thursday.

Tim.

> > ---
> >  xen/arch/x86/hvm/hvm.c         |    4 ++++
> >  xen/include/public/mem_event.h |    6 +++---
> >  2 files changed, 7 insertions(+), 3 deletions(-)
> > 
> > diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
> > index 69f7e74..d46abf2 100644
> > --- a/xen/arch/x86/hvm/hvm.c
> > +++ b/xen/arch/x86/hvm/hvm.c
> > @@ -4682,6 +4682,10 @@ static int hvm_memory_event_traps(long p, uint32_t 
> > reason,
> >          req.gla = gla;
> >          req.gla_valid = 1;
> >      }
> > +    else
> > +    {
> > +        req.gla = old;
> > +    }
> >      
> >      mem_event_put_request(d, &d->mem_event->access, &req);
> >      
> > diff --git a/xen/include/public/mem_event.h b/xen/include/public/mem_event.h
> > index c9ed546..3831b41 100644
> > --- a/xen/include/public/mem_event.h
> > +++ b/xen/include/public/mem_event.h
> > @@ -40,9 +40,9 @@
> >  /* Reasons for the memory event request */
> >  #define MEM_EVENT_REASON_UNKNOWN     0    /* typical reason */
> >  #define MEM_EVENT_REASON_VIOLATION   1    /* access violation, GFN is 
> > address */
> > -#define MEM_EVENT_REASON_CR0         2    /* CR0 was hit: gfn is CR0 value 
> > */
> > -#define MEM_EVENT_REASON_CR3         3    /* CR3 was hit: gfn is CR3 value 
> > */
> > -#define MEM_EVENT_REASON_CR4         4    /* CR4 was hit: gfn is CR4 value 
> > */
> > +#define MEM_EVENT_REASON_CR0         2    /* CR0 was hit: gfn is new CR0 
> > value, gla is previous */
> > +#define MEM_EVENT_REASON_CR3         3    /* CR3 was hit: gfn is new CR3 
> > value, gla is previous */
> > +#define MEM_EVENT_REASON_CR4         4    /* CR4 was hit: gfn is new CR4 
> > value, gla is previous */
> >  #define MEM_EVENT_REASON_INT3        5    /* int3 was hit: gla/gfn are RIP 
> > */
> >  #define MEM_EVENT_REASON_SINGLESTEP  6    /* single step was invoked: 
> > gla/gfn are RIP */
> >  #define MEM_EVENT_REASON_MSR         7    /* MSR was hit: gfn is MSR 
> > value, 
> > gla is MSR address;
> > -- 
> > 1.7.10.4
> > 
> > 
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@xxxxxxxxxxxxx 
> > http://lists.xen.org/xen-devel 
> 
> 
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.