From: Jacob Pan <jacob.jun.pan@linux.intel.com> To: iommu@lists.linux-foundation.org, LKML <linux-kernel@vger.kernel.org>, Joerg Roedel <joro@8bytes.org>, David Woodhouse <dwmw2@infradead.org>, Eric Auger <eric.auger@redhat.com>, Alex Williamson <alex.williamson@redhat.com>, Jean-Philippe Brucker <jean-philippe.brucker@arm.com> Cc: "Yi Liu" <yi.l.liu@intel.com>, "Tian, Kevin" <kevin.tian@intel.com>, Raj Ashok <ashok.raj@intel.com>, "Christoph Hellwig" <hch@infradead.org>, "Lu Baolu" <baolu.lu@linux.intel.com>, Andriy Shevchenko <andriy.shevchenko@linux.intel.com>, Jacob Pan <jacob.jun.pan@linux.intel.com> Subject: [PATCH v4 01/22] driver core: Add per device iommu param Date: Sun, 9 Jun 2019 06:44:01 -0700 [thread overview] Message-ID: <1560087862-57608-2-git-send-email-jacob.jun.pan@linux.intel.com> (raw) In-Reply-To: <1560087862-57608-1-git-send-email-jacob.jun.pan@linux.intel.com> DMA faults can be detected by IOMMU at device level. Adding a pointer to struct device allows IOMMU subsystem to report relevant faults back to the device driver for further handling. For direct assigned device (or user space drivers), guest OS holds responsibility to handle and respond per device IOMMU fault. Therefore we need fault reporting mechanism to propagate faults beyond IOMMU subsystem. There are two other IOMMU data pointers under struct device today, here we introduce iommu_param as a parent pointer such that all device IOMMU data can be consolidated here. The idea was suggested here by Greg KH and Joerg. The name iommu_param is chosen here since iommu_data has been used. Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com> Link: https://lkml.org/lkml/2017/10/6/81 --- include/linux/device.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/linux/device.h b/include/linux/device.h index e85264f..f0a975a 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -42,6 +42,7 @@ struct iommu_ops; struct iommu_group; struct iommu_fwspec; struct dev_pin_info; +struct iommu_param; struct bus_attribute { struct attribute attr; @@ -959,6 +960,7 @@ struct dev_links_info { * device (i.e. the bus driver that discovered the device). * @iommu_group: IOMMU group the device belongs to. * @iommu_fwspec: IOMMU-specific properties supplied by firmware. + * @iommu_param: Per device generic IOMMU runtime data * * @offline_disabled: If set, the device is permanently online. * @offline: Set after successful invocation of bus type's .offline(). @@ -1052,6 +1054,7 @@ struct device { void (*release)(struct device *dev); struct iommu_group *iommu_group; struct iommu_fwspec *iommu_fwspec; + struct iommu_param *iommu_param; bool offline_disabled:1; bool offline:1; -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: Jacob Pan <jacob.jun.pan@linux.intel.com> To: iommu@lists.linux-foundation.org, LKML <linux-kernel@vger.kernel.org>, Joerg Roedel <joro@8bytes.org>, David Woodhouse <dwmw2@infradead.org>, Eric Auger <eric.auger@redhat.com>, Alex Williamson <alex.williamson@redhat.com>, Jean-Philippe Brucker <jean-philippe.brucker@arm.com> Cc: "Tian, Kevin" <kevin.tian@intel.com>, Raj Ashok <ashok.raj@intel.com>, Andriy Shevchenko <andriy.shevchenko@linux.intel.com> Subject: [PATCH v4 01/22] driver core: Add per device iommu param Date: Sun, 9 Jun 2019 06:44:01 -0700 [thread overview] Message-ID: <1560087862-57608-2-git-send-email-jacob.jun.pan@linux.intel.com> (raw) In-Reply-To: <1560087862-57608-1-git-send-email-jacob.jun.pan@linux.intel.com> DMA faults can be detected by IOMMU at device level. Adding a pointer to struct device allows IOMMU subsystem to report relevant faults back to the device driver for further handling. For direct assigned device (or user space drivers), guest OS holds responsibility to handle and respond per device IOMMU fault. Therefore we need fault reporting mechanism to propagate faults beyond IOMMU subsystem. There are two other IOMMU data pointers under struct device today, here we introduce iommu_param as a parent pointer such that all device IOMMU data can be consolidated here. The idea was suggested here by Greg KH and Joerg. The name iommu_param is chosen here since iommu_data has been used. Suggested-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Jacob Pan <jacob.jun.pan@linux.intel.com> Link: https://lkml.org/lkml/2017/10/6/81 --- include/linux/device.h | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/linux/device.h b/include/linux/device.h index e85264f..f0a975a 100644 --- a/include/linux/device.h +++ b/include/linux/device.h @@ -42,6 +42,7 @@ struct iommu_ops; struct iommu_group; struct iommu_fwspec; struct dev_pin_info; +struct iommu_param; struct bus_attribute { struct attribute attr; @@ -959,6 +960,7 @@ struct dev_links_info { * device (i.e. the bus driver that discovered the device). * @iommu_group: IOMMU group the device belongs to. * @iommu_fwspec: IOMMU-specific properties supplied by firmware. + * @iommu_param: Per device generic IOMMU runtime data * * @offline_disabled: If set, the device is permanently online. * @offline: Set after successful invocation of bus type's .offline(). @@ -1052,6 +1054,7 @@ struct device { void (*release)(struct device *dev); struct iommu_group *iommu_group; struct iommu_fwspec *iommu_fwspec; + struct iommu_param *iommu_param; bool offline_disabled:1; bool offline:1; -- 2.7.4 _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
next prev parent reply other threads:[~2019-06-09 13:41 UTC|newest] Thread overview: 130+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-09 13:44 [PATCH v4 00/22] Shared virtual address IOMMU and VT-d support Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-06-09 13:44 ` Jacob Pan [this message] 2019-06-09 13:44 ` [PATCH v4 01/22] driver core: Add per device iommu param Jacob Pan 2019-06-09 13:44 ` [PATCH v4 02/22] iommu: Introduce device fault data Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-06-18 15:42 ` Jonathan Cameron 2019-06-18 15:42 ` Jonathan Cameron 2019-06-09 13:44 ` [PATCH v4 03/22] iommu: Introduce device fault report API Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-06-18 15:41 ` Jonathan Cameron 2019-06-18 15:41 ` Jonathan Cameron 2019-06-09 13:44 ` [PATCH v4 04/22] iommu: Add recoverable fault reporting Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-06-18 15:44 ` Jonathan Cameron 2019-06-18 15:44 ` Jonathan Cameron 2019-06-09 13:44 ` [PATCH v4 05/22] iommu: Add a timeout parameter for PRQ response Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-06-09 13:44 ` [PATCH v4 06/22] trace/iommu: Add sva trace events Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-06-09 13:44 ` [PATCH v4 07/22] iommu: Use device fault trace event Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-06-09 13:44 ` [PATCH v4 08/22] iommu: Introduce attach/detach_pasid_table API Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-06-18 15:41 ` Jonathan Cameron 2019-06-18 15:41 ` Jonathan Cameron 2019-06-24 15:06 ` Auger Eric 2019-06-24 15:06 ` Auger Eric 2019-06-24 15:23 ` Jean-Philippe Brucker 2019-06-24 15:23 ` Jean-Philippe Brucker 2019-06-09 13:44 ` [PATCH v4 09/22] iommu: Introduce cache_invalidate API Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-06-18 15:41 ` Jonathan Cameron 2019-06-18 15:41 ` Jonathan Cameron 2019-06-09 13:44 ` [PATCH v4 10/22] iommu: Fix compile error without IOMMU_API Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-06-18 14:10 ` Jonathan Cameron 2019-06-18 14:10 ` Jonathan Cameron 2019-06-24 22:28 ` Jacob Pan 2019-06-24 22:28 ` Jacob Pan 2019-06-09 13:44 ` [PATCH v4 11/22] iommu: Introduce guest PASID bind function Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-06-18 15:36 ` Jean-Philippe Brucker 2019-06-18 15:36 ` Jean-Philippe Brucker 2019-06-24 22:24 ` Jacob Pan 2019-06-24 22:24 ` Jacob Pan 2019-07-16 16:44 ` Auger Eric 2019-07-16 16:44 ` Auger Eric 2019-08-05 21:02 ` Jacob Pan 2019-08-05 21:02 ` Jacob Pan 2019-08-05 23:13 ` Jacob Pan 2019-08-05 23:13 ` Jacob Pan 2019-06-09 13:44 ` [PATCH v4 12/22] iommu: Add I/O ASID allocator Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-06-18 16:50 ` Jonathan Cameron 2019-06-18 16:50 ` Jonathan Cameron 2019-06-25 18:55 ` Jacob Pan 2019-06-25 18:55 ` Jacob Pan 2019-06-09 13:44 ` [PATCH v4 13/22] iommu/vt-d: Enlightened PASID allocation Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-07-16 9:29 ` Auger Eric 2019-07-16 9:29 ` Auger Eric 2019-08-13 16:57 ` Jacob Pan 2019-08-13 16:57 ` Jacob Pan 2019-06-09 13:44 ` [PATCH v4 14/22] iommu/vt-d: Add custom allocator for IOASID Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-07-16 9:30 ` Auger Eric 2019-07-16 9:30 ` Auger Eric 2019-08-05 20:02 ` Jacob Pan 2019-08-05 20:02 ` Jacob Pan 2019-06-09 13:44 ` [PATCH v4 15/22] iommu/vt-d: Replace Intel specific PASID allocator with IOASID Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-06-18 15:57 ` Jonathan Cameron 2019-06-18 15:57 ` Jonathan Cameron 2019-06-24 21:36 ` Jacob Pan 2019-06-24 21:36 ` Jacob Pan 2019-06-27 1:53 ` Lu Baolu 2019-06-27 1:53 ` Lu Baolu 2019-06-27 15:40 ` Jacob Pan 2019-06-27 15:40 ` Jacob Pan 2019-06-09 13:44 ` [PATCH v4 16/22] iommu/vt-d: Move domain helper to header Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-07-16 9:33 ` Auger Eric 2019-07-16 9:33 ` Auger Eric 2019-06-09 13:44 ` [PATCH v4 17/22] iommu/vt-d: Avoid duplicated code for PASID setup Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-06-18 16:03 ` Jonathan Cameron 2019-06-18 16:03 ` Jonathan Cameron 2019-06-24 23:44 ` Jacob Pan 2019-06-24 23:44 ` Jacob Pan 2019-07-16 9:52 ` Auger Eric 2019-07-16 9:52 ` Auger Eric 2019-06-09 13:44 ` [PATCH v4 18/22] iommu/vt-d: Add nested translation helper function Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-06-09 13:44 ` [PATCH v4 19/22] iommu/vt-d: Clean up for SVM device list Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-06-18 16:42 ` Jonathan Cameron 2019-06-18 16:42 ` Jonathan Cameron 2019-06-24 23:59 ` Jacob Pan 2019-06-24 23:59 ` Jacob Pan 2019-06-09 13:44 ` [PATCH v4 20/22] iommu/vt-d: Add bind guest PASID support Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-06-18 16:44 ` Jonathan Cameron 2019-06-18 16:44 ` Jonathan Cameron 2019-06-24 22:41 ` Jacob Pan 2019-06-24 22:41 ` Jacob Pan 2019-06-27 2:50 ` Lu Baolu 2019-06-27 2:50 ` Lu Baolu 2019-06-27 20:22 ` Jacob Pan 2019-06-27 20:22 ` Jacob Pan 2019-07-05 2:21 ` Lu Baolu 2019-07-05 2:21 ` Lu Baolu 2019-08-14 17:20 ` Jacob Pan 2019-08-14 17:20 ` Jacob Pan 2019-07-16 16:45 ` Auger Eric 2019-07-16 16:45 ` Auger Eric 2019-07-16 17:04 ` Raj, Ashok 2019-07-16 17:04 ` Raj, Ashok 2019-07-18 7:47 ` Auger Eric 2019-07-18 7:47 ` Auger Eric 2019-06-09 13:44 ` [PATCH v4 21/22] iommu/vt-d: Support flushing more translation cache types Jacob Pan 2019-06-09 13:44 ` Jacob Pan 2019-07-18 8:35 ` Auger Eric 2019-07-18 8:35 ` Auger Eric 2019-08-14 20:17 ` Jacob Pan 2019-08-14 20:17 ` Jacob Pan 2019-06-09 13:44 ` [PATCH v4 22/22] iommu/vt-d: Add svm/sva invalidate function Jacob Pan 2019-06-09 13:44 ` Jacob Pan -- strict thread matches above, loose matches on Subject: below -- 2019-02-18 13:54 [PATCH v4 00/22] SMMUv3 Nested Stage Setup Eric Auger 2019-02-18 13:54 ` [PATCH v4 01/22] driver core: add per device iommu param Eric Auger 2019-02-18 13:54 ` Eric Auger
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=1560087862-57608-2-git-send-email-jacob.jun.pan@linux.intel.com \ --to=jacob.jun.pan@linux.intel.com \ --cc=alex.williamson@redhat.com \ --cc=andriy.shevchenko@linux.intel.com \ --cc=ashok.raj@intel.com \ --cc=baolu.lu@linux.intel.com \ --cc=dwmw2@infradead.org \ --cc=eric.auger@redhat.com \ --cc=hch@infradead.org \ --cc=iommu@lists.linux-foundation.org \ --cc=jean-philippe.brucker@arm.com \ --cc=joro@8bytes.org \ --cc=kevin.tian@intel.com \ --cc=linux-kernel@vger.kernel.org \ --cc=yi.l.liu@intel.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.