qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2 1/1] KVM s390 pci infrastructure modelling


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [PATCH v2 1/1] KVM s390 pci infrastructure modelling
Date: Mon, 6 Jul 2015 13:56:56 +0300

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?


> 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.

-- 
MST



reply via email to

[Prev in Thread] Current Thread [Next in Thread]