This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


Re: [Xen-devel] Different esps

To: Jacob Gorm Hansen <jacob@xxxxxxxx>
Subject: Re: [Xen-devel] Different esps
From: Keir Fraser <Keir.Fraser@xxxxxxxxxxxx>
Date: Tue, 20 Jan 2004 18:19:35 +0000
Cc: Steven Hand <Steven.Hand@xxxxxxxxxxxx>, Xen list <xen-devel@xxxxxxxxxxxxxxxxxxxxx>
Delivery-date: Tue, 20 Jan 2004 18:19:35 +0000
Envelope-to: Steven.Hand@xxxxxxxxxxxx
In-reply-to: Your message of "Tue, 20 Jan 2004 18:22:55 +0100." <1074619375.1023.413.camel@jacobg>
> about line 329 in traps.c:
>   fault_in_hypervisor:
> +       printk("fault_in_hypervisor 2\n");
> +       printk("dom %d : esp1 %08lx, ss %08lx\n",current->domain, 
> current->thread.esp1, current->thread.ss1);
> +
> +       execution_context_t ctxt;
> +    memcpy(&ctxt,
> +           get_execution_context(), 
> +           sizeof(execution_context_t));
> +
> +       printk("eip %p esp %p eip %p  addr %p flags %x\n", ctxt.eip, 
> ctxt.esp, gtb->eip, addr, ctxt.eflags);

The EIP/ESP values you are printing aren't up to date. You should be
printing regs->eip and regs->esp.

Also something like:
 struct pt_regs *guest_regs = (struct pt_regs *)(current->thread.esp1-1);
 <print guest_regs->esp, guest_regs->eip>

> 0xc3a91ff8 appears to be where ctxt.esp is pointing if you push some
> values. The dual 0 eips worry me as well, I have not registered any
> event-callbacks for the domain, perhaps that is the reason? But should I
> not be allowed to run without registering for interrupts in a brand-new
> domain? To me this looks like an interrupt-delivery gone bad.

Maybe an exception of some kind? Did you fill in the trap_table
(virtual IDT) in full_execution_context?

 -- Keir

<Prev in Thread] Current Thread [Next in Thread>