qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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 20:09:34 +0800	[thread overview]
Message-ID: <559A6FFE.3060404@linux.vnet.ibm.com> (raw)
In-Reply-To: <20150706135503-mutt-send-email-mst@redhat.com>



On 7/6/2015 18:56, Michael S. Tsirkin wrote:
> On Mon, Jul 06, 2015 at 10:06:50AM +0800, Hong Bo Li wrote:
>>
>> 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.
> You can do the automatic unplug of zpci in 1 as well, can you not?

ok, got your point, will make a patch to verify that. Thank you!

>
>> 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.
> What if you don't specify zpci? Does vfio still work?
> If no then we have to conclude that vfio is connected through
> zpci not alongside it.
>

      reply	other threads:[~2015-07-06 12:10 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
2015-07-06 10:56                                           ` Michael S. Tsirkin
2015-07-06 12:09                                             ` Hong Bo Li [this message]

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=559A6FFE.3060404@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).