[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Xen-devel] x86/AMD: Nested VM stuck when probing ATA ports
Hi All,
I have run into another issue with nested VM on AMD system where the L2 Linux guest stuck
waiting while booting in the 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(); <-- IN HERE
free_initmem();
mark_rodata_ro();
system_state = SYSTEM_RUNNING;
When I boot the L2 Linux guest with "initcall_debug" opion and look through the
boot debug message, I notice that the initcall to "async_port_probe()" never return.
This function is asynchrounous 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, the async_port_probe is schedule twice since there are two ports, and none has returned.
When tracing this function call, both calls stuck in the
async_port_probe()-> ata_port_probe()->ata_port_wait_eh()
I have also attached the L2 guest serial console output.
Also, when run xentrace on L0, I can see the trace going though a series of VMENTRY/EXIT
for handling timer interrupt for L2. So, I don't think the L2 guest crashes.
At this point, I am not sure why the probe fail here and might need help further debugging the issue.
Thank you,
Suravee
|
Attachment:
L2-dmesg.txt
Description: L2-dmesg.txt
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|