On Fri, Aug 05, 2022 at 09:24:56AM +0100, Daniel P. Berrangé wrote:
For the RFC QEMU user space eBPF support,
https://lore.kernel.org/all/20220617073630.535914-6-chen.zhang@intel.com/T/
Maybe introduce the libubpf.so as a subproject like libvfio-user.so is more appropriate?
Fair comment. I never noticed them before, but why do we have those
submodules in the subprojects/ folder (libvduse, libvfio-user and
libvhost-user)? ... I don't think it's the job of QEMU to ship libraries
that a user might want to use for a certain feature, so could we please
remove those submodules again? If someone wants to use this, they can
compile the libraries on their own or help their favorite distribution to
ship them as packages.
FWIW, I don't really agree with shipping libvfio-user.so as a submodule
either, but the consensus was that we have to do it because there's no
stable ABI committed to by libvfio-user maintainers yet. My counterpoint
is that as long as QEMU ships libvfio-user as a submodule, there's no
incentive to create a stable ABI, leaving a chicken & egg scenario.
qemu is not the only consumer of the library, so I'm not sure removing the
submodule from qemu moves the needle in either direction.
We are still discovering our abstractions are not quite right in places, so
we're not yet confident enough to mark the API/ABI as stable (nor do we have any
testing of this in place). It would be all downside at this point.
IOW personally I'd rather libvfio-user.so was put into the distros right
now, and have the pain ABI incompatible releases act as motivation for
the creation of a stable ABI.
We can't control what the distributions choose to do, but speaking for
libvfio-user, we would not support this choice or anything like it. It would
only cause pain for users.