Thanks for the quick response. On Wed, Oct 15, 2008 at 5:13 PM, Juergen Keil <[EMAIL PROTECTED]> wrote: >> This panic happened between line 729 and 730. The disassemble of this code >> is: >> >> [0]> ec_bind_virq_to_irq::dis >> ec_bind_virq_to_irq+0x95: call -0x97a <alloc_irq> >> ec_bind_virq_to_irq+0x9a: >> movw %ax,0xfffffffffbc46ac0(%r12) <virq_info+0x200> >> ec_bind_virq_to_irq+0xa3: movq %r13,%rdi >> ec_bind_virq_to_irq+0xa6: call +0x16d35 <mutex_exit> >> ec_bind_virq_to_irq+0xab: addb %al,(%rax) >> ec_bind_virq_to_irq+0xad: addb %al,(%rax) >> ec_bind_virq_to_irq+0xaf: addb %al,(%rax) >> ec_bind_virq_to_irq+0xb1: addb %al,(%rax) >> ec_bind_virq_to_irq+0xb3: sti >> ec_bind_virq_to_irq+0xb4: popq %r14 >> ec_bind_virq_to_irq+0xb6: popq %r13 >> ec_bind_virq_to_irq+0xb8: popq %r12 >> ec_bind_virq_to_irq+0xba: popq %rbx >> ec_bind_virq_to_irq+0xbb: leave >> ec_bind_virq_to_irq+0xbc: ret > > > The code starting at ec_bind_virq_to_irq+0xab looks corrupted. > > Seems as if someone stored a 64-bit "0" to that location, corrupting > the original code. > > > When you boot the dom0 kernel with options "-kd" and disassemble > ec_bind_virq_to_irq+0xab (before the kernel starts running), > does the code look different?
Yes. Before the kernel starts running, the disassemble code looks like [0]> ec_bind_virq_to_irq::dis ec_bind_virq_to_irq+0x95: call -0x97a <alloc_irq> ec_bind_virq_to_irq+0x9a: movw %ax,0xfffffffffbc46ac0(%r12) <virq_info+0x200> ec_bind_virq_to_irq+0xa3: movq %r13,%rdi ec_bind_virq_to_irq+0xa6: call +0x16d35 <mutex_exit> ec_bind_virq_to_irq+0xb4: popq %r14 ec_bind_virq_to_irq+0xb6: popq %r13 ec_bind_virq_to_irq+0xb8: popq %r12 ec_bind_virq_to_irq+0xba: popq %rbx ec_bind_virq_to_irq+0xbb: leave ec_bind_virq_to_irq+0xbc: ret Above aren't exactly copied and pasted from the real serial output since I can't access the develop mechines when writing this email. But I am quit sure that there are no addb's there. Actually, this function has been called twice before it runs into panic at the third time. For the first 2 calls, there seems no addb's there and no panic's. > > In case it's already corrupted before the kernel starts running: > try to check the dom0 kernel binary /platform/i86xpv/kernel/amd64/unix > with "dis -F ec_bind_virq_to_irq /platform/i86xpv/kernel/amd64/unix", > check if ec_bind_virq_to_irq+0xab contains reasonble code there. > > > If case the corruption happens at kernel runtime, it might be possble > to find the source of the corruption using kmdb and a write watchpoint: > > ec_bind_virq_to_irq+0xab::wp -w -L 8 Will verify this, and post the result. > > > _______________________________________________ xen-discuss mailing list [email protected]
