I need your help.
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!