From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sergey Tovpeko Subject: Re: xl: pci completion error Date: Wed, 06 Oct 2010 17:08:45 +0400 Message-ID: <4CAC74DD.3030703@gmail.com> References: <4CAB0E9A.5050507@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Stefano Stabellini Cc: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org 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.