qemu-devel
[Top][All Lists]
Advanced

[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(-)
>>>
>>>
>

reply via email to

[Prev in Thread] Current Thread [Next in Thread]