From: Hong Bo Li <lihbbj@linux.vnet.ibm.com>
To: "Michael S. Tsirkin" <mst@redhat.com>
Cc: cornelia.huck@de.ibm.com, borntraeger@de.ibm.com,
sebott@linux.vnet.ibm.com, qemu-devel@nongnu.org, agraf@suse.de
Subject: Re: [Qemu-devel] [PATCH v2 1/1] KVM s390 pci infrastructure modelling
Date: Mon, 06 Jul 2015 10:06:50 +0800 [thread overview]
Message-ID: <5599E2BA.4020601@linux.vnet.ibm.com> (raw)
In-Reply-To: <20150704202136-mutt-send-email-mst@redhat.com>
On 7/5/2015 2:25, Michael S. Tsirkin wrote:
> On Fri, Jul 03, 2015 at 07:09:59PM +0800, Hong Bo Li wrote:
>>> But I would like to note that pci device drivers require driver handshake
>>> before device goes away.
>>> IIUC s390 hotplug is immediate, which is a problem.
>>> Maybe doing the change will help make sure device removal is acked
>>> by guest before it happens?
>>>
>> I did some prototype today. If define zpci first, the progress of unplug
>> will get complicated.
> The point is that you don't have to remove the zpci device at all.
> Remove pci device from zpci.
>
> I think the complication you refer to is the guest ack of
> the removal, isn't it?
> It's complicated, but it has a chance to actually work with
> pci device drivers.
>
> This, as opposed to just removing the device whenever host
> tells us to.
This patch supports the ack in this way:
After unplugging, the guest will do some cleanup work and disable the zpci device.
The "is_unplugged" flag in this patch is used to do this ack. Only after the device
be disabled, we can remove the zpci device from list and do unparent.
The complication I mean is:
1. If we define zpci first, the user can unplug a s390 pci device in two ways:
a) unplug the vfio pci device first, unplug the zpci device second.
If the user only tell us to unplug the vfio pci, after the ack, we will
still need to wait for the unplug zpci cmd from user, before that,
we have to maintain a useless zpci in list.
b) Unplug the zpci device directly. This will cause the unplugging of vfio pci
automatically. Then on s390, we have a different unplug cmd comparing to
other platform.
2. If we define vfio pci first, the user can unplug a s390 pci device in two ways:
a) Unplug the zpci first, unplug the vfio pci device second.
We don't need to maintain the extra s390 zpci structure, after ack, we can
remove the zpci from list and do unparent.
b) Unplug the vfio pci directly. This will cause the unplugging of zpci
automatically. Then on s390, we have a same unplug cmd comparing to
other platform.
The ack of these two methods are the same.
>> So I prefer defining vfio pci first.
>> And it looks like the vfio pci is the basic device, if we want this
>> vfio pci to work on s390, we have to define a zpci device to give some
>> additional information to it.
> if vfio connects to the bus internal to zpci, it can get
> things from the bus in a natural way.
>
> If zpci is connected to vfio, it becomes much messier.
>
For these two ways, the vfio pci both connect to the s390 pci root bus.
And zpci devices connect to the s390-pci-fac-bus, there is no difference.
next prev parent reply other threads:[~2015-07-06 2:07 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-29 9:24 [Qemu-devel] [PATCH v2 0/1] s390 pci infrastructure modelling Hong Bo Li
2015-06-29 9:24 ` [Qemu-devel] [PATCH v2 1/1] KVM " Hong Bo Li
2015-06-29 10:01 ` Michael S. Tsirkin
2015-06-30 6:16 ` Hong Bo Li
2015-07-01 6:22 ` Michael S. Tsirkin
2015-07-01 7:56 ` Hong Bo Li
2015-07-01 8:05 ` Michael S. Tsirkin
2015-07-01 9:13 ` Hong Bo Li
2015-07-01 9:22 ` Michael S. Tsirkin
2015-07-01 10:04 ` Hong Bo Li
2015-07-01 10:36 ` Michael S. Tsirkin
2015-07-01 11:11 ` Hong Bo Li
2015-07-01 11:23 ` Michael S. Tsirkin
2015-07-01 11:46 ` Hong Bo Li
2015-07-01 11:57 ` Michael S. Tsirkin
2015-07-01 12:30 ` Hong Bo Li
2015-07-01 12:42 ` Hong Bo Li
2015-07-01 13:37 ` Michael S. Tsirkin
2015-07-02 2:57 ` Hong Bo Li
2015-07-02 5:13 ` Michael S. Tsirkin
2015-07-02 5:26 ` Hong Bo Li
2015-07-03 11:09 ` Hong Bo Li
2015-07-04 18:25 ` Michael S. Tsirkin
2015-07-06 2:06 ` Hong Bo Li [this message]
2015-07-06 10:56 ` Michael S. Tsirkin
2015-07-06 12:09 ` Hong Bo Li
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=5599E2BA.4020601@linux.vnet.ibm.com \
--to=lihbbj@linux.vnet.ibm.com \
--cc=agraf@suse.de \
--cc=borntraeger@de.ibm.com \
--cc=cornelia.huck@de.ibm.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=sebott@linux.vnet.ibm.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).