Re: [Xen-devel] xl: pci completion error
Stefano Stabellini wrote:
On Tue, 5 Oct 2010, Sergey Tovpeko wrote:
xl reports the error on passthrough-ed pci device removing.
do_pci_remove device 01:00.0
libxl: error: libxl_device.c:448:libxl__wait_for_device_model Device
Model not ready
libxl: error: libxl_pci.c:858:do_pci_remove Device Model didn't respond
libxl: error: libxl.c:944:libxl_domain_destroy pci shutdown failed for
libxl: error: libxl.c:896:libxl_destroy_device_model Couldn't find
device model's pid: No such file or directory
libxl: error: libxl.c:956:libxl_domain_destroy
libxl_destroy_device_model failed for 1
libxl: error: libxl_device.c:307:libxl__devices_destroy
/local/domain/1/device is empty
It seems that libxl_pci didn't get the 'pci-removed' status from
qemu-dm. Please, have a look who should set this status in qemu-dm. As
for me I added xenstore_record_dm_state("pci-removed");
in xenstore_process_dm_command_event function.
It fixed up my issue of removing pci devices.
What guest OS are you using?
Currently "pci-removed" is only written in response of an eject command
from the guest OS, that means that if the guest doesn't support pci
hotplug the value won't be written.
If you are using Linux you should make sure that the acpiphp module is
loaded, if you are using Windows, I think the only version that supports
pci hotplug is Windows Server 2008 but I might be wrong.
The guest is Windows XP sp2 32 bit.
When I do pci hot-unplug on the fly
xl pci-detach 11:0b.0
the guest detaches the pci card correctly with 'pci-removed' signal, but
on the shutdown, it doesn't.
In the code the flow is the following:
qemu-dm receives the 'pci-rem' command and sends the SCI interrupt to
the guest. I think guest should catch this interrupt and write to the
magic ACPI port that causes qemu-dm send 'pci-removed' signal.
On guest shutdown, libxl sends 'pci-rem' command to qemu-dm and waits
for the answer.
I suppose, by the time 'pci-rem' signal my guest have finished its work,
and doesn't react on SCI interrupt. As a result libxl doesn't receive
It's my observation.
Xen-devel mailing list