On Tue, Dec 06, 2022 at 11:51:23AM -0400, Jason Gunthorpe wrote: > That is a big deviation from where VFIO is right now, the controlled > function is the one with the VFIO driver, it should be the one that > drives the migration uAPI components. Well, that is one way to see it, but I think the more natural way to deal with it is to drive everyting from the controlling function, because that is by definition much more in control. More importantly any sane design will have easy ways to list and manipulate all the controlled functions from the controlling functions, while getting from the controlled function to the controlling one is extremely awkward, as anything that can be used for that is by definition and information leak. It seems mlx5 just gets away with that by saying controlled functions are always VFs, and the controlling function is a PF, but that will break down very easily, especially once you want to nest the controlling scheme (and yes, I'm not making this up, as the nesting scheme is being proposed for nvme privately).