Hi Anthony.
With the following 3 patches applied, xen panics.

0 A hypercall_for_vtd2.patch
1 A ia64-px-xen-setpxinfo-update.patch
2 A add_head_file_for_VTD2.patch

dom0->arch.pdev_list doesn't seem to be initialized.
diversity_vtd.patch has the corresponding line, but the hunk should 
be included in add_head_file_for_VTD2.patch. The patch should be
complete itself.

ip corresponds to the line
int pci_add_device(u8 bus, u8 devfn)
...
        list_add(&pdev->domain_list, &dom0->arch.pdev_list);


Please test patches before sending.

thanks,

(XEN) *** xen_handle_domain_access: exception table lookup failed, 
iip=0xf40000000406e340, addr=0x8, spinning...
(XEN) $$$$$ PANIC in domain 0 (k6=0xf0000002f65d0000): *** 
xen_handle_domain_access: exception table lookup failed, 
iip=0xf40000000406e340, addr=0x8, spinning...
(XEN) d 0xf000000004770080 domid 0
(XEN) vcpu 0xf0000002f65d0000 vcpu 0
(XEN) 
(XEN) CPU 5
(XEN) psr : 0000121008226018 ifs : 800000000000050e ip  : [<f40000000406e341>]
(XEN) ip is at pci_add_device+0x1b1/0x250
(XEN) unat: 0000000000000000 pfs : 000000000000050e rsc : 0000000000000003
(XEN) rnat: 0000000000000000 bsps: 0000000000000000 pr  : 000000000000a559
(XEN) ldrs: 0000000000000000 ccv : 0000000000000000 fpsr: 0009804c0270033f
(XEN) csd : 0000000000000000 ssd : 0000000000000000
(XEN) b0  : f40000000406e2e0 b6  : f400000004099eb0 b7  : f400000004002e30
(XEN) f6  : 000000000000000000000 f7  : 0ffe3d7c0000000000000
(XEN) f8  : 1000bd7c0000000000000 f9  : 10000c000000000000000
(XEN) f10 : 1000a8fd5555554c58000 f11 : 1003e00000000000008fd
(XEN) r1  : f4000000043f89f0 r2  : f0000002f65d7dd0 r3  : 000000000000050e
(XEN) r8  : f00000000436be30 r9  : 0000000000000000 r10 : 2000000000000000
(XEN) r11 : 0000000000000008 r12 : f0000002f65d7dd0 r13 : f0000002f65d0000
(XEN) r14 : f000000004770740 r15 : 0000000000000000 r16 : 0000000000000008
(XEN) r17 : f00000000436be38 r18 : f00000000436be50 r19 : f00000000436be70
(XEN) r20 : f00000000436be60 r21 : f00000000436be48 r22 : f00000000436be68
(XEN) r23 : 0000000000000002 r24 : 00000000000000e8 r25 : 0000000000000000
(XEN) r26 : 00000000000c0300 r27 : 0000000000000000 r28 : 0000000000000000
(XEN) r29 : 0000000080000000 r30 : 0000000000000000 r31 : f00000000436be60
(XEN) 
(XEN) Call Trace:
(XEN)  [<f4000000040fb4c0>] show_stack+0x90/0xb0
(XEN)                                 sp=f0000002f65d7880 bsp=f0000002f65d18d8
(XEN)  [<f4000000040fbf80>] show_registers+0xaa0/0xac0
(XEN)                                 sp=f0000002f65d7a50 bsp=f0000002f65d1898
(XEN)  [<f4000000040c1440>] panic_domain+0x120/0x170
(XEN)                                 sp=f0000002f65d7a50 bsp=f0000002f65d1828
(XEN)  [<f4000000040b2220>] ia64_do_page_fault+0x710/0x720
(XEN)                                 sp=f0000002f65d7b90 bsp=f0000002f65d1788
(XEN)  [<f4000000040f2ca0>] ia64_leave_kernel+0x0/0x300
(XEN)                                 sp=f0000002f65d7bd0 bsp=f0000002f65d1788
(XEN)  [<f40000000406e340>] pci_add_device+0x1b0/0x250
(XEN)                                 sp=f0000002f65d7dd0 bsp=f0000002f65d1718
(XEN)  [<f400000004099f40>] do_physdev_op+0x5b0/0x8e0
(XEN)                                 sp=f0000002f65d7dd0 bsp=f0000002f65d16e8
(XEN)  [<f400000004002e60>] fast_hypercall+0x170/0x310
(XEN)                                 sp=f0000002f65d7e00 bsp=f0000002f65d16e8
(XEN) domain_crash_sync called from xenmisc.c:141
(XEN) Domain 0 (vcpu#0) crashed on cpu#5:
(XEN) d 0xf000000004770080 domid 0
(XEN) vcpu 0xf0000002f65d0000 vcpu 0
(XEN) 


On Tue, Oct 21, 2008 at 06:36:35PM +0800, Xu, Anthony wrote:
> Updated one per your comments
> 
> Thanks,
> Anthony
> 
> Isaku Yamahata wrote:
> > On Tue, Oct 21, 2008 at 05:05:51PM +0800, Xu, Anthony wrote:
> >> Add hypercalls needed for VTD
> >>
> >> Signed-off-by; Anthony Xu < [EMAIL PROTECTED] >
> >
> >
> >> diff -r 3b1ff707d130 -r 55251ad3e262 xen/arch/ia64/xen/hypercall.c
> >> --- a/xen/arch/ia64/xen/hypercall.c   Tue Oct 21 10:41:54 2008 +0800
> >> +++ b/xen/arch/ia64/xen/hypercall.c   Tue Oct 21 14:12:29 2008 +0800
> >>  @@ -35,6 +35,7 @@ #include <public/arch-ia64/debug_op.h>
> >>  #include <asm/sioemu.h>
> >>  #include <public/arch-ia64/sioemu.h>
> >> +#include <xen/pci.h>
> >>
> >>  static IA64FAULT
> >>  xen_hypercall (struct pt_regs *regs)
> >> @@ -313,6 +314,22 @@
> >>  iosapic_guest_write(
> >>      unsigned long physbase, unsigned int reg, u32 pval);
> >>
> >> +
> >> +/*
> >> + * XXX We don't support MSI for PCI passthrough, so just return
> >> success + */ +static int physdev_map_pirq(struct physdev_map_pirq
> >> *map) +{ +     return 0;
> >> +}
> >> +
> >> +static int physdev_unmap_pirq(struct physdev_unmap_pirq *unmap) +{
> >> +     return 0;
> >> +}
> >> +
> >> +
> >> +
> >>  long do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)  {
> >>      int irq;
> >
> > -ENOSYS?
> > Or is other code confused with -ENOSYS?
> >
> >
> >> diff -r 3b1ff707d130 -r 55251ad3e262 xen/arch/ia64/xen/mm.c
> >> --- a/xen/arch/ia64/xen/mm.c  Tue Oct 21 10:41:54 2008 +0800
> >> +++ b/xen/arch/ia64/xen/mm.c  Tue Oct 21 14:12:29 2008 +0800 @@
> >>          -1456,12 +1456,38 @@ BUG_ON(mfn != pte_pfn(ret_pte));
> >>      }
> >>
> >> +    perfc_incr(zap_domain_page_one);
> >> +    if(!mfn_valid(mfn))
> >> +        return;
> >> +
> >>      page = mfn_to_page(mfn);
> >>      BUG_ON((page->count_info & PGC_count_mask) == 0);
> >>
> >>      BUG_ON(clear_PGC_allocate && (page_get_owner(page) == NULL));
> >>      domain_put_page(d, mpaddr, pte, old_pte, clear_PGC_allocate);
> >> -    perfc_incr(zap_domain_page_one);
> >> +}
> >
> > The BUG_ON() above this hunk should be updated too.
> > something like
> > -        BUG_ON(page_get_owner(mfn_to_page(mfn)) != d &&
> > -               page_get_owner(mfn_to_page(mfn)) != NULL);
> > +        BUG_ON(mfn_valid(mfn) &&
> > +               page_get_owner(mfn_to_page(mfn)) != d &&
> > +               page_get_owner(mfn_to_page(mfn)) != NULL);
> >
> >
> > thanks,


> _______________________________________________
> Xen-ia64-devel mailing list
> Xen-ia64-devel@lists.xensource.com
> http://lists.xensource.com/xen-ia64-devel

-- 
yamahata

_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@lists.xensource.com
http://lists.xensource.com/xen-ia64-devel

Reply via email to