On Mon, Dec 06 2021, Jason Gunthorpe <jgg@xxxxxxxxxx> wrote: > On Fri, Dec 03, 2021 at 11:06:19AM -0700, Alex Williamson wrote: >> This is exactly the sort of "designed for QEMU implementation" >> inter-operability that I want to avoid. It doesn't take much of a >> crystal ball to guess that gratuitous and redundant device resets >> slow VM instantiation and are a likely target for optimization. > > Sorry, but Linus's "don't break userspace" forces us to this world. > > It does not matter what is written in text files, only what userspace > actually does and the kernel must accommodate existing userspace going > forward. So once released qemu forms some definitive spec and the > guardrails that limit what we can do going forward. But QEMU support is *experimental*, i.e. if it breaks, you get to keep the pieces, things may change in incompatible ways. And it is experimental for good reason! I don't want something that we don't support in QEMU lock us into a bad kernel interface, that's just utterly broken. It would mean that we must never introduce experimental interfaces in QEMU that may need some rework of the kernel interface, but need to keep those out of the tree -- and that can't be in the best interest of implementing things requiring interaction between the kernel and QEMU. If you really think we cannot make changes, I vote for declaring the current interface legacy and not further developed, and introduce a new, separate one that doesn't carry all of the baggage that this one does. We could even end up with a QEMU part that looks better!