Suravee Suthikulanit
2013-Aug-06 17:35 UTC
x86/AMD: Nested VM stuck when probing ATA ports
Hi All, I have run into another issue withnested VM on AMD systemwhere theL2 Linux guest stuck waiting while booting inthe async_synchronize_full() of init/main.c. static int __ref kernel_init(void *unused) { kernel_init_freeable(); /* need to finish all async __init code before freeing the memory */ async_synchronize_full(); <-- INHERE free_initmem(); mark_rodata_ro(); system_state = SYSTEM_RUNNING; When Iboot the L2 Linux guest with "initcall_debug"opion and look through the boot debugmessage, I notice thatthe initcall to "async_port_probe()" neverreturn. This function isasynchrounous scheduled as part of ATA host initialization (see driver/ata/libata-core.c:ata_host_register()). /* perform each probe asynchronously */ for (i = 0; i < host->n_ports; i++) { struct ata_port *ap = host->ports[i]; async_schedule(async_port_probe, ap); } Here,theasync_port_probeis schedule twice since there are two ports, and none has returned. When tracing this function call, bothcalls stuckin the async_port_probe()-> ata_port_probe()->ata_port_wait_eh() I have also attached the L2guest serial consoleoutput. Also,when run xentrace on L0,I can see the trace going thougha series of VMENTRY/EXIT for handling timer interrupt for L2. So, I don''t think theL2 guestcrashes. At this point, I am not sure why the probe fail here and might need help further debuggingthe issue. Thank you, Suravee _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel