On Wed, Dec 07, 2022 at 01:31:44PM -0400, Jason Gunthorpe wrote: > > Sorry, I meant VF. Your continued using of SR-IOV teminology now keeps > > confusing my mind so much that I start mistyping things. > > Well, what words do you want to use? The same I've used through this whole thread: controlling and controlled function. > So I don't think I've learned anything more about your objection. > > "fundamentally broken" doesn't help The objection is that: - in hardware fundamentally only the controlling funtion can control live migration features on the controlled function, because the controlled function is assigned to a VM which has control over it. - for the same reason there is no portable way to even find the controlling function from a controlled function, unless you want to equate PF = controlling and VF = controlled, and even that breaks down in some corner cases - if you want to control live migration from the controlled VM you need a new vfio subdriver for a function that has absolutely no new functionality itself related to live migration (quirks for bugs excepted). So by this architecture you build a convoluted mess where you need tons of vfio subdrivers that mostly just talk to the driver for the controlling function, which they can't even sanely discover. That's what I keep calling fundamentally broken.