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:

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.