> -----Original Message----- > From: Ian Campbell [mailto:ijc@xxxxxxxxxxxxxx] > Sent: Thursday, July 28, 2011 8:11 AM > To: Rose, Gregory V; Konrad Rzeszutek Wilk > Cc: netdev@xxxxxxxxxxxxxxx; davem@xxxxxxxxxxxxx; > bhutchings@xxxxxxxxxxxxxx; Kirsher, Jeffrey T; Jesse Barnes; linux- > pci@xxxxxxxxxxxxxxx > Subject: Re: [RFC net-next PATCH 1/4] pci: Add flag indicating device has > been assigned by KVM > > On Wed, 2011-07-27 at 15:17 -0700, Greg Rose wrote: > > Device drivers that create and destroy SR-IOV virtual functions via > > calls to pci_enable_sriov() and pci_disable_sriov can cause catastrophic > > failures if they attempt to destroy VFs while they are assigned to > > guest virtual machines. By adding a flag for use by the KVM module > > to indicate that a device is assigned a device driver can check that > > flag and avoid destroying VFs while they are assigned and avoid system > > failures. > > > > Signed-off-by: Greg Rose <gregory.v.rose@xxxxxxxxx> > > --- > > > > include/linux/pci.h | 2 ++ > > I added Jesse and linux-pci to CC. > > > virt/kvm/assigned-dev.c | 2 ++ > > virt/kvm/iommu.c | 4 ++++ > > 3 files changed, 8 insertions(+), 0 deletions(-) > > I suppose this would also be useful in Xen's pciback or any other system > which does passthrough? (Konrad CC'd for pciback) Definitely yes. Xen experiences the same issues when the PF driver is removed while VFs are assigned to guests. > > Is there some common lower layer we could hook this in to? (does > iommu_attach/detach_device make sense?) Or shall we just add the flag > manipulations to pciback as well? [Greg Rose] I was unaware of any common lower layers, i.e I didn't know that Xen also uses the iommu_attach/detach_device calls. It took me a week of digging around in the KVM module code just to find these hooks. Generally I stick to Ethernet device drivers and I'm not that familiar with device pass through code. I was just confronted with a problem and looking for some way to fix it. ;^) That sounds like a good idea, let me have a look at it. - Greg ��.n��������+%������w��{.n�����{���"�)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥