[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] xl: pci completion error


  • To: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
  • From: Sergey Tovpeko <tsv.devel@xxxxxxxxx>
  • Date: Wed, 06 Oct 2010 17:08:45 +0400
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
  • Delivery-date: Wed, 06 Oct 2010 06:14:03 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; b=S2rL8LWg6UNvmhoMg+1WJPt3EdeGT7TBBgYO31dMKNZXzgahUUWILsDpw6r6xWBn1N FL53tcCyZgPsWFlMdAS2OgURVp9sKAywolgBIEH/q2o0NaNunm/Ewf0JVqKFSEw3fC/S EuKYyUU6L8vjSq0+RtL37IpWFncQyOxQM6xmY=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Stefano Stabellini wrote:
On Tue, 5 Oct 2010, Sergey Tovpeko wrote:
Hello, list!

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 in time libxl: error: libxl.c:944:libxl_domain_destroy pci shutdown failed for domid 1 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");
after do_pci_del(par);
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 pci-removed signal.

It's my observation.


Sergey.










_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.