On Tue, 4 May 2021 16:11:31 +0200 Greg Kurz groug@kaod.org wrote:
On Tue, 4 May 2021 15:30:15 +0200 Greg Kroah-Hartman gregkh@linuxfoundation.org wrote:
On Tue, May 04, 2021 at 03:20:34PM +0200, Greg Kurz wrote:
On Tue, 4 May 2021 14:59:07 +0200 Greg Kroah-Hartman gregkh@linuxfoundation.org wrote:
On Tue, May 04, 2021 at 02:22:36PM +0200, Greg Kurz wrote:
On Fri, 26 Mar 2021 07:13:09 +0100 Christoph Hellwig hch@lst.de wrote:
Hi all,
the nvlink2 vfio subdriver is a weird beast. It supports a hardware feature without any open source component - what would normally be the normal open source userspace that we require for kernel drivers, although in this particular case user space could of course be a kernel driver in a VM. It also happens to be a complete mess that does not properly bind to PCI IDs, is hacked into the vfio_pci driver and also pulles in over 1000 lines of code always build into powerpc kernels that have Power NV support enabled. Because of all these issues and the lack of breaking userspace when it is removed I think the best idea is to simply kill.
Changes since v1:
- document the removed subtypes as reserved
- add the ACK from Greg
Diffstat: arch/powerpc/platforms/powernv/npu-dma.c | 705 --------------------------- b/arch/powerpc/include/asm/opal.h | 3 b/arch/powerpc/include/asm/pci-bridge.h | 1 b/arch/powerpc/include/asm/pci.h | 7 b/arch/powerpc/platforms/powernv/Makefile | 2 b/arch/powerpc/platforms/powernv/opal-call.c | 2 b/arch/powerpc/platforms/powernv/pci-ioda.c | 185 ------- b/arch/powerpc/platforms/powernv/pci.c | 11 b/arch/powerpc/platforms/powernv/pci.h | 17 b/arch/powerpc/platforms/pseries/pci.c | 23 b/drivers/vfio/pci/Kconfig | 6 b/drivers/vfio/pci/Makefile | 1 b/drivers/vfio/pci/vfio_pci.c | 18 b/drivers/vfio/pci/vfio_pci_private.h | 14 b/include/uapi/linux/vfio.h | 38 -
Hi Christoph,
FYI, these uapi changes break build of QEMU.
What uapi changes?
All macros and structure definitions that are being removed from include/uapi/linux/vfio.h by patch 1.
What exactly breaks?
These macros and types are used by the current QEMU code base. Next time the QEMU source tree updates its copy of the kernel headers, the compilation of affected code will fail.
So does QEMU use this api that is being removed, or does it just have some odd build artifacts of the uapi things?
These are region subtypes definition and associated capabilities. QEMU basically gets information on VFIO regions from the kernel driver and for those regions with a nvlink2 subtype, it tries to extract some more nvlink2 related info.
Urgh, let's put the uapi header back in place with a deprecation notice. Userspace should never have a dependency on the existence of a given region, but clearly will have code to parse the data structure describing that region. I'll post a patch. Thanks,
Alex