Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 1309320

Summary: qemu-kvm feature request to hide hypervisor from guest
Product: Red Hat Enterprise Linux 7 Reporter: Vlastimil Holer <vlastimil.holer>
Component: qemu-kvmAssignee: Virtualization Maintenance <virt-maint>
Status: CLOSED WONTFIX QA Contact: Virtualization Bugs <virt-bugs>
Severity: low Docs Contact:
Priority: low    
Version: 7.3CC: alex.williamson, chayang, huding, jkachuck, juzhang, knoel, rbalakri, sherold, virt-maint, xfu, zhguo
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-02-24 16:30:31 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 Vlastimil Holer 2016-02-17 13:18:31 UTC
Description of problem:
It would be nice if qemu-kvm in RHEL 7.x has feature to
hide hypervisor from guest via command line option kvm=off
(-cpu host,kvm=off). This is essential for GPU passthrough
with current NVIDIA cards and latest drivers. See page 23
http://www.linux-kvm.org/images/b/b3/01x09b-VFIOandYou-small.pdf

RHEL 7.2 libvirt already supports this via
https://www.redhat.com/archives/libvir-list/2014-August/msg00744.html
  <features>
    <kvm><hidden state='on'/></kvm>
  </features>

QEMU-KVM-EV is new enough to have this support as well.
So for GPU passthrough one has to go with qemu-kvm-ev
only because it supports kvm=off instead of qemu-kvm.

How reproducible:
Enabling feature in domain XML
  <features><kvm><hidden state='on'/></kvm></features>
Check hypervisor in guest.

Steps to Reproduce:
1. enable feature in domain XML (see above)
2. virt-what in guest should return empty string
3. dmesg in guest should contain info about bare matal (instead of "on KVM")
[    0.000000] Booting paravirtualized kernel on bare hardware

Actual results:
No way to hide KVM in qemu-kvm.

Comment 6 Scott Herold 2016-02-24 16:30:31 UTC
This is not a supported configuration by either Red Hat Enterprise Linux or Nvidia.  Closing bug as WONTFIX.

Comment 7 Vlastimil Holer 2016-02-24 16:35:33 UTC
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Virtualization_Deployment_and_Administration_Guide/sect-device-GPU.html

"Red Hat Enterprise Linux 7 supports PCI device assignment of NVIDIA K-Series Quadro (model 2000 series or higher), GRID, and Tesla as non-VGA graphics devices."

That means you support NVIDIA GPU passthrough, but you don't care the GPU doesn't work?

Comment 8 Alex Williamson 2016-02-24 16:49:26 UTC
Those supported models have no requirement to hide the hypervisor, the NVIDIA driver works with KVM exposed.

Comment 9 Vlastimil Holer 2016-02-24 17:13:01 UTC
I have two different Tesla cards
1. NVIDIA Corporation GF110GL  [Tesla M2090]
2. NVIDIA Corporation GK110BGL [Tesla K40c]
and first doesn't work without hiding KVM for sure.

Second one is currently running Debian 8 guest with old distribution driver 340.96-1, which isn't broken yet. I'll test some newer driver tomorrow.

Are these Teslas unsupported models?

Comment 10 Alex Williamson 2016-02-24 17:18:26 UTC
(In reply to Vlastimil Holer from comment #9)
> I have two different Tesla cards
> 1. NVIDIA Corporation GF110GL  [Tesla M2090]
> 2. NVIDIA Corporation GK110BGL [Tesla K40c]
> and first doesn't work without hiding KVM for sure.
> 
> Second one is currently running Debian 8 guest with old distribution driver
> 340.96-1, which isn't broken yet. I'll test some newer driver tomorrow.
> 
> Are these Teslas unsupported models?

According to our data from NVIDIA, only the second is supported, we have no information on M-series Teslas.

Comment 11 Vlastimil Holer 2016-02-24 17:30:09 UTC
OK. If it's on your agreement with NVIDIA, I understand. On the other hand I don't see anything wrong against backporting the KVM hiding feature (e.g. for QA environments).

I'll check the second card first, but I have strong feeling, that it didn't work as well.

Also if there is a limited set of supported GPUs, it should be written somewhere.
Documentation and knowledgebase is missing these things
https://access.redhat.com/solutions/170363

Anyway, thank you Alex for your comments.

Comment 12 Vlastimil Holer 2016-02-25 13:56:18 UTC
(In reply to Alex Williamson from comment #10)
> According to our data from NVIDIA, only the second is supported, we have no
> information on M-series Teslas.

You are right, the second Tesla K40c works without hiding KVM.