Bug 1111044

Summary: capabilities mode hostdev shouldn't be added in KVM
Product: Red Hat Enterprise Linux 7 Reporter: Jincheng Miao <jmiao>
Component: libvirtAssignee: Pavel Hrdina <phrdina>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.1CC: dyuan, honzhang, jiahu, lcheng, mzhan, rbalakri
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-1.2.7-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-05 07:37:50 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 Jincheng Miao 2014-06-19 06:34:34 UTC
Description of problem:
capabilities mode hostdev shouldn't be defined in KVM.

From libvirt.org:
"
Block / character devices from the host can be passed through to the guest using the hostdev element.
This is only possible with container based virtualization. since after 1.0.1 for LXC
"
We can see this capabilities mode is only for container based virtualization, like LXC. So for KVM, this hostdev shouldn't be defined.

Version-Release number of selected component (if applicable):
libvirt-1.1.1-29.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1. add capabilities mode hostdev to a inactive domain:
# virsh edit r6
...
    <hostdev mode='capabilities' type='storage'>
      <source>
        <block>/dev/sdb3</block>
      </source>
    </hostdev>
...

2. start domain
# virsh start r6

3. this hostdev is not working actually, no effect for KVM domain.
The storage can't be listed in guest:
# lspci


Expected result:
libvirtd should forbid to add capabilities mode hostdev to KVM domain.

Comment 1 Pavel Hrdina 2014-06-26 09:01:32 UTC
Fixed in upstream:

commit 01e508f33c3b94bafe3e266bfd45b070fae8c8c0
Author: Jincheng Miao <jmiao>
Date:   Wed Jun 25 14:45:59 2014 +0800

    enhance hostdev mode 'capabilities' process
    
    Currently, only LXC has hostdev mode 'capabilities' support,
    so the other drivers should forbid to define it in XML.
    The hostdev mode check is added to devicesPostParseCallback()
    for each hypervisor driver.
    
    But there are some drivers lack function devicesPostParseCallback(),
    so only add check for qemu, libxl, openvz, uml, xen, xenapi.
    
    Signed-off-by: Jincheng Miao <jmiao>

Comment 3 lcheng 2014-11-18 08:31:17 UTC
Verify it as follows. The result is expected.


Version:
libvirt-1.2.8-7.el7.x86_64
qemu-kvm-1.5.3-79.el7.x86_64
qemu-kvm-rhev-2.1.2-8.el7


Steps:
Add the following content to a inactive domain.
    <hostdev mode='capabilities' type='storage'>
      <source>
        <block>/dev/sdb3</block>
      </source>
    </hostdev>


# virsh edit a
error: unsupported configuration: hostdev mode 'capabilities' is not supported in kvm
Failed. Try again? [y,n,f,?]:

Comment 5 errata-xmlrpc 2015-03-05 07:37:50 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHSA-2015-0323.html