[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 0/28] qom: add QEMU Object Model type hierarc
From: |
Blue Swirl |
Subject: |
Re: [Qemu-devel] [PATCH v3 0/28] qom: add QEMU Object Model type hierarchy to qdev |
Date: |
Wed, 25 Jan 2012 20:09:57 +0000 |
On Wed, Jan 25, 2012 at 19:43, Anthony Liguori <address@hidden> wrote:
> On 01/25/2012 12:31 PM, Blue Swirl wrote:
>>
>> On Tue, Jan 24, 2012 at 19:32, Anthony Liguori<address@hidden>
>> wrote:
>>>
>>> This series makes qdev a proper Object and converts qdev's type
>>> inheritance to
>>> QOM inheritance.
>>>
>>> The first half of the series are manual cleanups/refactorings. The
>>> second half
>>> is mostly scripted conversion, separated out into reviewable and
>>> bisectable
>>> chunks.
>>>
>>> I've tested this series extensively for the pc target including
>>> bisectability.
>>> I have not tested any other targets yet so your mileage may vary.
>>>
>>> Since the original RFC, I've fixed any of the not-for-upstream issues.
>>> This
>>> also includes some uni-north patches that are in ppc-next.
>>>
>>> Paolo and Andreas have asked that I declare a date when I'll merge this
>>> so that
>>> people can be prepared for the rebase fall out. I will merge this on
>>> Friday
>>> unless there is a major problem found in review.
>>
>>
>> I get this with Sparc64:
>> $ qemu-system-sparc64
>> qemu-system-sparc64: PCI: slot 0 function 0 not available for pbm, in use
>> by\
>
>
> The casts in qdev are not type safe (because they don't do RTTI). You're
> probably getting the sysbus version of pbm but then casting to a PCI device
> which is resulting in a garbage name pointer.
>
> As we switch to use the QOM dynamic casts, a similar situation would trigger
> an abort().
>
>
>> qemu-system-sparc64: Initialization of device pbm failed
>>
>> Maybe because device "pbm" exists for both as SysBusDevice and as
>> PCIDevice. Text "in use by" is suspiciously clipped.
>>
>> Sparc32, PPC32 and PPC64 seem to be OK.
>
>
> This should address that and the other occurrences.
Yes, it fixes the problem.
> Regards,
>
> Anthony Liguori
>
>
>>
>>> This is also available at:
>>>
>>> https://github.com/aliguori/qemu/tree/qom-upstream.10
>>>
>>> For full context, the whole tree is located at:
>>>
>>> https://github.com/aliguori/qemu/commits/qom-rebase.7
>>>
>>> git diffstat origin/master HEAD
>>> Makefile | 2
>>> Makefile.hw | 1
>>> Makefile.objs | 3
>>> Makefile.target | 2
>>> configure | 2
>>> hw/9pfs/virtio-9p-device.c | 44 ++--
>>> hw/a9mpcore.c | 21 +
>>> hw/ac97.c | 39 ++-
>>> hw/acpi_piix4.c | 59 +++--
>>> hw/ads7846.c | 17 +
>>> hw/alpha_typhoon.c | 17 +
>>> hw/apb_pci.c | 71 ++++--
>>> hw/apic.c | 21 +
>>> hw/apic_common.c | 88 +++++---
>>> hw/apic_internal.h | 32 +-
>>> hw/applesmc.c | 18 +
>>> hw/arm11mpcore.c | 68 +++---
>>> hw/arm_l2x0.c | 25 +-
>>> hw/arm_mptimer.c | 23 +-
>>> hw/arm_sysctl.c | 31 +-
>>> hw/arm_timer.c | 46 +++-
>>> hw/armv7m.c | 25 +-
>>> hw/armv7m_nvic.c | 21 +
>>> hw/bitbang_i2c.c | 17 +
>>> hw/bonito.c | 47 ++--
>>> hw/ccid-card-emulated.c | 27 +-
>>> hw/ccid-card-passthru.c | 27 +-
>>> hw/ccid.h | 28 +-
>>> hw/cirrus_vga.c | 50 ++--
>>> hw/container.c | 17 +
>>> hw/cs4231.c | 27 +-
>>> hw/cs4231a.c | 20 +
>>> hw/debugcon.c | 16 +
>>> hw/dec_pci.c | 74 ++++--
>>> hw/ds1225y.c | 29 +-
>>> hw/ds1338.c | 31 +-
>>> hw/e1000.c | 45 ++--
>>> hw/eccmemctl.c | 29 +-
>>> hw/eepro100.c | 202 +++++++++++-------
>>> hw/empty_slot.c | 15 +
>>> hw/es1370.c | 36 +--
>>> hw/escc.c | 43 ++-
>>> hw/esp.c | 27 +-
>>> hw/etraxfs_eth.c | 33 +--
>>> hw/etraxfs_pic.c | 25 +-
>>> hw/etraxfs_ser.c | 17 +
>>> hw/etraxfs_timer.c | 16 +
>>> hw/fdc.c | 84 +++++--
>>> hw/fw_cfg.c | 33 +--
>>> hw/g364fb.c | 33 +--
>>> hw/grackle_pci.c | 44 ++--
>>> hw/grlib_apbuart.c | 25 +-
>>> hw/grlib_gptimer.c | 31 +-
>>> hw/grlib_irqmp.c | 29 +-
>>> hw/gt64xxx.c | 39 ++-
>>> hw/gus.c | 20 +
>>> hw/hda-audio.c | 60 +++--
>>> hw/hpet.c | 33 +--
>>> hw/i2c.c | 111 +++++++---
>>> hw/i2c.h | 52 ++--
>>> hw/i82374.c | 19 +
>>> hw/i82378.c | 31 +-
>>> hw/i8254.c | 22 +-
>>> hw/i8259.c | 15 +
>>> hw/i8259_common.c | 45 ++--
>>> hw/i8259_internal.h | 27 +-
>>> hw/ide/cmd646.c | 41 ++-
>>> hw/ide/ich.c | 37 +--
>>> hw/ide/internal.h | 20 +
>>> hw/ide/isa.c | 20 +
>>> hw/ide/piix.c | 91 +++++---
>>> hw/ide/qdev.c | 111 ++++++----
>>> hw/ide/via.c | 27 +-
>>> hw/integratorcp.c | 40 ++-
>>> hw/intel-hda.c | 91 +++++---
>>> hw/intel-hda.h | 26 +-
>>> hw/ioapic.c | 17 +
>>> hw/ioapic_common.c | 49 +++-
>>> hw/ioapic_internal.h | 26 +-
>>> hw/ioh3420.c | 59 +++--
>>> hw/isa-bus.c | 57 +++--
>>> hw/isa.h | 23 +-
>>> hw/ivshmem.c | 47 ++--
>>> hw/kvm/apic.c | 19 +
>>> hw/kvm/clock.c | 19 +
>>> hw/kvm/i8259.c | 19 +
>>> hw/kvm/ioapic.c | 23 +-
>>> hw/lan9118.c | 31 +-
>>> hw/lance.c | 33 +--
>>> hw/lm32_juart.c | 19 +
>>> hw/lm32_pic.c | 19 +
>>> hw/lm32_sys.c | 29 +-
>>> hw/lm32_timer.c | 31 +-
>>> hw/lm32_uart.c | 19 +
>>> hw/lm832x.c | 33 +--
>>> hw/lsi53c895a.c | 33 +--
>>> hw/m48t59.c | 51 +++-
>>> hw/macio.c | 50 +++-
>>> hw/marvell_88w8618_audio.c | 35 +--
>>> hw/max111x.c | 34 ++-
>>> hw/max7310.c | 35 +--
>>> hw/mc146818rtc.c | 22 +-
>>> hw/milkymist-ac97.c | 19 +
>>> hw/milkymist-hpdmc.c | 19 +
>>> hw/milkymist-memcard.c | 19 +
>>> hw/milkymist-minimac2.c | 37 ++-
>>> hw/milkymist-pfpu.c | 19 +
>>> hw/milkymist-softusb.c | 43 ++-
>>> hw/milkymist-sysctl.c | 43 ++-
>>> hw/milkymist-tmu2.c | 19 +
>>> hw/milkymist-uart.c | 19 +
>>> hw/milkymist-vgafb.c | 31 +-
>>> hw/mips_malta.c | 19 +
>>> hw/mipsnet.c | 33 +--
>>> hw/mpc8544_guts.c | 15 +
>>> hw/mst_fpga.c | 19 +
>>> hw/musicpal.c | 153 ++++++++++----
>>> hw/nand.c | 33 +--
>>> hw/ne2000-isa.c | 18 +
>>> hw/ne2000.c | 37 ++-
>>> hw/omap_gpio.c | 70 ++++--
>>> hw/omap_intc.c | 62 +++--
>>> hw/onenand.c | 35 ++-
>>> hw/opencores_eth.c | 31 +-
>>> hw/openpic.c | 30 --
>>> hw/openpic.h | 2
>>> hw/parallel.c | 16 +
>>> hw/pc.c | 20 +
>>> hw/pci.c | 140 +++++-------
>>> hw/pci.h | 80 +++----
>>> hw/pci_bridge.c | 2
>>> hw/pcie.c | 2
>>> hw/pckbd.c | 18 +
>>> hw/pcnet-pci.c | 39 ++-
>>> hw/pcnet.c | 2
>>> hw/piix4.c | 35 +--
>>> hw/piix_pci.c | 126 +++++++----
>>> hw/pl011.c | 36 ++-
>>> hw/pl022.c | 15 +
>>> hw/pl031.c | 19 +
>>> hw/pl041.c | 34 +--
>>> hw/pl050.c | 34 ++-
>>> hw/pl061.c | 34 ++-
>>> hw/pl080.c | 38 ++-
>>> hw/pl110.c | 57 +++--
>>> hw/pl181.c | 23 +-
>>> hw/pl190.c | 21 +
>>> hw/ppc4xx_pci.c | 38 ++-
>>> hw/ppc_newworld.c | 2
>>> hw/ppce500_pci.c | 38 ++-
>>> hw/ppce500_spin.c | 15 +
>>> hw/prep_pci.c | 52 ++--
>>> hw/pxa2xx.c | 96 ++++++--
>>> hw/pxa2xx_dma.c | 29 +-
>>> hw/pxa2xx_gpio.c | 29 +-
>>> hw/pxa2xx_pic.c | 19 +
>>> hw/pxa2xx_timer.c | 66 +++---
>>> hw/qdev-properties.c | 20 -
>>> hw/qdev.c | 123 ++++++++---
>>> hw/qdev.h | 40 +++
>>> hw/qxl.c | 66 +++---
>>> hw/realview.c | 15 +
>>> hw/realview_gic.c | 16 +
>>> hw/rtl8139.c | 43 ++-
>>> hw/s390-virtio-bus.c | 110 +++++++---
>>> hw/sb16.c | 20 +
>>> hw/sbi.c | 19 +
>>> hw/scsi-bus.c | 95 ++++++--
>>> hw/scsi-disk.c | 159 ++++++++------
>>> hw/scsi-generic.c | 29 +-
>>> hw/scsi.h | 31 +-
>>> hw/serial.c | 18 +
>>> hw/sga.c | 15 -
>>> hw/sh_pci.c | 37 ++-
>>> hw/slavio_intctl.c | 19 +
>>> hw/slavio_misc.c | 34 ++-
>>> hw/slavio_timer.c | 29 +-
>>> hw/smbus.c | 85 +++++--
>>> hw/smbus.h | 42 ++-
>>> hw/smbus_eeprom.c | 27 +-
>>> hw/smc91c111.c | 31 +-
>>> hw/spapr_llan.c | 41 ++-
>>> hw/spapr_pci.c | 31 ++
>>> hw/spapr_vio.c | 72 ++++--
>>> hw/spapr_vio.h | 35 ++-
>>> hw/spapr_vscsi.c | 37 ++-
>>> hw/spapr_vty.c | 37 ++-
>>> hw/sparc32_dma.c | 31 +-
>>> hw/spitz.c | 94 +++++---
>>> hw/ssd0303.c | 33 +--
>>> hw/ssd0323.c | 17 +
>>> hw/ssi-sd.c | 17 +
>>> hw/ssi.c | 23 +-
>>> hw/ssi.h | 18 +
>>> hw/stellaris.c | 65 +++++-
>>> hw/stellaris_enet.c | 27 +-
>>> hw/strongarm.c | 124 +++++++----
>>> hw/sun4c_intctl.c | 19 +
>>> hw/sun4m.c | 78 +++++--
>>> hw/sun4m_iommu.c | 29 +-
>>> hw/sun4u.c | 71 ++++--
>>> hw/sysbus.c | 40 ++-
>>> hw/sysbus.h | 25 +-
>>> hw/tcx.c | 37 ++-
>>> hw/tmp105.c | 37 ++-
>>> hw/tosa.c | 50 ++--
>>> hw/tusb6010.c | 17 +
>>> hw/twl92230.c | 35 +--
>>> hw/unin_pci.c | 204 +++++++++++++-----
>>> hw/usb-audio.c | 38 ++-
>>> hw/usb-bt.c | 33 +--
>>> hw/usb-bus.c | 190 +++++++++++++----
>>> hw/usb-ccid.c | 114 +++++++---
>>> hw/usb-desc.c | 22 +-
>>> hw/usb-ehci.c | 63 +++--
>>> hw/usb-hid.c | 108 +++++-----
>>> hw/usb-hub.c | 35 +--
>>> hw/usb-msd.c | 41 ++-
>>> hw/usb-net.c | 43 ++-
>>> hw/usb-ohci.c | 58 +++--
>>> hw/usb-serial.c | 74 +++---
>>> hw/usb-uhci.c | 189 +++++++++++------
>>> hw/usb-wacom.c | 36 +--
>>> hw/usb-xhci.c | 37 ++-
>>> hw/usb.c | 24 --
>>> hw/usb.h | 50 +++-
>>> hw/versatile_pci.c | 53 +++-
>>> hw/versatilepb.c | 19 +
>>> hw/vga-isa.c | 18 +
>>> hw/vga-pci.c | 27 +-
>>> hw/virtio-console.c | 69 +++---
>>> hw/virtio-net.c | 2
>>> hw/virtio-pci.c | 210 +++++++++++--------
>>> hw/virtio-serial-bus.c | 68 +++---
>>> hw/virtio-serial.h | 81 ++++---
>>> hw/vmmouse.c | 22 +-
>>> hw/vmport.c | 16 +
>>> hw/vmware_vga.c | 34 +--
>>> hw/vt82c686.c | 120 ++++++-----
>>> hw/wdt_i6300esb.c | 33 +--
>>> hw/wdt_ib700.c | 18 +
>>> hw/wm8750.c | 37 ++-
>>> hw/xen_platform.c | 34 +--
>>> hw/xilinx_axidma.c | 27 +-
>>> hw/xilinx_axienet.c | 35 ++-
>>> hw/xilinx_ethlite.c | 31 +-
>>> hw/xilinx_intc.c | 25 +-
>>> hw/xilinx_timer.c | 27 +-
>>> hw/xilinx_uartlite.c | 16 +
>>> hw/xio3130_downstream.c | 59 +++--
>>> hw/xio3130_upstream.c | 53 ++--
>>> hw/z2.c | 52 +++-
>>> hw/zaurus.c | 27 +-
>>> include/qemu/object.h | 436
>>> ++++++++++++++++++++++++++++++++++++++++
>>> qom/Makefile | 1
>>> qom/object.c | 485
>>> +++++++++++++++++++++++++++++++++++++++++++++
>>> usb-bsd.c | 29 +-
>>> usb-linux.c | 37 +--
>>> usb-redir.c | 33 +--
>>> 259 files changed, 7764 insertions(+), 3755 deletions(-)
>>>
>>>
>
- [Qemu-devel] [PATCH 10/28] qdev: add class_init to DeviceInfo, (continued)
- [Qemu-devel] [PATCH 10/28] qdev: add class_init to DeviceInfo, Anthony Liguori, 2012/01/24
- [Qemu-devel] [PATCH 13/28] usb: convert to QEMU Object Model, Anthony Liguori, 2012/01/24
- [Qemu-devel] [PATCH 22/28] virtio-serial: convert to QEMU Object Model, Anthony Liguori, 2012/01/24
- [Qemu-devel] [PATCH 15/28] ssi: convert to QEMU Object Model, Anthony Liguori, 2012/01/24
- Re: [Qemu-devel] [PATCH v3 0/28] qom: add QEMU Object Model type hierarchy to qdev, Peter Maydell, 2012/01/24
- Re: [Qemu-devel] [PATCH v3 0/28] qom: add QEMU Object Model type hierarchy to qdev, Blue Swirl, 2012/01/25
- Re: [Qemu-devel] [PATCH v3 0/28] qom: add QEMU Object Model type hierarchy to qdev, Anthony Liguori, 2012/01/27