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 1025958

Summary: Provide a way for libvirt to find available qdevs via QMP
Product: Red Hat Enterprise Linux 7 Reporter: Markus Armbruster <armbru>
Component: qemu-kvm-rhevAssignee: Markus Armbruster <armbru>
Status: CLOSED WONTFIX QA Contact: jingzhao <jinzhao>
Severity: medium Docs Contact:
Priority: low    
Version: 7.0CC: ailan, chayang, cwei, dyuan, eblake, hhuang, juzhang, michen, mzhan, tzheng, virt-maint, xfu
Target Milestone: rcKeywords: FutureFeature
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: 2018-12-10 21:29:18 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:
Bug Depends On: 1001216    
Bug Blocks:    

Description Markus Armbruster 2013-11-02 13:25:38 UTC
Description of problem:
Libvirt uses QOM command qom-list-types to find available devices.  It
doesn't obey no_user.  As far as I can tell, QOM doesn't let you
figure out whether a device is no_user.

How reproducible:
Always

Steps to Reproduce:
1. Run: qemu-kvm -nodefaults -S -display none -qmp stdio
2. Type:
{ "execute": "qmp_capabilities" }
{ "execute": "qom-list-types", "arguments": { "implements": "device" } }

Actual results:
qom-list-types returns a list of devices that includes no-user devices such as "apic".

Expected results:
Either the result for the qom-list-types command in the reproducer should include information on whether the device is no-user, or there should be another way to get that information.

Comment 1 Markus Armbruster 2013-11-02 13:27:20 UTC
Eric, please confirm or deny that libvirt actually needs this piece of information.

Comment 3 Eric Blake 2013-11-07 15:57:36 UTC
(In reply to Markus Armbruster from comment #1)
> Eric, please confirm or deny that libvirt actually needs this piece of
> information.

Right now, I don't know of any device that is marked no-user but where libvirt tries to use it anyways.  As long as that situation remains, then this patch is not urgent.  But you are correct that libvirt would LIKE to know which devices are no-user, particularly if downstream is going to add patches to mark devices as no-user due to an unwillingness to support those devices in comparison to upstream.

Comment 4 Markus Armbruster 2013-11-14 08:57:53 UTC
The following device models are no-user in RHEL-7, but not in upstream
master:

    SUNW,fdtwo
    ccid-card-emulated
    exynos4210-ehci-usb
    icc-bridge
    isa-cirrus-vga
    mch
    pci-serial-2x
    pci-serial-4x
    q35-pcihost
    sysbus-ahci
    sysbus-fdc
    xlnx,ps7-usb

The following device models are expected to become no-user upstream:

    SUNW,fdtwo                  [1]
    cfi.pflash01                [2]
    esp                         [2]
    exynos4210-ehci-usb         [1]
    fusbh200-ehci-usb		[3]
    icc-bridge                  [1]
    mch				[1]
    q35-pcihost			[1]
    sysbus-ahci			[1]
    sysbus-fdc			[1]
    sysbus-ohci			[2]
    tegra2-ehci-usb		[3]
    virtio-mmio			[3]
    xlnx,ps7-usb		[1]

    [1] same as RHEL-7
    [2] device compiled out in RHEL-7
    [3] device not in RHEL-7 code

The following device models are expected to lose no-user upstream (but
not in RHEL-7):

    i8042
    isa-fdc
    piix3-ide
    piix3-ide-xen
    piix4-ide

Potential troublemakers (devices no-user in RHEL-7 only):

    ccid-card-emulated
    i8042
    isa-cirrus-vga
    isa-fdc
    pci-serial-2x
    pci-serial-4x
    piix3-ide
    piix3-ide-xen
    piix4-ide

Comment 11 Ademar Reis 2018-12-10 21:29:18 UTC
BZ open since 2013, not a high priority. Closing it to focus on important issues with our limited capacity. Please reopen if this turns out to be a high priority with an important use-case.