On Wed, 21 Dec 2016 07:43:48 -0800 Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: > On Wed, Dec 21, 2016 at 04:39:18PM +0100, Paolo Bonzini wrote: > > That said, there are precedents in using UAPI this way for PV > > interfaces. See for example include/uapi/linux/virtio*.h and > > arch/x86/include/uapi/asm/kvm_para.h. > > We have all kinds of historical examples, but most of them turned > into a major pain sooner or later - my favourite example are the > SCSI protocol headers. > > Protocols needs to stay compatible on the (virtual) wire, but not > on the language level. Locking us into the strict UABI policies > for them just make someone life horrible further down the road. If the the protocols come from external sources (like the current NDIS definitions), then it is not a big deal. There is some overlap already where NDIS is used multiple places and there are multiple header files with same definition. That could be fixed. The bigger problem is that some of the API's between guest and host could be implemented multiple ways and don't want userspace ABI files constraining how something like atomic bit operation for wakeup is done. The other problem with the hyperv headers is they were initially done with only the Linux driver usage in mind. This made perfect sense at the time, the problem is that they mix internal state with protocol definitions. Lastly, there is licensing issues on headers. It would be good to have any userspace ABI headers licensed with a more liberal license so that BSD and DPDK drivers could use them directly. Right now each one reinvents. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html