* misc mdev tidyups
@ 2023-01-10 9:10 Christoph Hellwig
2023-01-10 9:10 ` [PATCH 1/4] vfio-mdev: allow building the samples into the kernel Christoph Hellwig
` (4 more replies)
0 siblings, 5 replies; 15+ messages in thread
From: Christoph Hellwig @ 2023-01-10 9:10 UTC (permalink / raw
To: Alex Williamson, Kirti Wankhede
Cc: Tony Krowiak, Halil Pasic, Jason Herne, Zhenyu Wang, Zhi Wang,
kvm, linux-s390, intel-gfx
Hi all,
this series tidies up the mdev Kconfig interaction and documentation a bit.
Diffstat:
Documentation/driver-api/vfio-mediated-device.rst | 108 ----------------------
Documentation/s390/vfio-ap.rst | 1
arch/s390/Kconfig | 6 -
arch/s390/configs/debug_defconfig | 1
arch/s390/configs/defconfig | 1
drivers/gpu/drm/i915/Kconfig | 2
drivers/vfio/mdev/Kconfig | 8 -
samples/Kconfig | 16 +--
samples/vfio-mdev/README.rst | 100 ++++++++++++++++++++
9 files changed, 115 insertions(+), 128 deletions(-)
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH 1/4] vfio-mdev: allow building the samples into the kernel
2023-01-10 9:10 misc mdev tidyups Christoph Hellwig
@ 2023-01-10 9:10 ` Christoph Hellwig
2023-01-10 14:54 ` Anthony Krowiak
2023-01-10 16:11 ` Jason Gunthorpe
2023-01-10 9:10 ` [PATCH 2/4] vfio-mdev: turn VFIO_MDEV into a selectable symbol Christoph Hellwig
` (3 subsequent siblings)
4 siblings, 2 replies; 15+ messages in thread
From: Christoph Hellwig @ 2023-01-10 9:10 UTC (permalink / raw
To: Alex Williamson, Kirti Wankhede
Cc: Tony Krowiak, Halil Pasic, Jason Herne, Zhenyu Wang, Zhi Wang,
kvm, linux-s390, intel-gfx
There is nothing in the vfio-mdev sample drivers that requires building
them as modules, so remove that restriction.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
samples/Kconfig | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/samples/Kconfig b/samples/Kconfig
index 0d81c00289ee36..f1b8d4ff123036 100644
--- a/samples/Kconfig
+++ b/samples/Kconfig
@@ -184,23 +184,23 @@ config SAMPLE_UHID
Build UHID sample program.
config SAMPLE_VFIO_MDEV_MTTY
- tristate "Build VFIO mtty example mediated device sample code -- loadable modules only"
- depends on VFIO_MDEV && m
+ tristate "Build VFIO mtty example mediated device sample code"
+ depends on VFIO_MDEV
help
Build a virtual tty sample driver for use as a VFIO
mediated device
config SAMPLE_VFIO_MDEV_MDPY
- tristate "Build VFIO mdpy example mediated device sample code -- loadable modules only"
- depends on VFIO_MDEV && m
+ tristate "Build VFIO mdpy example mediated device sample code"
+ depends on VFIO_MDEV
help
Build a virtual display sample driver for use as a VFIO
mediated device. It is a simple framebuffer and supports
the region display interface (VFIO_GFX_PLANE_TYPE_REGION).
config SAMPLE_VFIO_MDEV_MDPY_FB
- tristate "Build VFIO mdpy example guest fbdev driver -- loadable module only"
- depends on FB && m
+ tristate "Build VFIO mdpy example guest fbdev driver"
+ depends on FB
select FB_CFB_FILLRECT
select FB_CFB_COPYAREA
select FB_CFB_IMAGEBLIT
@@ -208,8 +208,8 @@ config SAMPLE_VFIO_MDEV_MDPY_FB
Guest fbdev driver for the virtual display sample driver.
config SAMPLE_VFIO_MDEV_MBOCHS
- tristate "Build VFIO mdpy example mediated device sample code -- loadable modules only"
- depends on VFIO_MDEV && m
+ tristate "Build VFIO mdpy example mediated device sample code"
+ depends on VFIO_MDEV
select DMA_SHARED_BUFFER
help
Build a virtual display sample driver for use as a VFIO
--
2.35.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 2/4] vfio-mdev: turn VFIO_MDEV into a selectable symbol
2023-01-10 9:10 misc mdev tidyups Christoph Hellwig
2023-01-10 9:10 ` [PATCH 1/4] vfio-mdev: allow building the samples into the kernel Christoph Hellwig
@ 2023-01-10 9:10 ` Christoph Hellwig
2023-01-10 14:51 ` Anthony Krowiak
2023-01-10 16:12 ` Jason Gunthorpe
2023-01-10 9:10 ` [PATCH 3/4] vfio-mdev: move the mtty usage documentation Christoph Hellwig
` (2 subsequent siblings)
4 siblings, 2 replies; 15+ messages in thread
From: Christoph Hellwig @ 2023-01-10 9:10 UTC (permalink / raw
To: Alex Williamson, Kirti Wankhede
Cc: Tony Krowiak, Halil Pasic, Jason Herne, Zhenyu Wang, Zhi Wang,
kvm, linux-s390, intel-gfx
VFIO_MDEV is just a library with helpers for the drivers. Stop making
it a user choice and just select it by the drivers that use the helpers.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
Documentation/s390/vfio-ap.rst | 1 -
arch/s390/Kconfig | 6 ++++--
arch/s390/configs/debug_defconfig | 1 -
arch/s390/configs/defconfig | 1 -
drivers/gpu/drm/i915/Kconfig | 2 +-
drivers/vfio/mdev/Kconfig | 8 +-------
samples/Kconfig | 6 +++---
7 files changed, 9 insertions(+), 16 deletions(-)
diff --git a/Documentation/s390/vfio-ap.rst b/Documentation/s390/vfio-ap.rst
index 00f4a04f6d4c6a..d46e98c7c1ec6c 100644
--- a/Documentation/s390/vfio-ap.rst
+++ b/Documentation/s390/vfio-ap.rst
@@ -553,7 +553,6 @@ These are the steps:
* ZCRYPT
* S390_AP_IOMMU
* VFIO
- * VFIO_MDEV
* KVM
If using make menuconfig select the following to build the vfio_ap module::
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
index 318fce77601d35..60fddcdad495e6 100644
--- a/arch/s390/Kconfig
+++ b/arch/s390/Kconfig
@@ -705,7 +705,8 @@ config EADM_SCH
config VFIO_CCW
def_tristate n
prompt "Support for VFIO-CCW subchannels"
- depends on S390_CCW_IOMMU && VFIO_MDEV
+ depends on S390_CCW_IOMMU
+ select VFIO_MDEV
help
This driver allows usage of I/O subchannels via VFIO-CCW.
@@ -715,7 +716,8 @@ config VFIO_CCW
config VFIO_AP
def_tristate n
prompt "VFIO support for AP devices"
- depends on S390_AP_IOMMU && VFIO_MDEV && KVM
+ depends on S390_AP_IOMMU && KVM
+ select VFIO_MDEV
depends on ZCRYPT
help
This driver grants access to Adjunct Processor (AP) devices
diff --git a/arch/s390/configs/debug_defconfig b/arch/s390/configs/debug_defconfig
index 2a827002934bc6..e78fc3ba7d442a 100644
--- a/arch/s390/configs/debug_defconfig
+++ b/arch/s390/configs/debug_defconfig
@@ -596,7 +596,6 @@ CONFIG_SYNC_FILE=y
CONFIG_VFIO=m
CONFIG_VFIO_PCI=m
CONFIG_MLX5_VFIO_PCI=m
-CONFIG_VFIO_MDEV=m
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_INPUT=y
diff --git a/arch/s390/configs/defconfig b/arch/s390/configs/defconfig
index fb780e80e4c8f7..f7eb2e527b6e65 100644
--- a/arch/s390/configs/defconfig
+++ b/arch/s390/configs/defconfig
@@ -585,7 +585,6 @@ CONFIG_SYNC_FILE=y
CONFIG_VFIO=m
CONFIG_VFIO_PCI=m
CONFIG_MLX5_VFIO_PCI=m
-CONFIG_VFIO_MDEV=m
CONFIG_VIRTIO_PCI=m
CONFIG_VIRTIO_BALLOON=m
CONFIG_VIRTIO_INPUT=y
diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig
index 3efce05d7b57ca..d06da455253cdb 100644
--- a/drivers/gpu/drm/i915/Kconfig
+++ b/drivers/gpu/drm/i915/Kconfig
@@ -116,9 +116,9 @@ config DRM_I915_GVT_KVMGT
depends on X86
depends on 64BIT
depends on KVM
- depends on VFIO_MDEV
select DRM_I915_GVT
select KVM_EXTERNAL_WRITE_TRACKING
+ select VFIO_MDEV
help
Choose this option if you want to enable Intel GVT-g graphics
diff --git a/drivers/vfio/mdev/Kconfig b/drivers/vfio/mdev/Kconfig
index 646dbed44eb283..e5fb84e0796507 100644
--- a/drivers/vfio/mdev/Kconfig
+++ b/drivers/vfio/mdev/Kconfig
@@ -1,10 +1,4 @@
# SPDX-License-Identifier: GPL-2.0-only
config VFIO_MDEV
- tristate "Mediated device driver framework"
- default n
- help
- Provides a framework to virtualize devices.
- See Documentation/driver-api/vfio-mediated-device.rst for more details.
-
- If you don't know what do here, say N.
+ tristate
diff --git a/samples/Kconfig b/samples/Kconfig
index f1b8d4ff123036..56b191d128d88f 100644
--- a/samples/Kconfig
+++ b/samples/Kconfig
@@ -185,14 +185,14 @@ config SAMPLE_UHID
config SAMPLE_VFIO_MDEV_MTTY
tristate "Build VFIO mtty example mediated device sample code"
- depends on VFIO_MDEV
+ select VFIO_MDEV
help
Build a virtual tty sample driver for use as a VFIO
mediated device
config SAMPLE_VFIO_MDEV_MDPY
tristate "Build VFIO mdpy example mediated device sample code"
- depends on VFIO_MDEV
+ select VFIO_MDEV
help
Build a virtual display sample driver for use as a VFIO
mediated device. It is a simple framebuffer and supports
@@ -209,7 +209,7 @@ config SAMPLE_VFIO_MDEV_MDPY_FB
config SAMPLE_VFIO_MDEV_MBOCHS
tristate "Build VFIO mdpy example mediated device sample code"
- depends on VFIO_MDEV
+ select VFIO_MDEV
select DMA_SHARED_BUFFER
help
Build a virtual display sample driver for use as a VFIO
--
2.35.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 3/4] vfio-mdev: move the mtty usage documentation
2023-01-10 9:10 misc mdev tidyups Christoph Hellwig
2023-01-10 9:10 ` [PATCH 1/4] vfio-mdev: allow building the samples into the kernel Christoph Hellwig
2023-01-10 9:10 ` [PATCH 2/4] vfio-mdev: turn VFIO_MDEV into a selectable symbol Christoph Hellwig
@ 2023-01-10 9:10 ` Christoph Hellwig
2023-01-10 16:12 ` Jason Gunthorpe
2023-01-10 9:10 ` [PATCH 4/4] vfio-mdev: remove an non-existing driver from vfio-mediated-device Christoph Hellwig
2023-01-23 19:37 ` misc mdev tidyups Alex Williamson
4 siblings, 1 reply; 15+ messages in thread
From: Christoph Hellwig @ 2023-01-10 9:10 UTC (permalink / raw
To: Alex Williamson, Kirti Wankhede
Cc: Tony Krowiak, Halil Pasic, Jason Herne, Zhenyu Wang, Zhi Wang,
kvm, linux-s390, intel-gfx
Move the documentation on how to use mtty to samples/vfio-mdev/README.rst
as it is in no way related to the vfio API. This matches how the bpf
and pktgen samples are documented.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
.../driver-api/vfio-mediated-device.rst | 100 ------------------
samples/vfio-mdev/README.rst | 100 ++++++++++++++++++
2 files changed, 100 insertions(+), 100 deletions(-)
create mode 100644 samples/vfio-mdev/README.rst
diff --git a/Documentation/driver-api/vfio-mediated-device.rst b/Documentation/driver-api/vfio-mediated-device.rst
index fdf7d69378ec4a..d4267243b4f525 100644
--- a/Documentation/driver-api/vfio-mediated-device.rst
+++ b/Documentation/driver-api/vfio-mediated-device.rst
@@ -270,106 +270,6 @@ these callbacks are supported in the TYPE1 IOMMU module. To enable them for
other IOMMU backend modules, such as PPC64 sPAPR module, they need to provide
these two callback functions.
-Using the Sample Code
-=====================
-
-mtty.c in samples/vfio-mdev/ directory is a sample driver program to
-demonstrate how to use the mediated device framework.
-
-The sample driver creates an mdev device that simulates a serial port over a PCI
-card.
-
-1. Build and load the mtty.ko module.
-
- This step creates a dummy device, /sys/devices/virtual/mtty/mtty/
-
- Files in this device directory in sysfs are similar to the following::
-
- # tree /sys/devices/virtual/mtty/mtty/
- /sys/devices/virtual/mtty/mtty/
- |-- mdev_supported_types
- | |-- mtty-1
- | | |-- available_instances
- | | |-- create
- | | |-- device_api
- | | |-- devices
- | | `-- name
- | `-- mtty-2
- | |-- available_instances
- | |-- create
- | |-- device_api
- | |-- devices
- | `-- name
- |-- mtty_dev
- | `-- sample_mtty_dev
- |-- power
- | |-- autosuspend_delay_ms
- | |-- control
- | |-- runtime_active_time
- | |-- runtime_status
- | `-- runtime_suspended_time
- |-- subsystem -> ../../../../class/mtty
- `-- uevent
-
-2. Create a mediated device by using the dummy device that you created in the
- previous step::
-
- # echo "83b8f4f2-509f-382f-3c1e-e6bfe0fa1001" > \
- /sys/devices/virtual/mtty/mtty/mdev_supported_types/mtty-2/create
-
-3. Add parameters to qemu-kvm::
-
- -device vfio-pci,\
- sysfsdev=/sys/bus/mdev/devices/83b8f4f2-509f-382f-3c1e-e6bfe0fa1001
-
-4. Boot the VM.
-
- In the Linux guest VM, with no hardware on the host, the device appears
- as follows::
-
- # lspci -s 00:05.0 -xxvv
- 00:05.0 Serial controller: Device 4348:3253 (rev 10) (prog-if 02 [16550])
- Subsystem: Device 4348:3253
- Physical Slot: 5
- Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
- Stepping- SERR- FastB2B- DisINTx-
- Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
- <TAbort- <MAbort- >SERR- <PERR- INTx-
- Interrupt: pin A routed to IRQ 10
- Region 0: I/O ports at c150 [size=8]
- Region 1: I/O ports at c158 [size=8]
- Kernel driver in use: serial
- 00: 48 43 53 32 01 00 00 02 10 02 00 07 00 00 00 00
- 10: 51 c1 00 00 59 c1 00 00 00 00 00 00 00 00 00 00
- 20: 00 00 00 00 00 00 00 00 00 00 00 00 48 43 53 32
- 30: 00 00 00 00 00 00 00 00 00 00 00 00 0a 01 00 00
-
- In the Linux guest VM, dmesg output for the device is as follows:
-
- serial 0000:00:05.0: PCI INT A -> Link[LNKA] -> GSI 10 (level, high) -> IRQ 10
- 0000:00:05.0: ttyS1 at I/O 0xc150 (irq = 10) is a 16550A
- 0000:00:05.0: ttyS2 at I/O 0xc158 (irq = 10) is a 16550A
-
-
-5. In the Linux guest VM, check the serial ports::
-
- # setserial -g /dev/ttyS*
- /dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
- /dev/ttyS1, UART: 16550A, Port: 0xc150, IRQ: 10
- /dev/ttyS2, UART: 16550A, Port: 0xc158, IRQ: 10
-
-6. Using minicom or any terminal emulation program, open port /dev/ttyS1 or
- /dev/ttyS2 with hardware flow control disabled.
-
-7. Type data on the minicom terminal or send data to the terminal emulation
- program and read the data.
-
- Data is loop backed from hosts mtty driver.
-
-8. Destroy the mediated device that you created::
-
- # echo 1 > /sys/bus/mdev/devices/83b8f4f2-509f-382f-3c1e-e6bfe0fa1001/remove
-
References
==========
diff --git a/samples/vfio-mdev/README.rst b/samples/vfio-mdev/README.rst
new file mode 100644
index 00000000000000..b52eb37739c039
--- /dev/null
+++ b/samples/vfio-mdev/README.rst
@@ -0,0 +1,100 @@
+Using the mtty vfio-mdev sample code
+====================================
+
+mtty is a sample vfio-mdev driver that demonstrates how to use the mediated
+device framework.
+
+The sample driver creates an mdev device that simulates a serial port over a PCI
+card.
+
+1. Build and load the mtty.ko module.
+
+ This step creates a dummy device, /sys/devices/virtual/mtty/mtty/
+
+ Files in this device directory in sysfs are similar to the following::
+
+ # tree /sys/devices/virtual/mtty/mtty/
+ /sys/devices/virtual/mtty/mtty/
+ |-- mdev_supported_types
+ | |-- mtty-1
+ | | |-- available_instances
+ | | |-- create
+ | | |-- device_api
+ | | |-- devices
+ | | `-- name
+ | `-- mtty-2
+ | |-- available_instances
+ | |-- create
+ | |-- device_api
+ | |-- devices
+ | `-- name
+ |-- mtty_dev
+ | `-- sample_mtty_dev
+ |-- power
+ | |-- autosuspend_delay_ms
+ | |-- control
+ | |-- runtime_active_time
+ | |-- runtime_status
+ | `-- runtime_suspended_time
+ |-- subsystem -> ../../../../class/mtty
+ `-- uevent
+
+2. Create a mediated device by using the dummy device that you created in the
+ previous step::
+
+ # echo "83b8f4f2-509f-382f-3c1e-e6bfe0fa1001" > \
+ /sys/devices/virtual/mtty/mtty/mdev_supported_types/mtty-2/create
+
+3. Add parameters to qemu-kvm::
+
+ -device vfio-pci,\
+ sysfsdev=/sys/bus/mdev/devices/83b8f4f2-509f-382f-3c1e-e6bfe0fa1001
+
+4. Boot the VM.
+
+ In the Linux guest VM, with no hardware on the host, the device appears
+ as follows::
+
+ # lspci -s 00:05.0 -xxvv
+ 00:05.0 Serial controller: Device 4348:3253 (rev 10) (prog-if 02 [16550])
+ Subsystem: Device 4348:3253
+ Physical Slot: 5
+ Control: I/O+ Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr-
+ Stepping- SERR- FastB2B- DisINTx-
+ Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort-
+ <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin A routed to IRQ 10
+ Region 0: I/O ports at c150 [size=8]
+ Region 1: I/O ports at c158 [size=8]
+ Kernel driver in use: serial
+ 00: 48 43 53 32 01 00 00 02 10 02 00 07 00 00 00 00
+ 10: 51 c1 00 00 59 c1 00 00 00 00 00 00 00 00 00 00
+ 20: 00 00 00 00 00 00 00 00 00 00 00 00 48 43 53 32
+ 30: 00 00 00 00 00 00 00 00 00 00 00 00 0a 01 00 00
+
+ In the Linux guest VM, dmesg output for the device is as follows:
+
+ serial 0000:00:05.0: PCI INT A -> Link[LNKA] -> GSI 10 (level, high) -> IRQ 10
+ 0000:00:05.0: ttyS1 at I/O 0xc150 (irq = 10) is a 16550A
+ 0000:00:05.0: ttyS2 at I/O 0xc158 (irq = 10) is a 16550A
+
+
+5. In the Linux guest VM, check the serial ports::
+
+ # setserial -g /dev/ttyS*
+ /dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4
+ /dev/ttyS1, UART: 16550A, Port: 0xc150, IRQ: 10
+ /dev/ttyS2, UART: 16550A, Port: 0xc158, IRQ: 10
+
+6. Using minicom or any terminal emulation program, open port /dev/ttyS1 or
+ /dev/ttyS2 with hardware flow control disabled.
+
+7. Type data on the minicom terminal or send data to the terminal emulation
+ program and read the data.
+
+ Data is loop backed from hosts mtty driver.
+
+8. Destroy the mediated device that you created::
+
+ # echo 1 > /sys/bus/mdev/devices/83b8f4f2-509f-382f-3c1e-e6bfe0fa1001/remove
+
--
2.35.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH 4/4] vfio-mdev: remove an non-existing driver from vfio-mediated-device
2023-01-10 9:10 misc mdev tidyups Christoph Hellwig
` (2 preceding siblings ...)
2023-01-10 9:10 ` [PATCH 3/4] vfio-mdev: move the mtty usage documentation Christoph Hellwig
@ 2023-01-10 9:10 ` Christoph Hellwig
2023-01-10 14:49 ` Anthony Krowiak
2023-01-10 16:13 ` Jason Gunthorpe
2023-01-23 19:37 ` misc mdev tidyups Alex Williamson
4 siblings, 2 replies; 15+ messages in thread
From: Christoph Hellwig @ 2023-01-10 9:10 UTC (permalink / raw
To: Alex Williamson, Kirti Wankhede
Cc: Tony Krowiak, Halil Pasic, Jason Herne, Zhenyu Wang, Zhi Wang,
kvm, linux-s390, intel-gfx
The nvidia mdev driver does not actually exist anywhere in the tree.
Signed-off-by: Christoph Hellwig <hch@lst.de>
---
Documentation/driver-api/vfio-mediated-device.rst | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
diff --git a/Documentation/driver-api/vfio-mediated-device.rst b/Documentation/driver-api/vfio-mediated-device.rst
index d4267243b4f525..bbd548b66b4255 100644
--- a/Documentation/driver-api/vfio-mediated-device.rst
+++ b/Documentation/driver-api/vfio-mediated-device.rst
@@ -60,7 +60,7 @@ devices as examples, as these devices are the first devices to use this module::
| mdev.ko |
| +-----------+ | mdev_register_parent() +--------------+
| | | +<------------------------+ |
- | | | | | nvidia.ko |<-> physical
+ | | | | | ccw_device.ko|<-> physical
| | | +------------------------>+ | device
| | | | callbacks +--------------+
| | Physical | |
@@ -69,12 +69,6 @@ devices as examples, as these devices are the first devices to use this module::
| | | | | i915.ko |<-> physical
| | | +------------------------>+ | device
| | | | callbacks +--------------+
- | | | |
- | | | | mdev_register_parent() +--------------+
- | | | +<------------------------+ |
- | | | | | ccw_device.ko|<-> physical
- | | | +------------------------>+ | device
- | | | | callbacks +--------------+
| +-----------+ |
+---------------+
--
2.35.1
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH 4/4] vfio-mdev: remove an non-existing driver from vfio-mediated-device
2023-01-10 9:10 ` [PATCH 4/4] vfio-mdev: remove an non-existing driver from vfio-mediated-device Christoph Hellwig
@ 2023-01-10 14:49 ` Anthony Krowiak
2023-01-10 16:13 ` Jason Gunthorpe
1 sibling, 0 replies; 15+ messages in thread
From: Anthony Krowiak @ 2023-01-10 14:49 UTC (permalink / raw
To: Christoph Hellwig, Alex Williamson, Kirti Wankhede
Cc: Halil Pasic, Jason Herne, Zhenyu Wang, Zhi Wang, kvm, linux-s390,
intel-gfx
LGTM
Reviewed-by: Tony Krowiak <akrowiak@linux.ibm.com>
On 1/10/23 4:10 AM, Christoph Hellwig wrote:
> The nvidia mdev driver does not actually exist anywhere in the tree.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> Documentation/driver-api/vfio-mediated-device.rst | 8 +-------
> 1 file changed, 1 insertion(+), 7 deletions(-)
>
> diff --git a/Documentation/driver-api/vfio-mediated-device.rst b/Documentation/driver-api/vfio-mediated-device.rst
> index d4267243b4f525..bbd548b66b4255 100644
> --- a/Documentation/driver-api/vfio-mediated-device.rst
> +++ b/Documentation/driver-api/vfio-mediated-device.rst
> @@ -60,7 +60,7 @@ devices as examples, as these devices are the first devices to use this module::
> | mdev.ko |
> | +-----------+ | mdev_register_parent() +--------------+
> | | | +<------------------------+ |
> - | | | | | nvidia.ko |<-> physical
> + | | | | | ccw_device.ko|<-> physical
> | | | +------------------------>+ | device
> | | | | callbacks +--------------+
> | | Physical | |
> @@ -69,12 +69,6 @@ devices as examples, as these devices are the first devices to use this module::
> | | | | | i915.ko |<-> physical
> | | | +------------------------>+ | device
> | | | | callbacks +--------------+
> - | | | |
> - | | | | mdev_register_parent() +--------------+
> - | | | +<------------------------+ |
> - | | | | | ccw_device.ko|<-> physical
> - | | | +------------------------>+ | device
> - | | | | callbacks +--------------+
> | +-----------+ |
> +---------------+
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/4] vfio-mdev: turn VFIO_MDEV into a selectable symbol
2023-01-10 9:10 ` [PATCH 2/4] vfio-mdev: turn VFIO_MDEV into a selectable symbol Christoph Hellwig
@ 2023-01-10 14:51 ` Anthony Krowiak
2023-01-10 16:12 ` Jason Gunthorpe
1 sibling, 0 replies; 15+ messages in thread
From: Anthony Krowiak @ 2023-01-10 14:51 UTC (permalink / raw
To: Christoph Hellwig, Alex Williamson, Kirti Wankhede
Cc: Halil Pasic, Jason Herne, Zhenyu Wang, Zhi Wang, kvm, linux-s390,
intel-gfx
Reviewed-by: Tony Krowiak <akrowiak@linux.ibm.com>
On 1/10/23 4:10 AM, Christoph Hellwig wrote:
> VFIO_MDEV is just a library with helpers for the drivers. Stop making
> it a user choice and just select it by the drivers that use the helpers.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> Documentation/s390/vfio-ap.rst | 1 -
> arch/s390/Kconfig | 6 ++++--
> arch/s390/configs/debug_defconfig | 1 -
> arch/s390/configs/defconfig | 1 -
> drivers/gpu/drm/i915/Kconfig | 2 +-
> drivers/vfio/mdev/Kconfig | 8 +-------
> samples/Kconfig | 6 +++---
> 7 files changed, 9 insertions(+), 16 deletions(-)
>
> diff --git a/Documentation/s390/vfio-ap.rst b/Documentation/s390/vfio-ap.rst
> index 00f4a04f6d4c6a..d46e98c7c1ec6c 100644
> --- a/Documentation/s390/vfio-ap.rst
> +++ b/Documentation/s390/vfio-ap.rst
> @@ -553,7 +553,6 @@ These are the steps:
> * ZCRYPT
> * S390_AP_IOMMU
> * VFIO
> - * VFIO_MDEV
> * KVM
>
> If using make menuconfig select the following to build the vfio_ap module::
> diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
> index 318fce77601d35..60fddcdad495e6 100644
> --- a/arch/s390/Kconfig
> +++ b/arch/s390/Kconfig
> @@ -705,7 +705,8 @@ config EADM_SCH
> config VFIO_CCW
> def_tristate n
> prompt "Support for VFIO-CCW subchannels"
> - depends on S390_CCW_IOMMU && VFIO_MDEV
> + depends on S390_CCW_IOMMU
> + select VFIO_MDEV
> help
> This driver allows usage of I/O subchannels via VFIO-CCW.
>
> @@ -715,7 +716,8 @@ config VFIO_CCW
> config VFIO_AP
> def_tristate n
> prompt "VFIO support for AP devices"
> - depends on S390_AP_IOMMU && VFIO_MDEV && KVM
> + depends on S390_AP_IOMMU && KVM
> + select VFIO_MDEV
> depends on ZCRYPT
> help
> This driver grants access to Adjunct Processor (AP) devices
> diff --git a/arch/s390/configs/debug_defconfig b/arch/s390/configs/debug_defconfig
> index 2a827002934bc6..e78fc3ba7d442a 100644
> --- a/arch/s390/configs/debug_defconfig
> +++ b/arch/s390/configs/debug_defconfig
> @@ -596,7 +596,6 @@ CONFIG_SYNC_FILE=y
> CONFIG_VFIO=m
> CONFIG_VFIO_PCI=m
> CONFIG_MLX5_VFIO_PCI=m
> -CONFIG_VFIO_MDEV=m
> CONFIG_VIRTIO_PCI=m
> CONFIG_VIRTIO_BALLOON=m
> CONFIG_VIRTIO_INPUT=y
> diff --git a/arch/s390/configs/defconfig b/arch/s390/configs/defconfig
> index fb780e80e4c8f7..f7eb2e527b6e65 100644
> --- a/arch/s390/configs/defconfig
> +++ b/arch/s390/configs/defconfig
> @@ -585,7 +585,6 @@ CONFIG_SYNC_FILE=y
> CONFIG_VFIO=m
> CONFIG_VFIO_PCI=m
> CONFIG_MLX5_VFIO_PCI=m
> -CONFIG_VFIO_MDEV=m
> CONFIG_VIRTIO_PCI=m
> CONFIG_VIRTIO_BALLOON=m
> CONFIG_VIRTIO_INPUT=y
> diff --git a/drivers/gpu/drm/i915/Kconfig b/drivers/gpu/drm/i915/Kconfig
> index 3efce05d7b57ca..d06da455253cdb 100644
> --- a/drivers/gpu/drm/i915/Kconfig
> +++ b/drivers/gpu/drm/i915/Kconfig
> @@ -116,9 +116,9 @@ config DRM_I915_GVT_KVMGT
> depends on X86
> depends on 64BIT
> depends on KVM
> - depends on VFIO_MDEV
> select DRM_I915_GVT
> select KVM_EXTERNAL_WRITE_TRACKING
> + select VFIO_MDEV
>
> help
> Choose this option if you want to enable Intel GVT-g graphics
> diff --git a/drivers/vfio/mdev/Kconfig b/drivers/vfio/mdev/Kconfig
> index 646dbed44eb283..e5fb84e0796507 100644
> --- a/drivers/vfio/mdev/Kconfig
> +++ b/drivers/vfio/mdev/Kconfig
> @@ -1,10 +1,4 @@
> # SPDX-License-Identifier: GPL-2.0-only
>
> config VFIO_MDEV
> - tristate "Mediated device driver framework"
> - default n
> - help
> - Provides a framework to virtualize devices.
> - See Documentation/driver-api/vfio-mediated-device.rst for more details.
> -
> - If you don't know what do here, say N.
> + tristate
> diff --git a/samples/Kconfig b/samples/Kconfig
> index f1b8d4ff123036..56b191d128d88f 100644
> --- a/samples/Kconfig
> +++ b/samples/Kconfig
> @@ -185,14 +185,14 @@ config SAMPLE_UHID
>
> config SAMPLE_VFIO_MDEV_MTTY
> tristate "Build VFIO mtty example mediated device sample code"
> - depends on VFIO_MDEV
> + select VFIO_MDEV
> help
> Build a virtual tty sample driver for use as a VFIO
> mediated device
>
> config SAMPLE_VFIO_MDEV_MDPY
> tristate "Build VFIO mdpy example mediated device sample code"
> - depends on VFIO_MDEV
> + select VFIO_MDEV
> help
> Build a virtual display sample driver for use as a VFIO
> mediated device. It is a simple framebuffer and supports
> @@ -209,7 +209,7 @@ config SAMPLE_VFIO_MDEV_MDPY_FB
>
> config SAMPLE_VFIO_MDEV_MBOCHS
> tristate "Build VFIO mdpy example mediated device sample code"
> - depends on VFIO_MDEV
> + select VFIO_MDEV
> select DMA_SHARED_BUFFER
> help
> Build a virtual display sample driver for use as a VFIO
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] vfio-mdev: allow building the samples into the kernel
2023-01-10 9:10 ` [PATCH 1/4] vfio-mdev: allow building the samples into the kernel Christoph Hellwig
@ 2023-01-10 14:54 ` Anthony Krowiak
2023-01-10 15:27 ` Christoph Hellwig
2023-01-10 16:11 ` Jason Gunthorpe
1 sibling, 1 reply; 15+ messages in thread
From: Anthony Krowiak @ 2023-01-10 14:54 UTC (permalink / raw
To: Christoph Hellwig, Alex Williamson, Kirti Wankhede
Cc: Halil Pasic, Jason Herne, Zhenyu Wang, Zhi Wang, kvm, linux-s390,
intel-gfx
On 1/10/23 4:10 AM, Christoph Hellwig wrote:
> There is nothing in the vfio-mdev sample drivers that requires building
> them as modules, so remove that restriction.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> samples/Kconfig | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
>
> diff --git a/samples/Kconfig b/samples/Kconfig
> index 0d81c00289ee36..f1b8d4ff123036 100644
> --- a/samples/Kconfig
> +++ b/samples/Kconfig
> @@ -184,23 +184,23 @@ config SAMPLE_UHID
> Build UHID sample program.
>
> config SAMPLE_VFIO_MDEV_MTTY
> - tristate "Build VFIO mtty example mediated device sample code -- loadable modules only"
> - depends on VFIO_MDEV && m
> + tristate "Build VFIO mtty example mediated device sample code"
> + depends on VFIO_MDEV
Admittedly, I'm not very fluent with Kconfig, but in patch 2 you stated,
"VFIO_MDEV is just a library with helpers for the drivers. Stop making
it a user choice and just select it by the drivers that use the
helpers". Why are you not selecting it here?
> help
> Build a virtual tty sample driver for use as a VFIO
> mediated device
>
> config SAMPLE_VFIO_MDEV_MDPY
> - tristate "Build VFIO mdpy example mediated device sample code -- loadable modules only"
> - depends on VFIO_MDEV && m
> + tristate "Build VFIO mdpy example mediated device sample code"
> + depends on VFIO_MDEV
> help
> Build a virtual display sample driver for use as a VFIO
> mediated device. It is a simple framebuffer and supports
> the region display interface (VFIO_GFX_PLANE_TYPE_REGION).
>
> config SAMPLE_VFIO_MDEV_MDPY_FB
> - tristate "Build VFIO mdpy example guest fbdev driver -- loadable module only"
> - depends on FB && m
> + tristate "Build VFIO mdpy example guest fbdev driver"
> + depends on FB
> select FB_CFB_FILLRECT
> select FB_CFB_COPYAREA
> select FB_CFB_IMAGEBLIT
> @@ -208,8 +208,8 @@ config SAMPLE_VFIO_MDEV_MDPY_FB
> Guest fbdev driver for the virtual display sample driver.
>
> config SAMPLE_VFIO_MDEV_MBOCHS
> - tristate "Build VFIO mdpy example mediated device sample code -- loadable modules only"
> - depends on VFIO_MDEV && m
> + tristate "Build VFIO mdpy example mediated device sample code"
> + depends on VFIO_MDEV
> select DMA_SHARED_BUFFER
> help
> Build a virtual display sample driver for use as a VFIO
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] vfio-mdev: allow building the samples into the kernel
2023-01-10 14:54 ` Anthony Krowiak
@ 2023-01-10 15:27 ` Christoph Hellwig
2023-01-10 15:32 ` Anthony Krowiak
0 siblings, 1 reply; 15+ messages in thread
From: Christoph Hellwig @ 2023-01-10 15:27 UTC (permalink / raw
To: Anthony Krowiak
Cc: Christoph Hellwig, Alex Williamson, Kirti Wankhede, Halil Pasic,
Jason Herne, Zhenyu Wang, Zhi Wang, kvm, linux-s390, intel-gfx
On Tue, Jan 10, 2023 at 09:54:51AM -0500, Anthony Krowiak wrote:
>> + tristate "Build VFIO mtty example mediated device sample code"
>> + depends on VFIO_MDEV
>
>
> Admittedly, I'm not very fluent with Kconfig, but in patch 2 you stated,
> "VFIO_MDEV is just a library with helpers for the drivers. Stop making it a
> user choice and just select it by the drivers that use the helpers". Why
> are you not selecting it here?
Because this changes one thing at a time. Patch 2 then switches this
depends to a select.
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] vfio-mdev: allow building the samples into the kernel
2023-01-10 15:27 ` Christoph Hellwig
@ 2023-01-10 15:32 ` Anthony Krowiak
0 siblings, 0 replies; 15+ messages in thread
From: Anthony Krowiak @ 2023-01-10 15:32 UTC (permalink / raw
To: Christoph Hellwig
Cc: Alex Williamson, Kirti Wankhede, Halil Pasic, Jason Herne,
Zhenyu Wang, Zhi Wang, kvm, linux-s390, intel-gfx
On 1/10/23 10:27 AM, Christoph Hellwig wrote:
> On Tue, Jan 10, 2023 at 09:54:51AM -0500, Anthony Krowiak wrote:
>>> + tristate "Build VFIO mtty example mediated device sample code"
>>> + depends on VFIO_MDEV
>>
>> Admittedly, I'm not very fluent with Kconfig, but in patch 2 you stated,
>> "VFIO_MDEV is just a library with helpers for the drivers. Stop making it a
>> user choice and just select it by the drivers that use the helpers". Why
>> are you not selecting it here?
> Because this changes one thing at a time. Patch 2 then switches this
> depends to a select.
My bad, I missed it.
Reviewed-by: Tony Krowiak <akrowiak@linux.ibm.com>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 1/4] vfio-mdev: allow building the samples into the kernel
2023-01-10 9:10 ` [PATCH 1/4] vfio-mdev: allow building the samples into the kernel Christoph Hellwig
2023-01-10 14:54 ` Anthony Krowiak
@ 2023-01-10 16:11 ` Jason Gunthorpe
1 sibling, 0 replies; 15+ messages in thread
From: Jason Gunthorpe @ 2023-01-10 16:11 UTC (permalink / raw
To: Christoph Hellwig
Cc: Alex Williamson, Kirti Wankhede, Tony Krowiak, Halil Pasic,
Jason Herne, Zhenyu Wang, Zhi Wang, kvm, linux-s390, intel-gfx
On Tue, Jan 10, 2023 at 10:10:06AM +0100, Christoph Hellwig wrote:
> There is nothing in the vfio-mdev sample drivers that requires building
> them as modules, so remove that restriction.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> samples/Kconfig | 16 ++++++++--------
> 1 file changed, 8 insertions(+), 8 deletions(-)
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Jason
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 2/4] vfio-mdev: turn VFIO_MDEV into a selectable symbol
2023-01-10 9:10 ` [PATCH 2/4] vfio-mdev: turn VFIO_MDEV into a selectable symbol Christoph Hellwig
2023-01-10 14:51 ` Anthony Krowiak
@ 2023-01-10 16:12 ` Jason Gunthorpe
1 sibling, 0 replies; 15+ messages in thread
From: Jason Gunthorpe @ 2023-01-10 16:12 UTC (permalink / raw
To: Christoph Hellwig
Cc: Alex Williamson, Kirti Wankhede, Tony Krowiak, Halil Pasic,
Jason Herne, Zhenyu Wang, Zhi Wang, kvm, linux-s390, intel-gfx
On Tue, Jan 10, 2023 at 10:10:07AM +0100, Christoph Hellwig wrote:
> VFIO_MDEV is just a library with helpers for the drivers. Stop making
> it a user choice and just select it by the drivers that use the helpers.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> Documentation/s390/vfio-ap.rst | 1 -
> arch/s390/Kconfig | 6 ++++--
> arch/s390/configs/debug_defconfig | 1 -
> arch/s390/configs/defconfig | 1 -
> drivers/gpu/drm/i915/Kconfig | 2 +-
> drivers/vfio/mdev/Kconfig | 8 +-------
> samples/Kconfig | 6 +++---
> 7 files changed, 9 insertions(+), 16 deletions(-)
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Jason
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 3/4] vfio-mdev: move the mtty usage documentation
2023-01-10 9:10 ` [PATCH 3/4] vfio-mdev: move the mtty usage documentation Christoph Hellwig
@ 2023-01-10 16:12 ` Jason Gunthorpe
0 siblings, 0 replies; 15+ messages in thread
From: Jason Gunthorpe @ 2023-01-10 16:12 UTC (permalink / raw
To: Christoph Hellwig
Cc: Alex Williamson, Kirti Wankhede, Tony Krowiak, Halil Pasic,
Jason Herne, Zhenyu Wang, Zhi Wang, kvm, linux-s390, intel-gfx
On Tue, Jan 10, 2023 at 10:10:08AM +0100, Christoph Hellwig wrote:
> Move the documentation on how to use mtty to samples/vfio-mdev/README.rst
> as it is in no way related to the vfio API. This matches how the bpf
> and pktgen samples are documented.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> .../driver-api/vfio-mediated-device.rst | 100 ------------------
> samples/vfio-mdev/README.rst | 100 ++++++++++++++++++
> 2 files changed, 100 insertions(+), 100 deletions(-)
> create mode 100644 samples/vfio-mdev/README.rst
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Jason
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH 4/4] vfio-mdev: remove an non-existing driver from vfio-mediated-device
2023-01-10 9:10 ` [PATCH 4/4] vfio-mdev: remove an non-existing driver from vfio-mediated-device Christoph Hellwig
2023-01-10 14:49 ` Anthony Krowiak
@ 2023-01-10 16:13 ` Jason Gunthorpe
1 sibling, 0 replies; 15+ messages in thread
From: Jason Gunthorpe @ 2023-01-10 16:13 UTC (permalink / raw
To: Christoph Hellwig
Cc: Alex Williamson, Kirti Wankhede, Tony Krowiak, Halil Pasic,
Jason Herne, Zhenyu Wang, Zhi Wang, kvm, linux-s390, intel-gfx
On Tue, Jan 10, 2023 at 10:10:09AM +0100, Christoph Hellwig wrote:
> The nvidia mdev driver does not actually exist anywhere in the tree.
>
> Signed-off-by: Christoph Hellwig <hch@lst.de>
> ---
> Documentation/driver-api/vfio-mediated-device.rst | 8 +-------
> 1 file changed, 1 insertion(+), 7 deletions(-)
Reviewed-by: Jason Gunthorpe <jgg@nvidia.com>
Jason
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: misc mdev tidyups
2023-01-10 9:10 misc mdev tidyups Christoph Hellwig
` (3 preceding siblings ...)
2023-01-10 9:10 ` [PATCH 4/4] vfio-mdev: remove an non-existing driver from vfio-mediated-device Christoph Hellwig
@ 2023-01-23 19:37 ` Alex Williamson
4 siblings, 0 replies; 15+ messages in thread
From: Alex Williamson @ 2023-01-23 19:37 UTC (permalink / raw
To: Christoph Hellwig
Cc: Kirti Wankhede, Tony Krowiak, Halil Pasic, Jason Herne,
Zhenyu Wang, Zhi Wang, kvm, linux-s390, intel-gfx
On Tue, 10 Jan 2023 10:10:05 +0100
Christoph Hellwig <hch@lst.de> wrote:
> Hi all,
>
> this series tidies up the mdev Kconfig interaction and documentation a bit.
>
> Diffstat:
> Documentation/driver-api/vfio-mediated-device.rst | 108 ----------------------
> Documentation/s390/vfio-ap.rst | 1
> arch/s390/Kconfig | 6 -
> arch/s390/configs/debug_defconfig | 1
> arch/s390/configs/defconfig | 1
> drivers/gpu/drm/i915/Kconfig | 2
> drivers/vfio/mdev/Kconfig | 8 -
> samples/Kconfig | 16 +--
> samples/vfio-mdev/README.rst | 100 ++++++++++++++++++++
> 9 files changed, 115 insertions(+), 128 deletions(-)
>
Applied to vfio next branch for v6.3. Thanks,
Alex
^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2023-01-23 19:38 UTC | newest]
Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-01-10 9:10 misc mdev tidyups Christoph Hellwig
2023-01-10 9:10 ` [PATCH 1/4] vfio-mdev: allow building the samples into the kernel Christoph Hellwig
2023-01-10 14:54 ` Anthony Krowiak
2023-01-10 15:27 ` Christoph Hellwig
2023-01-10 15:32 ` Anthony Krowiak
2023-01-10 16:11 ` Jason Gunthorpe
2023-01-10 9:10 ` [PATCH 2/4] vfio-mdev: turn VFIO_MDEV into a selectable symbol Christoph Hellwig
2023-01-10 14:51 ` Anthony Krowiak
2023-01-10 16:12 ` Jason Gunthorpe
2023-01-10 9:10 ` [PATCH 3/4] vfio-mdev: move the mtty usage documentation Christoph Hellwig
2023-01-10 16:12 ` Jason Gunthorpe
2023-01-10 9:10 ` [PATCH 4/4] vfio-mdev: remove an non-existing driver from vfio-mediated-device Christoph Hellwig
2023-01-10 14:49 ` Anthony Krowiak
2023-01-10 16:13 ` Jason Gunthorpe
2023-01-23 19:37 ` misc mdev tidyups Alex Williamson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).