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 1387602

Summary: Disabling vfio-platform will break ppc64 qemu-kvm-rhev
Product: Red Hat Enterprise Linux 7 Reporter: Miroslav Rezanina <mrezanin>
Component: qemu-kvm-rhevAssignee: Miroslav Rezanina <mrezanin>
Status: CLOSED NOTABUG QA Contact: Virtualization Bugs <virt-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.4CC: chayang, juzhang, knoel, qzhang, virt-maint
Target Milestone: rc   
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: 2016-10-24 11:28:42 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:    
Bug Blocks: 1387600    

Description Miroslav Rezanina 2016-10-21 11:05:09 UTC
Description of problem:

We disabled vfio-platform in RHEL 7.3. However, removing it in QEMU 2.7.0 will cause qemu-kvm on ppc64 to fail.


Version-Release number of selected component (if applicable):
qemu-kvm-rhev (2.7.0 based)

How reproducible:

Can be reproduced using upstream QEMU with applying commit e305bb4 (remove platform.o from hw/vfio/Makefile.objs)

Steps to Reproduce:
1.
2.
3.

Actual results:

qemu-kvm fails to start

Expected results:

qemu-kvm works correctly
Additional info:

Comment 1 Laurent Vivier 2016-10-21 13:37:33 UTC
ERROR: qom/object.c:168:type_get_parent: assertion failed: (type->parent_type != NULL)
...
#4  0x0000555555a636d9 in type_get_parent (type=<optimized out>, 
    type=<optimized out>)
    at qom/object.c:168
#5  0x0000555555a63a71 in type_initialize (ti=ti@entry=0x555556e27300)
    at qom/object.c:278
#6  0x0000555555a6429d in type_initialize (ti=0x555556e27300)
    at qom/object.c:812
#7  object_class_foreach_tramp (key=<optimized out>, value=0x555556e27300, 
    opaque=0x7fffffffd9f0)
    at qom/object.c:799
...
#11 0x0000555555901a8f in find_default_machine ()
    at /home/lvivier/Projects/qemu-upstream-2/vl.c:1510
#12 0x0000555555780c74 in select_machine ()
    at /home/lvivier/Projects/qemu-upstream-2/vl.c:2776
#13 main (argc=1, argv=<optimized out>, envp=<optimized out>)
    at /home/lvivier/Projects/qemu-upstream-2/vl.c:4052
...

#5  0x0000555555a63a71 in type_initialize (ti=ti@entry=0x555556e27300)
    at qom/object.c:278
278	    parent = type_get_parent(ti);
(gdb) p *ti
$3 = {name = 0x555556e13be0 "vfio-calxeda-xgmac", class_size = 224, 
  instance_size = 952, class_init = 
    0x55555581a960 <vfio_calxeda_xgmac_class_init>, class_base_init = 0x0, 
  class_finalize = 0x0, class_data = 0x0, instance_init = 0x0, 
  instance_post_init = 0x0, instance_finalize = 0x0, abstract = false, 
  parent = 0x555556d940a0 "vfio-platform", parent_type = 0x0, 
  class = 0x555556e84380, num_interfaces = 0, interfaces = {{
      typename = 0x0} <repeats 32 times>}}

If you remove platform, you must also remove children of platform:

diff --git a/hw/vfio/Makefile.objs b/hw/vfio/Makefile.objs
index c25e32b..e78d433 100644
--- a/hw/vfio/Makefile.objs
+++ b/hw/vfio/Makefile.objs
@@ -1,8 +1,5 @@
 ifeq ($(CONFIG_LINUX), y)
 obj-$(CONFIG_SOFTMMU) += common.o
 obj-$(CONFIG_PCI) += pci.o pci-quirks.o
-obj-$(CONFIG_SOFTMMU) += platform.o
-obj-$(CONFIG_SOFTMMU) += calxeda-xgmac.o
-obj-$(CONFIG_SOFTMMU) += amd-xgbe.o
 obj-$(CONFIG_SOFTMMU) += spapr.o
 endif

So you must also backport:

81b2836 Remove unsupported VFIO devices from QEMU

Comment 2 Miroslav Rezanina 2016-10-24 11:28:42 UTC
Not a bug, just missing patch during early stage of rebase.