From: Pierre Morel <pmorel@linux.ibm.com> To: sebott@linux.vnet.ibm.com Cc: gerald.schaefer@de.ibm.com, pasic@linux.vnet.ibm.com, borntraeger@de.ibm.com, walling@linux.ibm.com, linux-s390@vger.kernel.org, iommu@lists.linux-foundation.org, joro@8bytes.org, linux-kernel@vger.kernel.org, alex.williamson@redhat.com, kvm@vger.kernel.org, schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com, robin.murphy@arm.com Subject: [PATCH v2 0/4] Retrieving zPCI specific info with VFIO Date: Fri, 17 May 2019 18:16:46 +0200 [thread overview] Message-ID: <1558109810-18683-1-git-send-email-pmorel@linux.ibm.com> (raw) Using the PCI VFIO interface allows userland, a.k.a. QEMU, to retrieve ZPCI specific information without knowing Z specific identifiers like the function ID or the function handle of the zPCI function hidden behind the PCI interface. By using the VFIO_IOMMU_GET_INFO ioctl we enter the vfio_iommu_type1 ioctl callback and can insert there the treatment for a new Z specific capability. Once in vfio_iommu_type1 we can retrieve the real iommu device, s390_iommu and call the get_attr iommu operation's callback in which we can retrieve the zdev device and start clp operations to retrieve Z specific values the guest driver is concerned with. To share the code with arch/s390/pci/pci_clp.c the original functions in pci_clp.c to query PCI functions and PCI functions group are modified so that they can be exported. A new function clp_query_pci() replaces clp_query_pci_fn() and the previous calls to clp_query_pci_fn() and clp_query_pci_fngrp() are replaced with calls to zdev_query_pci_fn() and zdev_query_pci_fngrp() using a zdev pointer as argument. Pierre Morel (4): s390: pci: Exporting access to CLP PCI function and PCI group vfio: vfio_iommu_type1: Define VFIO_IOMMU_INFO_CAPABILITIES s390: iommu: Adding get attributes for s390_iommu vfio: vfio_iommu_type1: implement VFIO_IOMMU_INFO_CAPABILITIES arch/s390/include/asm/pci.h | 3 + arch/s390/pci/pci_clp.c | 70 ++++++++++++----------- drivers/iommu/s390-iommu.c | 77 +++++++++++++++++++++++++ drivers/vfio/vfio_iommu_type1.c | 122 +++++++++++++++++++++++++++++++++++++++- include/linux/iommu.h | 4 ++ include/uapi/linux/vfio.h | 67 ++++++++++++++++++++++ 6 files changed, 308 insertions(+), 35 deletions(-) -- 2.7.4 Changelog From V1: - no export of the symbol of the new zPCI CLP functions (Robin) - adding descriptions for the VFIO capabilities (Alex) - defining the structure of the data retrieved through VFIO_IOMMU_GET_INFO (Alex) - code modifications to allow architecture independence for the capabilities (Alex)
WARNING: multiple messages have this Message-ID (diff)
From: Pierre Morel <pmorel@linux.ibm.com> To: sebott@linux.vnet.ibm.com Cc: linux-s390@vger.kernel.org, pasic@linux.vnet.ibm.com, alex.williamson@redhat.com, kvm@vger.kernel.org, heiko.carstens@de.ibm.com, walling@linux.ibm.com, linux-kernel@vger.kernel.org, borntraeger@de.ibm.com, iommu@lists.linux-foundation.org, schwidefsky@de.ibm.com, robin.murphy@arm.com, gerald.schaefer@de.ibm.com Subject: [PATCH v2 0/4] Retrieving zPCI specific info with VFIO Date: Fri, 17 May 2019 18:16:46 +0200 [thread overview] Message-ID: <1558109810-18683-1-git-send-email-pmorel@linux.ibm.com> (raw) Using the PCI VFIO interface allows userland, a.k.a. QEMU, to retrieve ZPCI specific information without knowing Z specific identifiers like the function ID or the function handle of the zPCI function hidden behind the PCI interface. By using the VFIO_IOMMU_GET_INFO ioctl we enter the vfio_iommu_type1 ioctl callback and can insert there the treatment for a new Z specific capability. Once in vfio_iommu_type1 we can retrieve the real iommu device, s390_iommu and call the get_attr iommu operation's callback in which we can retrieve the zdev device and start clp operations to retrieve Z specific values the guest driver is concerned with. To share the code with arch/s390/pci/pci_clp.c the original functions in pci_clp.c to query PCI functions and PCI functions group are modified so that they can be exported. A new function clp_query_pci() replaces clp_query_pci_fn() and the previous calls to clp_query_pci_fn() and clp_query_pci_fngrp() are replaced with calls to zdev_query_pci_fn() and zdev_query_pci_fngrp() using a zdev pointer as argument. Pierre Morel (4): s390: pci: Exporting access to CLP PCI function and PCI group vfio: vfio_iommu_type1: Define VFIO_IOMMU_INFO_CAPABILITIES s390: iommu: Adding get attributes for s390_iommu vfio: vfio_iommu_type1: implement VFIO_IOMMU_INFO_CAPABILITIES arch/s390/include/asm/pci.h | 3 + arch/s390/pci/pci_clp.c | 70 ++++++++++++----------- drivers/iommu/s390-iommu.c | 77 +++++++++++++++++++++++++ drivers/vfio/vfio_iommu_type1.c | 122 +++++++++++++++++++++++++++++++++++++++- include/linux/iommu.h | 4 ++ include/uapi/linux/vfio.h | 67 ++++++++++++++++++++++ 6 files changed, 308 insertions(+), 35 deletions(-) -- 2.7.4 Changelog From V1: - no export of the symbol of the new zPCI CLP functions (Robin) - adding descriptions for the VFIO capabilities (Alex) - defining the structure of the data retrieved through VFIO_IOMMU_GET_INFO (Alex) - code modifications to allow architecture independence for the capabilities (Alex) _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
next reply other threads:[~2019-05-17 16:17 UTC|newest] Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-05-17 16:16 Pierre Morel [this message] 2019-05-17 16:16 ` [PATCH v2 0/4] Retrieving zPCI specific info with VFIO Pierre Morel 2019-05-17 16:16 ` [PATCH v2 1/4] s390: pci: Exporting access to CLP PCI function and PCI group Pierre Morel 2019-05-17 16:16 ` Pierre Morel 2019-05-17 16:16 ` [PATCH v2 2/4] vfio: vfio_iommu_type1: Define VFIO_IOMMU_INFO_CAPABILITIES Pierre Morel 2019-05-17 16:16 ` Pierre Morel 2019-05-17 16:16 ` [PATCH v2 3/4] s390: iommu: Adding get attributes for s390_iommu Pierre Morel 2019-05-17 16:16 ` Pierre Morel 2019-05-17 16:16 ` [PATCH v2 4/4] vfio: vfio_iommu_type1: implement VFIO_IOMMU_INFO_CAPABILITIES Pierre Morel 2019-05-17 16:16 ` Pierre Morel 2019-05-17 16:41 ` Alex Williamson 2019-05-17 16:41 ` Alex Williamson 2019-05-17 18:04 ` Pierre Morel 2019-05-17 18:04 ` Pierre Morel 2019-05-20 11:19 ` Pierre Morel 2019-05-20 11:19 ` Pierre Morel 2019-05-20 14:27 ` Cornelia Huck 2019-05-20 14:27 ` Cornelia Huck 2019-05-20 16:31 ` Pierre Morel 2019-05-20 16:31 ` Pierre Morel 2019-05-20 18:23 ` Alex Williamson 2019-05-20 18:23 ` Alex Williamson 2019-05-21 9:14 ` Pierre Morel 2019-05-21 9:14 ` Pierre Morel 2019-05-21 11:11 ` Cornelia Huck 2019-05-21 11:11 ` Cornelia Huck 2019-05-21 12:46 ` Pierre Morel 2019-05-21 12:46 ` Pierre Morel 2019-05-21 14:59 ` Alex Williamson 2019-05-21 14:59 ` Alex Williamson 2019-05-21 15:33 ` Pierre Morel 2019-05-21 15:33 ` Pierre Morel 2019-05-20 3:02 ` kbuild test robot 2019-05-20 3:02 ` kbuild test robot 2019-05-20 3:02 ` [RFC PATCH] vfio: vfio_iommu_type1: vfio_iommu_type1_caps() can be static kbuild test robot 2019-05-20 3:02 ` kbuild test robot
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1558109810-18683-1-git-send-email-pmorel@linux.ibm.com \ --to=pmorel@linux.ibm.com \ --cc=alex.williamson@redhat.com \ --cc=borntraeger@de.ibm.com \ --cc=gerald.schaefer@de.ibm.com \ --cc=heiko.carstens@de.ibm.com \ --cc=iommu@lists.linux-foundation.org \ --cc=joro@8bytes.org \ --cc=kvm@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-s390@vger.kernel.org \ --cc=pasic@linux.vnet.ibm.com \ --cc=robin.murphy@arm.com \ --cc=schwidefsky@de.ibm.com \ --cc=sebott@linux.vnet.ibm.com \ --cc=walling@linux.ibm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.