From patchwork Tue Jan 10 09:10:06 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 13094887 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 37D9DC46467 for ; Tue, 10 Jan 2023 09:11:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232097AbjAJJLM (ORCPT ); Tue, 10 Jan 2023 04:11:12 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56698 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238073AbjAJJKc (ORCPT ); Tue, 10 Jan 2023 04:10:32 -0500 Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7B3D964C9; Tue, 10 Jan 2023 01:10:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-Type:Content-ID:Content-Description; bh=Lj42chFASi82/LX1TdBGvCiiDRzVl2Xg5BDLAFDy/9M=; b=i5D0hDTwYnj79ZamDZuwSI51vc BlSm+Y1842x4Uf+7uEtpeFfSLNPRUcCP+3HAISnEzQ78ruik928I7s8VD1nGoIbfKXR5jRr2NIfTs gDzzAI5lNhPLyWW1EJLqF+uQSfjEiOSW/cX4gqlJyBx4LXz4roijEI+FtJA+tEu0tvJprVXe/O0rG xPw50vDWgvIEMMi4zHbsP9QpTg0HUXtNqUtHAlqSozq2vTOOKXTS+qAYgrVdNvHBqki5kgmpMZ56C Nm9WTXhLXPjxknpjC+EnwC9pRvw3I2pGMfMBUJ9vZD3uYM/6ih1NSfqYbVpAElwrr2RtcRwUeg9lt V9mQJnhA==; Received: from [2001:4bb8:181:656b:cb3a:c552:3fcc:12a6] (helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1pFAe6-0060aT-Uh; Tue, 10 Jan 2023 09:10:15 +0000 From: Christoph Hellwig To: Alex Williamson , Kirti Wankhede Cc: Tony Krowiak , Halil Pasic , Jason Herne , Zhenyu Wang , Zhi Wang , kvm@vger.kernel.org, linux-s390@vger.kernel.org, intel-gfx@lists.freedesktop.org Subject: [PATCH 1/4] vfio-mdev: allow building the samples into the kernel Date: Tue, 10 Jan 2023 10:10:06 +0100 Message-Id: <20230110091009.474427-2-hch@lst.de> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230110091009.474427-1-hch@lst.de> References: <20230110091009.474427-1-hch@lst.de> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org There is nothing in the vfio-mdev sample drivers that requires building them as modules, so remove that restriction. Signed-off-by: Christoph Hellwig Reviewed-by: Tony Krowiak Reviewed-by: Jason Gunthorpe --- 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 From patchwork Tue Jan 10 09:10:07 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 13094886 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5E8C2C46467 for ; Tue, 10 Jan 2023 09:11:10 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231574AbjAJJLI (ORCPT ); Tue, 10 Jan 2023 04:11:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55848 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S238091AbjAJJKd (ORCPT ); Tue, 10 Jan 2023 04:10:33 -0500 Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5894712A9D; Tue, 10 Jan 2023 01:10:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-Type:Content-ID:Content-Description; bh=ilW/+oMS6xyhiJ7nlSWBvOeAci9rF+B8WNLBPFn+Q98=; b=kLeHrG0G/AVkShluVF92oCywvn IMwTJrRl8EfbWePjVS9R9lqysI8okcNiT69Pns+iEiKcma0CIS8fk6eExEbkFJVZO/Y00SseK4Rho ausAIpEd1nI8ier5zJZ45RTfSQE5Fhe16+6prazOcVI6rVMbW+3nYWE7Ncc2t10H1/wt6JJ1JAnCp wA3WR4lPyGZBkN0Y9dgSKNspa+jk+EqEtXd4lTwWSL0atyKi9SIY5Gh9P4KYzaxBq6TtB96zs2kqu ufrgpfKd+Wf9zsjKoXbj2bLQ9eKir9DXaKWbvSlYT4Q/uvOCAg+52h2aNVblGNfgHqMHghjmMLFt6 9ECv/HsQ==; Received: from [2001:4bb8:181:656b:cb3a:c552:3fcc:12a6] (helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1pFAe9-0060bK-GZ; Tue, 10 Jan 2023 09:10:17 +0000 From: Christoph Hellwig To: Alex Williamson , Kirti Wankhede Cc: Tony Krowiak , Halil Pasic , Jason Herne , Zhenyu Wang , Zhi Wang , kvm@vger.kernel.org, linux-s390@vger.kernel.org, intel-gfx@lists.freedesktop.org Subject: [PATCH 2/4] vfio-mdev: turn VFIO_MDEV into a selectable symbol Date: Tue, 10 Jan 2023 10:10:07 +0100 Message-Id: <20230110091009.474427-3-hch@lst.de> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230110091009.474427-1-hch@lst.de> References: <20230110091009.474427-1-hch@lst.de> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org 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 Reviewed-by: Tony Krowiak Reviewed-by: Jason Gunthorpe --- 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 From patchwork Tue Jan 10 09:10:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 13094885 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id D8E38C678D6 for ; Tue, 10 Jan 2023 09:11:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237980AbjAJJLD (ORCPT ); Tue, 10 Jan 2023 04:11:03 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56700 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235755AbjAJJKd (ORCPT ); Tue, 10 Jan 2023 04:10:33 -0500 Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AB23F193F4; Tue, 10 Jan 2023 01:10:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-Type:Content-ID:Content-Description; bh=Ss9q/iqMqNOstrbvF4lK/i2u58Z0DHgqmVOGxEGUPsI=; b=fgXnureZyJQf/EnjrziAVkti/l g1bOH0htz3Tv9vnFnNv4S90usEq26dSYsfWbE2adrHT9VvLGBHmIDKap0khBwF7kgbdhJOftY2dkB IjoZhrH7/IefJPfv0V2SMDG64jGeutnOMRdDKNKDzA2XV8PWA2OUp6/HaIlD4f5wjN1WnurVLzQiV nJ8RWn2CVDrrpvJugIDvb8tSATKaN4tMuNEYHIS5gVTWFU1JtRZoegGNAEnnJFr+78RIlSn3eyhXK UDO/mvITCJ2s1k2e5lrxW6hQFKnzZSCBxJch1YLDt6fvCiyeoWDBhZ/GBaBL/5j7D+BVk0jvx8GHR SvZpOWog==; Received: from [2001:4bb8:181:656b:cb3a:c552:3fcc:12a6] (helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1pFAeC-0060c3-43; Tue, 10 Jan 2023 09:10:20 +0000 From: Christoph Hellwig To: Alex Williamson , Kirti Wankhede Cc: Tony Krowiak , Halil Pasic , Jason Herne , Zhenyu Wang , Zhi Wang , kvm@vger.kernel.org, linux-s390@vger.kernel.org, intel-gfx@lists.freedesktop.org Subject: [PATCH 3/4] vfio-mdev: move the mtty usage documentation Date: Tue, 10 Jan 2023 10:10:08 +0100 Message-Id: <20230110091009.474427-4-hch@lst.de> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230110091009.474427-1-hch@lst.de> References: <20230110091009.474427-1-hch@lst.de> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org 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 Reviewed-by: Jason Gunthorpe --- .../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- - SERR- 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- + SERR- 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 + From patchwork Tue Jan 10 09:10:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christoph Hellwig X-Patchwork-Id: 13094888 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0EAE6C61DB3 for ; Tue, 10 Jan 2023 09:11:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229755AbjAJJLO (ORCPT ); Tue, 10 Jan 2023 04:11:14 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56526 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231411AbjAJJKd (ORCPT ); Tue, 10 Jan 2023 04:10:33 -0500 Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:3::133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6733019010; Tue, 10 Jan 2023 01:10:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-Type:Content-ID:Content-Description; bh=rNWvtXigw+2fgOXzD3V8HutEFKvArAwyByUizidQEMg=; b=mZayYMmChdc1cy6IKO4/yF4IXt L0S6KuIGiicO2XwimsTDfHLBG2OcXRJAFeVNLlbjGHx+NEqpgXSz4nS9RQ0OOEdagTSmo8LfPfism nezns8n82dCcft9ZTm+wRAwRcgVSoiQsalYGU/kVB32iWxhKbB8myKCe+pZh0WAjETzI1w/5fgC86 RWliMXSo1WgDhXAiadXHrl8lnl/Y/NgXbYfDLKXcvEz87QttbmaX7JIoVc3JrEIDU3aYMigZYLzCJ fwV/KjZ+7lrpFnA9EdzLAb9y5OW2HEgX29R8OPSjaCIm8tJ+TcSRskDDULMjT3HM+pkbSTqZO/Khz BcPWTDJw==; Received: from [2001:4bb8:181:656b:cb3a:c552:3fcc:12a6] (helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.94.2 #2 (Red Hat Linux)) id 1pFAeE-0060cr-OJ; Tue, 10 Jan 2023 09:10:23 +0000 From: Christoph Hellwig To: Alex Williamson , Kirti Wankhede Cc: Tony Krowiak , Halil Pasic , Jason Herne , Zhenyu Wang , Zhi Wang , kvm@vger.kernel.org, linux-s390@vger.kernel.org, intel-gfx@lists.freedesktop.org Subject: [PATCH 4/4] vfio-mdev: remove an non-existing driver from vfio-mediated-device Date: Tue, 10 Jan 2023 10:10:09 +0100 Message-Id: <20230110091009.474427-5-hch@lst.de> X-Mailer: git-send-email 2.35.1 In-Reply-To: <20230110091009.474427-1-hch@lst.de> References: <20230110091009.474427-1-hch@lst.de> MIME-Version: 1.0 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org The nvidia mdev driver does not actually exist anywhere in the tree. Signed-off-by: Christoph Hellwig Reviewed-by: Tony Krowiak Reviewed-by: Jason Gunthorpe --- 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 +--------------+ | +-----------+ | +---------------+