From: Sergey Tovpeko <tsv.devel@gmail.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
Subject: Re: xl: pci completion error
Date: Wed, 06 Oct 2010 17:08:45 +0400 [thread overview]
Message-ID: <4CAC74DD.3030703@gmail.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1010061136220.2440@kaball-desktop>
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.
next prev parent reply other threads:[~2010-10-06 13:08 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-10-05 11:40 xl: pci completion error Sergey Tovpeko
2010-10-06 10:39 ` Stefano Stabellini
2010-10-06 13:08 ` Sergey Tovpeko [this message]
2010-10-06 13:54 ` Stefano Stabellini
2010-10-06 14:29 ` Gianni Tedesco
2010-10-06 16:36 ` Stefano Stabellini
2010-10-07 12:47 ` Sergey Tovpeko
2010-10-07 14:10 ` Gianni Tedesco
2010-10-08 10:15 ` Sergey Tovpeko
2010-10-08 10:36 ` Gianni Tedesco
2010-10-06 14:05 ` Gianni Tedesco
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4CAC74DD.3030703@gmail.com \
--to=tsv.devel@gmail.com \
--cc=stefano.stabellini@eu.citrix.com \
--cc=xen-devel@lists.xensource.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.