summaryrefslogtreecommitdiffstats
path: root/wiki/open-iov.org/index.php?title=Merged_Drivers&action=edit.html
diff options
context:
space:
mode:
Diffstat (limited to 'wiki/open-iov.org/index.php?title=Merged_Drivers&action=edit.html')
-rw-r--r--wiki/open-iov.org/index.php?title=Merged_Drivers&action=edit.html255
1 files changed, 255 insertions, 0 deletions
diff --git a/wiki/open-iov.org/index.php?title=Merged_Drivers&action=edit.html b/wiki/open-iov.org/index.php?title=Merged_Drivers&action=edit.html
new file mode 100644
index 0000000..37400ab
--- /dev/null
+++ b/wiki/open-iov.org/index.php?title=Merged_Drivers&action=edit.html
@@ -0,0 +1,255 @@
+<!DOCTYPE html>
+<html class="client-nojs" lang="en" dir="ltr">
+<head>
+<meta charset="UTF-8"/>
+<title>View source for Merged Drivers - Open-IOV</title>
+<script>document.documentElement.className="client-js";RLCONF={"wgBreakFrames":!0,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"d0c7d88ec76ca30fc2ac4d6b","wgCSPNonce":!1,"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":!1,"wgNamespaceNumber":0,"wgPageName":"Merged_Drivers","wgTitle":"Merged Drivers","wgCurRevisionId":23737,"wgRevisionId":0,"wgArticleId":30,"wgIsArticle":!1,"wgIsRedirect":!1,"wgAction":"edit","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Merged_Drivers","wgRelevantArticleId":30,"wgIsProbablyEditable":!1,"wgRelevantPageIsProbablyEditable":!1,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr",
+"pageVariantFallbacks":"en"},"wgEditSubmitButtonLabelPublish":!1};RLSTATE={"site.styles":"ready","noscript":"ready","user.styles":"ready","user":"ready","user.options":"loading","skins.vector.styles.legacy":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready"};RLPAGEMODULES=["mediawiki.action.edit.collapsibleFooter","site","mediawiki.page.ready","skins.vector.legacy.js","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader"];</script>
+<script>(RLQ=window.RLQ||[]).push(function(){mw.loader.implement("user.options@1hzgi",function($,jQuery,require,module){/*@nomin*/mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"});
+});});</script>
+<link rel="stylesheet" href="load.php%3Flang=en&amp;modules=ext.visualEditor.desktopArticleTarget.noscript|skins.vector.styles.legacy&amp;only=styles&amp;skin=vector.css"/>
+<script async="" src="load.php%3Flang=en&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector"></script>
+<meta name="generator" content="MediaWiki 1.37.1"/>
+<meta name="robots" content="noindex,nofollow"/>
+<meta name="format-detection" content="telephone=no"/>
+<link rel="shortcut icon" href="favicon.ico.html"/>
+<link rel="search" type="application/opensearchdescription+xml" href="opensearch_desc.php" title="Open-IOV (en)"/>
+<link rel="EditURI" type="application/rsd+xml" href="api.php%3Faction=rsd"/>
+<link rel="alternate" type="application/atom+xml" title="Open-IOV Atom feed" href="./index.php%3Ftitle=Special:RecentChanges&amp;feed=atom"/>
+</head>
+<body class="mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Merged_Drivers rootpage-Merged_Drivers skin-vector action-edit skin-vector-legacy"><div id="mw-page-base" class="noprint"></div>
+<div id="mw-head-base" class="noprint"></div>
+<div id="content" class="mw-body" role="main">
+ <a id="top"></a>
+ <div id="siteNotice"></div>
+ <div class="mw-indicators">
+ </div>
+ <h1 id="firstHeading" class="firstHeading" >View source for Merged Drivers</h1>
+ <div id="bodyContent" class="vector-body">
+
+ <div id="contentSub">← <a href="index.php/Merged_Drivers.html" title="Merged Drivers">Merged Drivers</a></div>
+ <div id="contentSub2"></div>
+
+ <div id="jump-to-nav"></div>
+ <a class="mw-jump-link" href="index.php%3Ftitle=Merged_Drivers&amp;action=edit.html#mw-head">Jump to navigation</a>
+ <a class="mw-jump-link" href="index.php%3Ftitle=Merged_Drivers&amp;action=edit.html#searchInput">Jump to search</a>
+ <div id="mw-content-text" class="mw-body-content"><p>You do not have permission to edit this page, for the following reason:
+</p>
+<div class="permissions-errors">
+<p>The action you have requested is limited to users in the group: <a href="https://open-iov.org/index.php?title=Open-IOV:Administrators&amp;action=edit&amp;redlink=1" class="new" title="Open-IOV:Administrators (page does not exist)">Administrators</a>.
+</p>
+</div><hr />
+<p>You can view and copy the source of this page.
+</p><textarea readonly="" accesskey="," id="wpTextbox1" cols="80" rows="25" style="" class="mw-editfont-monospace" lang="en" dir="ltr" name="wpTextbox1">The following page will provide specifications and details on the current state of host DRM + VFIO-Mdev drivers in support of various vendors.
+
+In the context of this page the term '''"Merged Driver"''' refers to drivers which ''allow simultaneous acceleration of the host using a device's PF (Physical Function) and acceleration of guests using one or more VFs (Virtual Functions) created using the same device''.
+
+Merged functionality is currently supported for drivers which both make use of VFIO-Mdev and SR-IOV functionality depending on the vendor and driver implementation.&lt;blockquote>An absence of critical technical documentation has historically slowed growth and adoption of developer ecosystems for GPU virtualization.
+
+This [https://creativecommons.org/licenses/by/4.0/ CC-BY-4.0] licensed content can either be used with attribution, or used as inspiration for new documentation, created by GPU vendors for public commercial distribution as developer documentation.
+
+Where possible, this documentation will clearly label dates and versions of observed-but-not-guaranteed behaviour vs. vendor-documented stable interfaces/behaviour with guarantees of forward or backward compatibility.&lt;/blockquote>
+
+== Intel i915 ==
+[[File:Intel GVT-g Capabilities.png|thumb|Intel's slides mention the ability to accelerate up to '8 VMs plus DOM0'. Source: https://01.org/sites/default/files/documentation/an_introduction_to_intel_gvt-g_for_external.pdf]]
+Intel currently supports host DRM and VFIO-Mdev/SR-IOV functionality in it's [https://github.com/torvalds/linux/tree/master/drivers/gpu/drm/i915 current i915 driver sources (VFIO-Mdev/GVT-g)] and [https://github.com/intel/linux-intel-lts/commit/41ef979f0894326c202473807a56b599a2f3d04e upstreaming i915 driver sources (VFIO-Mdev/SR-IOV)].
+
+=== Known Issues ===
+
+# SR-IOV functionality is undocumented in the [https://01.org/linuxgraphics/gfx-docs/drm/gpu/i915.html i915 driver API documentation]. &lt;br /> '''''Confirmed affected versions:''' *''[[File:Intel i915 Host DRM + VFIO-Mdev..png|thumb|A diagram depicting i915's shared host + VFIO-Mdev driver model.]]
+
+=== Resolved Issues ===
+
+# Multiplexing functionality requires use modified KVM and Xen hypervisors ([https://01.org/sites/default/files/documentation/01x08b-kvmgt-a.pdf KVMGT]/[https://wiki.xenproject.org/wiki/XenGT XenGT]). '''''&lt;br />Confirmed affected versions:''' [https://github.com/torvalds/linux/tree/master/drivers/gpu/drm/i915 current i915 driver sources (GVT-g)]'''&lt;br />Fixed in:''' [https://github.com/intel/linux-intel-lts/commit/41ef979f0894326c202473807a56b599a2f3d04e upstreaming i915 driver sources (SR-IOV)]''
+
+== Nvidia ==
+=== Known Issues ===
+
+# Power management on laptops running mediated graphics functionality may causes graphical errors when not plugged in to AC power. &lt;br />'''''Confirmed affected versions:''' 460.32.01, 460.73.04'' &lt;br />'''''Possible mitigation:''''' [https://lore.kernel.org/lkml/20220425092615.10133-1-abhsahu@nvidia.com/ lore.kernel.org: ''"vfio/pci: Change the PF power state to D0 before enabling VFs"'']
+# VFIO-vmalloc errors may occur as a result of page collisions between host &amp; guest on GPUs with smaller VRAM frame buffer sizes. &lt;br />'''''Confirmed affected versions:''' 460.32.01, 460.73.04''
+#Mdev service daemons may crash or load incorrectly requiring a service restart or reboot during host runtime.&lt;br />'''''Confirmed affected versions:''' 460.32.01, 460.73.04, 510.xx.xx''
+#Guest drivers fail to initialize correctly when VFIO-Mdev devices are mixed with some VFIO passthrough'd USB hubs.&lt;br />'''''Confirmed affected versions:''' 460.73.01''
+
+=== Resolved Issues ===
+
+# Upon executing [https://open-iov.org/index.php/Virtual_IO_Internals#QEMU_adds_VFIO_device_to_IOMMU_container-group QEMU mdev device initialization] for a second Mdev an IOMMU group binding error occurs in QEMU preventing the device from being brought up.&lt;br />'''''Confirmed affected versions:''' 460.32.01, 460.73.04&lt;br />'''Fixed in:''' 510.xx.xx''
+
+=== Module Configuration ===
+Depending on your use-case the use of some additional parameters when booting the system may be helpful.
+
+Here is a list of some parameters which may be used when loading the module via GRUB or Systemd-boot.
+{| class="wikitable"
+|+Module Parameters
+!Parameter
+!Description
+!Side-Effects
+|-
+|cudahost=1
+|Allows use of CUDA on the host system.
+|Windows guests may fail.
+|-
+|nvidia.vgpukvm=0
+|Disables GPU virtualization on the host.
+|
+|}
+
+== AMDGPU ==
+At this time AMDGPU does not currently support VFIO-Mdev functionality. It may be possible to incorporate [https://open-iov.org/index.php/Mediated_Device_Internals#Mdev_Mode Mdev Mode mediated device support] similar to those functions in nvidia.ko and i915.ko in the [https://github.com/torvalds/linux/tree/master/drivers/gpu/drm/amd/amdgpu Linux kernel's AMDGPU driver sources] to produce a driver suitable for merged host+guest DRM for use with AMD GPU devices.
+
+=== Known Issues ===
+
+# Host DRM does not work alongside guest VFIO-Mdev. &lt;br />'''''Confirmed affected versions:''' *''
+#The amdgpu kernel module doesn't contain hooks for guest signalling via [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=721eecbf4fe995ca94a9edec0c9843b1cc0eaaf3 irqfd] &amp; [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=d34e6b175e61821026893ec5298cc8e7558df43a ioeventfd] used for VFIO-mdev callbacks. &lt;br />'''''Confirmed affected versions:''' *'' &lt;br />
+</textarea><div class="templatesUsed"></div><p id="mw-returnto">Return to <a href="index.php/Merged_Drivers.html" title="Merged Drivers">Merged Drivers</a>.</p>
+
+<div class="printfooter">Retrieved from "<a dir="ltr" href="index.php/Merged_Drivers.html">https://open-iov.org/index.php/Merged_Drivers</a>"</div></div>
+ <div id="catlinks" class="catlinks catlinks-allhidden" data-mw="interface"></div>
+ </div>
+</div>
+
+<div id="mw-navigation">
+ <h2>Navigation menu</h2>
+ <div id="mw-head">
+ <nav id="p-personal" class="mw-portlet mw-portlet-personal vector-user-menu-legacy vector-menu" aria-labelledby="p-personal-label" role="navigation"
+ >
+ <h3 id="p-personal-label" class="vector-menu-heading"> <span>Personal tools</span>
+ </h3>
+ <div class="vector-menu-content">
+
+ <ul class="vector-menu-content-list"><li id="pt-login" class="mw-list-item"><a href="https://open-iov.org/index.php?title=Special:UserLogin&amp;returnto=Merged+Drivers&amp;returntoquery=action%3Dedit" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o">Log in</a></li></ul>
+
+ </div>
+</nav>
+
+ <div id="left-navigation">
+ <nav id="p-namespaces" class="mw-portlet mw-portlet-namespaces vector-menu vector-menu-tabs" aria-labelledby="p-namespaces-label" role="navigation"
+ >
+ <h3 id="p-namespaces-label" class="vector-menu-heading"> <span>Namespaces</span>
+ </h3>
+ <div class="vector-menu-content">
+
+ <ul class="vector-menu-content-list"><li id="ca-nstab-main" class="selected mw-list-item"><a href="index.php/Merged_Drivers.html" title="View the content page [c]" accesskey="c">Page</a></li><li id="ca-talk" class="new mw-list-item"><a href="https://open-iov.org/index.php?title=Talk:Merged_Drivers&amp;action=edit&amp;redlink=1" rel="discussion" title="Discussion about the content page (page does not exist) [t]" accesskey="t">Discussion</a></li></ul>
+
+ </div>
+</nav>
+
+ <nav id="p-variants" class="mw-portlet mw-portlet-variants emptyPortlet vector-menu-dropdown-noicon vector-menu vector-menu-dropdown" aria-labelledby="p-variants-label" role="navigation"
+ >
+ <input type="checkbox"
+ id="p-variants-checkbox"
+ role="button"
+ aria-haspopup="true"
+ data-event-name="ui.dropdown-p-variants"
+ class=" vector-menu-checkbox" aria-labelledby="p-variants-label" />
+ <h3 id="p-variants-label" class="vector-menu-heading"> <span>Variants</span>
+ <span class="vector-menu-checkbox-expanded">expanded</span>
+ <span class="vector-menu-checkbox-collapsed">collapsed</span>
+ </h3>
+ <div class="vector-menu-content">
+
+ <ul class="vector-menu-content-list"></ul>
+
+ </div>
+</nav>
+
+ </div>
+ <div id="right-navigation">
+ <nav id="p-views" class="mw-portlet mw-portlet-views vector-menu vector-menu-tabs" aria-labelledby="p-views-label" role="navigation"
+ >
+ <h3 id="p-views-label" class="vector-menu-heading"> <span>Views</span>
+ </h3>
+ <div class="vector-menu-content">
+
+ <ul class="vector-menu-content-list"><li id="ca-view" class="mw-list-item"><a href="index.php/Merged_Drivers.html">Read</a></li><li id="ca-viewsource" class="selected mw-list-item"><a href="index.php%3Ftitle=Merged_Drivers&amp;action=edit.html" title="This page is protected.&#10;You can view its source [e]" accesskey="e">View source</a></li><li id="ca-history" class="mw-list-item"><a href="index.php%3Ftitle=Merged_Drivers&amp;action=history.html" title="Past revisions of this page [h]" accesskey="h">View history</a></li></ul>
+
+ </div>
+</nav>
+
+ <nav id="p-cactions" class="mw-portlet mw-portlet-cactions emptyPortlet vector-menu-dropdown-noicon vector-menu vector-menu-dropdown" aria-labelledby="p-cactions-label" role="navigation" title="More options"
+ >
+ <input type="checkbox"
+ id="p-cactions-checkbox"
+ role="button"
+ aria-haspopup="true"
+ data-event-name="ui.dropdown-p-cactions"
+ class=" vector-menu-checkbox" aria-labelledby="p-cactions-label" />
+ <h3 id="p-cactions-label" class="vector-menu-heading"> <span>More</span>
+ <span class="vector-menu-checkbox-expanded">expanded</span>
+ <span class="vector-menu-checkbox-collapsed">collapsed</span>
+ </h3>
+ <div class="vector-menu-content">
+
+ <ul class="vector-menu-content-list"></ul>
+
+ </div>
+</nav>
+
+ <div id="p-search" role="search" class="vector-search-box">
+ <div>
+ <h3 >
+ <label for="searchInput">Search</label>
+ </h3>
+ <form action="https://open-iov.org/index.php" id="searchform">
+ <div id="simpleSearch" data-search-loc="header-navigation">
+ <input type="search" name="search" placeholder="Search Open-IOV" autocapitalize="sentences" title="Search Open-IOV [f]" accesskey="f" id="searchInput"/>
+ <input type="hidden" name="title" value="Special:Search"/>
+ <input type="submit" name="fulltext" value="Search" title="Search the pages for this text" id="mw-searchButton" class="searchButton mw-fallbackSearchButton"/>
+ <input type="submit" name="go" value="Go" title="Go to a page with this exact name if it exists" id="searchButton" class="searchButton"/>
+ </div>
+ </form>
+ </div>
+</div>
+
+ </div>
+ </div>
+
+<div id="mw-panel">
+ <div id="p-logo" role="banner">
+ <a class="mw-wiki-logo" href="images/archive/c/c3/20221214193624!I915_Scheduling_Events_and_Requests.png.html"
+ title="Visit the main page"></a>
+ </div>
+ <nav id="p-navigation" class="mw-portlet mw-portlet-navigation vector-menu vector-menu-portal portal" aria-labelledby="p-navigation-label" role="navigation"
+ >
+ <h3 id="p-navigation-label" class="vector-menu-heading"> <span>Navigation</span>
+ </h3>
+ <div class="vector-menu-content">
+
+ <ul class="vector-menu-content-list"><li id="n-mainpage-description" class="mw-list-item"><a href="images/archive/c/c3/20221214193624!I915_Scheduling_Events_and_Requests.png.html" title="Visit the main page [z]" accesskey="z">Main page</a></li><li id="n-recentchanges" class="mw-list-item"><a href="https://open-iov.org/index.php/Special:RecentChanges" title="A list of recent changes in the wiki [r]" accesskey="r">Recent changes</a></li><li id="n-randompage" class="mw-list-item"><a href="index.php/Special:Random.html" title="Load a random page [x]" accesskey="x">Random page</a></li><li id="n-help-mediawiki" class="mw-list-item"><a href="https://www.mediawiki.org/wiki/Special:MyLanguage/Help:Contents">Help about MediaWiki</a></li></ul>
+
+ </div>
+</nav>
+
+ <nav id="p-tb" class="mw-portlet mw-portlet-tb vector-menu vector-menu-portal portal" aria-labelledby="p-tb-label" role="navigation"
+ >
+ <h3 id="p-tb-label" class="vector-menu-heading"> <span>Tools</span>
+ </h3>
+ <div class="vector-menu-content">
+
+ <ul class="vector-menu-content-list"><li id="t-whatlinkshere" class="mw-list-item"><a href="index.php/Special:WhatLinksHere/Merged_Drivers.html" title="A list of all wiki pages that link here [j]" accesskey="j">What links here</a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="https://open-iov.org/index.php/Special:RecentChangesLinked/Merged_Drivers" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k">Related changes</a></li><li id="t-specialpages" class="mw-list-item"><a href="index.php/Special:SpecialPages.html" title="A list of all special pages [q]" accesskey="q">Special pages</a></li><li id="t-info" class="mw-list-item"><a href="index.php%3Ftitle=Merged_Drivers&amp;action=info.html" title="More information about this page">Page information</a></li></ul>
+
+ </div>
+</nav>
+
+
+</div>
+
+</div>
+<footer id="footer" class="mw-footer" role="contentinfo" >
+ <ul id="footer-info" >
+</ul>
+
+ <ul id="footer-places" >
+ <li id="footer-places-privacy"><a href="https://open-iov.org/index.php/Open-IOV:Privacy_policy" title="Open-IOV:Privacy policy">Privacy policy</a></li>
+ <li id="footer-places-about"><a href="index.php/Open-IOV:About.html" title="Open-IOV:About">About Open-IOV</a></li>
+ <li id="footer-places-disclaimer"><a href="https://open-iov.org/index.php/Open-IOV:General_disclaimer" title="Open-IOV:General disclaimer">Disclaimers</a></li>
+</ul>
+
+ <ul id="footer-icons" class="noprint">
+ <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/"><img src="resources/assets/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" srcset="resources/assets/poweredby_mediawiki_132x47.png 1.5x, resources/assets/poweredby_mediawiki_176x62.png 2x" width="88" height="31" loading="lazy"/></a></li>
+</ul>
+
+</footer>
+
+
+<script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgBackendResponseTime":70});});</script>
+<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a3996943592039c9',t:'MTc4OTE1ODQyNg=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script></body></html> \ No newline at end of file