Bug 1275401

Summary: Incorrect description in 17.1.6. PCI passthrough
Product: Red Hat Enterprise Linux 7 Reporter: Alex Williamson <alex.williamson>
Component: doc-Virtualization_Deployment_and_Administration_GuideAssignee: Jiri Herrmann <jherrman>
Status: CLOSED DEFERRED QA Contact:
Severity: unspecified Docs Contact:
Priority: low    
Version: 7.2CC: alex.williamson, rhel-docs
Target Milestone: rcKeywords: Documentation
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-04-02 07:39:44 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Alex Williamson 2015-10-26 19:47:24 UTC
Document URL: 

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7-Beta/html/Virtualization_Deployment_and_Administration_Guide/chap-Guest_virtual_machine_device_configuration.html#sect-PCI_devices-PCI_passthrough

Section Number and Name: 

17.1.6. PCI passthrough

Describe the issue: 

Regarding the following paragraph:

--
To use VFIO device assignment rather than traditional/legacy KVM device assignment (VFIO is a new method of device assignment that is compatible with UEFI Secure Boot), a <type='hostdev'> interface can have an optional driver sub-element with a name attribute set to "vfio". To use legacy KVM device assignment you can set name to "kvm" (or simply omit the <driver> element, since <driver='kvm'> is currently the default).
--

While the <driver> parameter is valid XML within the <hostdev> for an assigned device, RHEL7 only supports and only enables VFIO based device assignment.  Therefore if the <driver> element is omitted, the default will be to use VFIO, which is also the upstream default.  Using <driver='kvm'/> is not supported and will not work on RHEL7.

Suggestions for improvement: 

I'm not sure there's any value to the paragraph.  There is no release that supports or even enables both legacy KVM device assignment and VFIO.  The default is always the correct value to use, it will result in VFIO on RHEL7 and legacy on RHEL6.  We could further eliminate the <driver> element from the <hostdev> examples as it's just extraneous information for users.

Additional information:

Comment 2 Luiz Capitulino 2015-10-26 20:37:24 UTC
I had to consult the documentation myself last week and got a bit confused precisely by the paragraph mentioned by Alex. Here's a few suggestions on how to make the documentation clearer:

1. In the introduction in 17.1 be clear that only VFIO is supported and it's used by our tools by default

2. Drop any reference to legacy device assignment from the docs

3. Standardize the terminology on "device assignment" or "passthrough". That is, pick one and drop the other from all sections

4. Maybe 17.1.6 can be dropped altogether? I'm new to this, but I still don't exactly get what it's documenting. Is it an attempt to document SR-IOV? The next section seems to do that too

Comment 3 Alex Williamson 2015-10-26 20:49:22 UTC
(In reply to Luiz Capitulino from comment #2)
>
> 3. Standardize the terminology on "device assignment" or "passthrough". That
> is, pick one and drop the other from all sections

IMO, PCI device assignment should always use the term "device assignment".  "Passthrough" should be reserved for things like the way we attach USB devices or smartcards to a VM.