{"id":125,"date":"2021-07-16T16:15:14","date_gmt":"2021-07-16T16:15:14","guid":{"rendered":"https:\/\/www.linuxplumbersconf.org\/blog\/2021\/?p=125"},"modified":"2023-03-08T07:02:31","modified_gmt":"2023-03-08T07:02:31","slug":"vfio-iommu-pci-microconference-accepted-into-2021-linux-plumbers-conference","status":"publish","type":"post","link":"https:\/\/lpc.events\/blog\/current\/index.php\/2021\/07\/16\/vfio-iommu-pci-microconference-accepted-into-2021-linux-plumbers-conference\/","title":{"rendered":"VFIO\/IOMMU\/PCI Microconference Accepted into 2021 Linux Plumbers Conference"},"content":{"rendered":"<p>We are pleased to announce that the <a href=\"https:\/\/www.linuxplumbersconf.org\/event\/11\/page\/104-accepted-microconferences#cont-pci\">VFIO\/IOMMU\/PCI Microconference<\/a> has been accepted into the 2021 Linux Plumbers Conference. Today&#8217;s high speed components commonly utilize the devices that implement the <a href=\"https:\/\/en.wikipedia.org\/wiki\/Conventional_PCI\">PCI interconnect<\/a> specification and the system IOMMUs that provide memory and access control between the devices and the system resources. The features of this domain are constantly increasing with such features as:<\/p>\n<ul>\n<li>Address Translation Service (ATS)\/Page Request Interface (PRI)<\/li>\n<li><a href=\"https:\/\/en.wikipedia.org\/wiki\/Single-root_input\/output_virtualization\">Single-root I\/O Virtualization (SR-IOV)<\/a>\/Process Address Space ID (PASID)<\/li>\n<li>Shared Virtual Addressing (SVA)<\/li>\n<li>Remote Direct Memory Access (RDMA)<\/li>\n<li><a href=\"https:\/\/lore.kernel.org\/linux-pci\/20210513223203.5542-1-logang@deltatee.com\">Peer-to-Peer DMA (P2PDMA)<\/a><\/li>\n<li><a href=\"https:\/\/www.ccixconsortium.com\/\">Cache Coherent Interconnect for Accelerators (CCIX)<\/a><\/li>\n<li><a href=\"https:\/\/lore.kernel.org\/linux-pci\/162042787450.1202325.5718541949681409566.stgit@dwillia2-desk3.amr.corp.intel.com\">Compute Express Link (CXL)<\/a><\/li>\n<li><a href=\"https:\/\/lore.kernel.org\/linux-acpi\/20210419165451.2176200-1-Jonathan.Cameron@huawei.com\">Data Object Exchange (DOE)<\/a><\/li>\n<li><a href=\"https:\/\/genzconsortium.org\/\">Gen-Z<\/a><\/li>\n<\/ul>\n<p>Last year&#8217;s meetup achieved the following:<\/p>\n<ul>\n<li>A path towards <a href=\"https:\/\/lore.kernel.org\/linux-iommu\/20210520031531.712333-1-baolu.lu@linux.intel.com\/\">converting<\/a> the Intel IOMMU driver for it to use DMA-IOMMU was defined<\/li>\n<li>Support for <a href=\"https:\/\/lore.kernel.org\/linux-iommu\/20190325013036.18400-1-baolu.lu@linux.intel.com\/T\/\">exposing<\/a> devices to userspace using either VFIO <a href=\"https:\/\/lore.kernel.org\/linux-pci\/160408386942.912050.10453115629849166836.stgit@djiang5-desk3.ch.intel.com\/\">mdev<\/a> or userspace DMA was debated and brought a <a href=\"https:\/\/lore.kernel.org\/linux-pci\/160408390489.912050.13504232395876662339.stgit@djiang5-desk3.ch.intel.com\/\">solution<\/a> forward<\/li>\n<li>A discussion was held concerning drivers ability to enable PCI capabilities explicitly without current implicit support through the IOMMU drivers so that the number of newly added quirks can be reduced should there be a <a href=\"https:\/\/lore.kernel.org\/linux-iommu\/20210204014401.2846425-3-baolu.lu@linux.intel.com\/\">broken<\/a> or buggy feature present. This discussion paved the way closer to a working solution<\/li>\n<li>The groundwork for <a href=\"https:\/\/lore.kernel.org\/linux-pci\/CACK8Z6E8pjVeC934oFgr=VB3pULx_GyT2NkzAogdRQJ9TKSX9A@mail.gmail.com\/\">improving<\/a> security and management of both the internal and <a href=\"https:\/\/lore.kernel.org\/linux-pci\/20210524171812.18095-2-rajatja@google.com\/\">external<\/a> (\u201ctrusted\u201d and \u201c<a href=\"https:\/\/lore.kernel.org\/linux-pci\/162404966325.2362347.12176138291577486015.stgit@omen\/\">untrusted<\/a>\u201d) <a href=\"https:\/\/lore.kernel.org\/linux-pci\/20200724105600.10814-1-giovanni.cabiddu@intel.com\/\">devices<\/a> was discussed defining <a href=\"https:\/\/lore.kernel.org\/linux-pci\/20210621235248.2521620-1-dianders@chromium.org\/\">changes<\/a> that have to be completed <a href=\"https:\/\/chromium-review.googlesource.com\/c\/chromiumos\/platform2\/+\/2795038\">going<\/a> <a href=\"https:\/\/chromium-review.googlesource.com\/c\/chromiumos\/platform2\/+\/2591812\">forward<\/a><\/li>\n<li>To ease problems with the hot-plug support, two concepts were presented and reviewed: <a href=\"https:\/\/lore.kernel.org\/linux-pci\/20190204153601.7576-1-s.miroshnichenko@yadro.com\/\">movable<\/a> BARs and movable bus number. A discourse followed during which the current issues were widely discussed and a possible <a href=\"https:\/\/lore.kernel.org\/linux-pci\/20201218174011.340514-1-s.miroshnichenko@yadro.com\/#r\">solution<\/a> was debated setting a tone for <a href=\"https:\/\/lore.kernel.org\/linux-pci\/20201218174011.340514-23-s.miroshnichenko@yadro.com\/\">future<\/a> <a href=\"https:\/\/lore.kernel.org\/linux-pci\/20201218174011.340514-25-s.miroshnichenko@yadro.com\/\">work<\/a><\/li>\n<li>A <a href=\"https:\/\/lore.kernel.org\/kvm\/20200702082143.25259-1-kishon@ti.com\/\">proposal<\/a> put forward to address the lack of endpoint function drivers ability to perform data transfer between the Root Complex (RC) and Endpoint (EP) leveraging the existing VirtIO infrastructure was reviewed and debated, where then a path <a href=\"https:\/\/lore.kernel.org\/linux-pci\/9f8e596f-b601-7f97-a98a-111763f966d1@ti.com\/T\/\">forward<\/a> has been identified<\/li>\n<li>A series of enhancements to IOMMU and VFIO user <a href=\"https:\/\/lore.kernel.org\/linux-pci\/20180920170046.20154-2-jean-philippe.brucker@arm.com\/\">APIs<\/a> for guest Shared Virtual Address (SVA) have been discussed with <a href=\"https:\/\/lore.kernel.org\/linux-iommu\/1620653108-44901-1-git-send-email-jacob.jun.pan@linux.intel.com\/\">work<\/a> already pending <a href=\"https:\/\/lore.kernel.org\/linux-pci\/20200519175502.2504091-1-jean-philippe@linaro.org\/\">inclusion<\/a> into the <a href=\"https:\/\/lore.kernel.org\/linux-pci\/20201112125519.3987595-1-jean-philippe@linaro.org\/\">mainline<\/a> kernel<\/li>\n<\/ul>\n<p>This year&#8217;s topics to be discussed include:<\/p>\n<ul>\n<li><a href=\"http:\/\/www.kernel.org\/doc\/html\/latest\/driver-api\/vfio.html\" data-cke-saved-href=\"http:\/\/www.kernel.org\/doc\/html\/latest\/driver-api\/vfio.html\">VFIO<\/a>\n<ul>\n<li>Write-combine on non-x86 architectures<\/li>\n<li>I\/O Page Fault (IOPF) for passthrough devices<\/li>\n<li>Shared Virtual Addressing (SVA) interface<\/li>\n<li>Single-root I\/O Virtualization(SRIOV)\/Process Address Space ID (PASID) integration<\/li>\n<li>PASID in SRIOV virtual functions<\/li>\n<li>Device assignment\/sub-assignment<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.kernel.org\/doc\/html\/latest\/x86\/intel-iommu.html\" data-cke-saved-href=\"https:\/\/www.kernel.org\/doc\/html\/latest\/x86\/intel-iommu.html\">IOMMU<\/a>\n<ul>\n<li>IOMMU virtualization<\/li>\n<li>IOMMU drivers SVA interface<\/li>\n<li>I\/O Address Space ID Allocator (IOASID) and <a href=\"https:\/\/lore.kernel.org\/linux-iommu\/MWHPR11MB1886422D4839B372C6AB245F8C239@MWHPR11MB1886.namprd11.prod.outlook.com\/\" data-cke-saved-href=\"https:\/\/lore.kernel.org\/linux-iommu\/MWHPR11MB1886422D4839B372C6AB245F8C239@MWHPR11MB1886.namprd11.prod.outlook.com\/\">\/dev\/ioasid<\/a> userspace API (uAPI) proposal<\/li>\n<li>Possible IOMMU core changes (e.g., better integration with device-driver core, etc.)<\/li>\n<\/ul>\n<\/li>\n<li>PCI\n<ul>\n<li><a href=\"https:\/\/lore.kernel.org\/linux-pci\/20200518163523.1225643-1-sean.v.kelley@linux.intel.com\/\" data-cke-saved-href=\"https:\/\/lore.kernel.org\/linux-pci\/20200518163523.1225643-1-sean.v.kelley@linux.intel.com\/\">Cache Coherent Interconnect for Accelerators (CCIX)\/Compute Express Link (CXL) expansion memory and accelerators management<\/a><\/li>\n<li>I\/O Address Space ID Allocator (IOASID)<\/li>\n<li>INTX\/MSI IRQ domain consolidation<\/li>\n<li>Gen-Z interconnect fabric<\/li>\n<li>ARM64 architecture and hardware<\/li>\n<li>PCI native host controllers\/endpoints drivers current challenges and improvements (e.g., state of PCI quirks, etc.)<\/li>\n<li>PCI error handling and management e.g., Advanced Error Reporting (AER), Downstream Port Containment (DPC), ACPI Platform Error Interface (APEI) and Error Disconnect Recover (EDR)<\/li>\n<li>Power management and devices supporting Active-state Power Management (ASPM)<\/li>\n<li><a href=\"https:\/\/www.kernel.org\/doc\/html\/latest\/driver-api\/pci\/p2pdma.html\" data-cke-saved-href=\"https:\/\/www.kernel.org\/doc\/html\/latest\/driver-api\/pci\/p2pdma.html\">Peer-to-Peer DMA (P2PDMA)<\/a><\/li>\n<li>Resources claiming\/assignment consolidation<\/li>\n<li>Prefetchable vs non-prefetchable BAR address mappings<\/li>\n<li><a href=\"https:\/\/lore.kernel.org\/linux-pci\/20200616011742.138975-4-rajatja@google.com\" data-cke-saved-href=\"https:\/\/lore.kernel.org\/linux-pci\/20200616011742.138975-4-rajatja@google.com\">Untrusted\/external devices management<\/a><\/li>\n<li>Thunderbolt, DMA, RDMA and USB4 security<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Come and join us in the discussion in helping Linux keep up with the new features being added to the PCI interconnect specification.<\/p>\n<p>We hope to see you <a href=\"https:\/\/www.linuxplumbersconf.org\/event\/11\/page\/104-accepted-microconferences#cont-pci\">there<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>We are pleased to announce that the VFIO\/IOMMU\/PCI Microconference has been accepted into the 2021 Linux Plumbers Conference. Today&#8217;s high speed components commonly utilize the devices that implement the PCI interconnect specification and the system IOMMUs that provide memory and access control between the devices and the system resources. The features of this domain are [&hellip;]<\/p>\n","protected":false},"author":9,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[1],"tags":[18],"class_list":["post-125","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-18"],"_links":{"self":[{"href":"https:\/\/lpc.events\/blog\/current\/index.php\/wp-json\/wp\/v2\/posts\/125","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lpc.events\/blog\/current\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lpc.events\/blog\/current\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lpc.events\/blog\/current\/index.php\/wp-json\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/lpc.events\/blog\/current\/index.php\/wp-json\/wp\/v2\/comments?post=125"}],"version-history":[{"count":1,"href":"https:\/\/lpc.events\/blog\/current\/index.php\/wp-json\/wp\/v2\/posts\/125\/revisions"}],"predecessor-version":[{"id":383,"href":"https:\/\/lpc.events\/blog\/current\/index.php\/wp-json\/wp\/v2\/posts\/125\/revisions\/383"}],"wp:attachment":[{"href":"https:\/\/lpc.events\/blog\/current\/index.php\/wp-json\/wp\/v2\/media?parent=125"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lpc.events\/blog\/current\/index.php\/wp-json\/wp\/v2\/categories?post=125"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lpc.events\/blog\/current\/index.php\/wp-json\/wp\/v2\/tags?post=125"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}