Dear all:
I need your help.
--------------------------------------------------------
__start_xen
{
iommu_setup(); /* setup iommu if available */
smp_prepare_cpus(max_cpus);
}
routing patch:
smp_prepare_cpus -> smp_boot_cpus -> do_boot_cpu ->
wakeup_secondary_cpu
when BSP "Sending STARTUP #1(num_starts=2)", handling CPU#31, system
was stuck, I don't know why.
besides, there are 64 physical CPUs.
wakeup_secondary_cpu
{
for (j = 1; j <= num_starts; j++) {
Dprintk("Sending STARTUP #%d.\n",j); //this printing appeared
apic_read_around(APIC_SPIV);
apic_write(APIC_ESR, 0);
apic_read(APIC_ESR);
Dprintk("After apic_write.\n"); //but this print never come out, and
system was stuck
}
}
---------------------------------------------------
1 apic_write/read() contains some lock there? how to check ?
2 BSP CPU 's rip jumped to another place owing to such as an interruption?
the most suspected place I doubt is iommu_setup(), and in this function,
I/O virtualisation enabled
Dom0 mode: Relaxed
but iommu_page_fault never entered after checking log.
3 Can someone teach me a method to analyze Xen's stuck stack, for example
core dump?... this problem happened accidentally, hard to catch its printing.
so if appear, I'd like to analyze it instantly.
Thank you very much!
tupeng212
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel