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

Re: [Xen-devel] [V10 PATCH 23/23] PVH xen: introduce vmexit handler for PVH



On Mon, 12 Aug 2013 17:21:41 +0100
George Dunlap <George.Dunlap@xxxxxxxxxxxxx> wrote:

> On Wed, Jul 24, 2013 at 2:59 AM, Mukesh Rathor
> <mukesh.rathor@xxxxxxxxxx> wrote:
> > +static int pvh_ept_handle_violation(unsigned long qualification,
> > +                                    paddr_t gpa, struct
> > cpu_user_regs *regs) +{
> > +    unsigned long gla, gfn = gpa >> PAGE_SHIFT;
> > +    p2m_type_t p2mt;
> > +    mfn_t mfn = get_gfn_query_unlocked(current->domain, gfn,
> > &p2mt); +
> > +    printk(XENLOG_G_ERR "EPT violation %#lx (%c%c%c/%c%c%c), "
> > +           "gpa %#"PRIpaddr", mfn %#lx, type %i. IP:0x%lx
> > RSP:0x%lx\n",
> > +           qualification,
> > +           (qualification & EPT_READ_VIOLATION) ? 'r' : '-',
> > +           (qualification & EPT_WRITE_VIOLATION) ? 'w' : '-',
> > +           (qualification & EPT_EXEC_VIOLATION) ? 'x' : '-',
> > +           (qualification & EPT_EFFECTIVE_READ) ? 'r' : '-',
> > +           (qualification & EPT_EFFECTIVE_WRITE) ? 'w' : '-',
> > +           (qualification & EPT_EFFECTIVE_EXEC) ? 'x' : '-',
> > +           gpa, mfn_x(mfn), p2mt, regs->rip, regs->rsp);
> > +
> > +    ept_walk_table(current->domain, gfn);
> > +
> > +    if ( qualification & EPT_GLA_VALID )
> > +    {
> > +        gla = __vmread(GUEST_LINEAR_ADDRESS);
> > +        printk(XENLOG_G_ERR " --- GLA %#lx\n", gla);
> > +    }
> > +    hvm_inject_hw_exception(TRAP_gp_fault, 0);
> > +    return 0;
> > +}
> 
> Similar to the TRAP_debug issue -- the HVM code here crashes the
> guest; as there is unlikely to be anything the guest can do to fix
> things up at this point, that is almost certainly the right thing to
> do.

The advantage of GP injection is the guest gets a chance to print
debug info. Often linux will print the stacks of all vcpus before
crashing itself on GP.

Mukesh


_______________________________________________
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®.