mbox

[PULL,v2,00/56] QOM devices patch queue 2013-10-31

Message ID 1383230256-22637-1-git-send-email-afaerber@suse.de
State New
Headers show

Pull-request

git://github.com/afaerber/qemu-cpu.git tags/qom-devices-for-anthony

Message

Andreas Färber Oct. 31, 2013, 2:37 p.m. UTC
Hello Anthony,

This is my updated QOM devices patch queue. Please pull or provide more details
of what is not working in your build environment.

v2 is rebased, dropping two ARM patches, and the observed SD segfault had been
fixed in 794cbc26eb94ce13c75d105eea9ff0afff56e2c2.
Patches are not manually changed, thus intentionally not resent.

Thanks,
Andreas

Cc: Anthony Liguori <anthony@codemonkey.ws>

Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: Mian M. Hamayun <m.hamayun@virtualopensystems.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Michael S. Tsirkin <mst@redhat.com>
Cc: Stefan Hajnoczi <stefanha@redhat.com>
Cc: Edgar E. Iglesias <edgar.iglesias@gmail.com>

The following changes since commit b86160555f8d1fe11d6bcec393e08e645d7e1e8d:

  integrator: fix Linux boot failure by emulating dbg region (2013-10-31 14:00:16 +0100)

are available in the git repository at:

  git://github.com/afaerber/qemu-cpu.git tags/qom-devices-for-anthony

for you to fetch changes up to 30a423024ffaa28920c7e36c17855d7bd0061f09:

  pcmcia/pxa2xx: QOM'ify PXA2xxPCMCIAState (2013-10-31 15:12:30 +0100)

----------------------------------------------------------------
QOM device refactorings

* QTest coverage for all machines
* QOM realize for Milkymist UART
* QOM realize for ARM MPCore
* device_add bug fixes and cleanups
* QOM API extensions and cleanups
* QOM for PCMCIA/MicroDrive (last legacy IDE device)

----------------------------------------------------------------
Andreas Färber (49):
      mips_mipssim: Silence BIOS loading warning for qtest
      puv3: Turn puv3_load_kernel() into a no-op for qtest without -kernel
      mainstone: Don't enforce use of -pflash for qtest
      gumstix: Don't enforce use of -pflash for qtest
      z2: Don't enforce use of -pflash for qtest
      palm: Don't enforce loading ROM or kernel for qtest
      omap_sx1: Don't enforce use of kernel or flash for qtest
      exynos4_boards: Silence lack of -smp 2 warning for qtest
      armv7m: Don't enforce use of kernel for qtest
      axis_dev88: Don't enforce use of kernel for qtest
      mcf5208: Don't enforce use of kernel for qtest
      an5206: Don't enforce use of kernel for qtest
      milkymist: Suppress -kernel/-bios/-drive error for qtest
      shix: Drop debug output
      shix: Don't require firmware presence for qtest
      leon3: Don't enforce use of -bios with qtest
      qtest: Prepare QOM machine tests
      a9mpcore: Split off instance_init
      arm_gic: Extract headers hw/intc/arm_gic{,_common}.h
      a9mpcore: Embed GICState
      a9scu: QOM cleanups
      a9mpcore: Embed A9SCUState
      arm_mptimer: Convert to QOM realize
      a9mpcore: Embed ARMMPTimerState
      a9mpcore: Convert to QOM realize
      a9mpcore: Prepare for QOM embedding
      a15mpcore: Split off instance_init
      a15mpcore: Embed GICState
      a15mpcore: Convert to QOM realize
      a15mpcore: Prepare for QOM embedding
      a9scu: Build only once
      arm11mpcore: Fix typo in MemoryRegion name
      arm11mpcore: Drop unused fields
      arm11mpcore: Create container MemoryRegion in instance_init
      arm11mpcore: Split off SCU device
      arm11mpcore: Convert ARM11MPCorePriveState to QOM realize
      realview_gic: Convert to QOM realize
      realview_gic: Prepare for QOM embedding
      arm11mpcore: Convert mpcore_rirq_state to QOM realize
      arm11mpcore: Prepare for QOM embedding
      arm11mpcore: Split off RealView MPCore
      qdev-monitor: Clean up qdev_device_add() variable naming
      qdev-monitor: Avoid qdev as variable name
      qdev-monitor: Inline qdev_init() for device_add
      pxa: Fix typo "dettach"
      pcmcia: QOM'ify PCMCIACardState and MicroDriveState
      microdrive: Coding Style cleanups
      ide: Drop ide_init2_with_non_qdev_drives()
      pcmcia/pxa2xx: QOM'ify PXA2xxPCMCIAState

Antony Pavlov (1):
      milkymist-uart: Use Device::realize instead of SysBusDevice::init

Igor Mammedov (2):
      qdev-monitor: Fix crash when device_add is called with abstract driver
      qom: Include error.h directly in object.h

Michael S. Tsirkin (2):
      qom: Clean up struct Error references
      qom: Add pointer to int property helpers

Stefan Hajnoczi (2):
      qdev-monitor: Unref device when device_add fails
      qdev: Drop misleading qdev_free() function

 default-configs/arm-softmmu.mak              |   1 +
 hw/Makefile.objs                             |   1 +
 hw/acpi/piix4.c                              |   2 +-
 hw/arm/armv7m.c                              |  25 +--
 hw/arm/exynos4_boards.c                      |   3 +-
 hw/arm/gumstix.c                             |  11 +-
 hw/arm/mainstone.c                           |   5 +-
 hw/arm/omap_sx1.c                            |   3 +-
 hw/arm/palm.c                                |   3 +-
 hw/arm/z2.c                                  |   5 +-
 hw/block/tc58128.c                           |  10 +-
 hw/char/milkymist-uart.c                     |  24 +--
 hw/core/qdev.c                               |  12 +-
 hw/cpu/Makefile.objs                         |   1 +
 hw/cpu/a15mpcore.c                           |  81 ++++-----
 hw/cpu/a9mpcore.c                            | 120 +++++++------
 hw/cpu/arm11mpcore.c                         | 251 +++++++-------------------
 hw/cpu/realview_mpcore.c                     | 139 +++++++++++++++
 hw/cris/axis_dev88.c                         |  11 +-
 hw/ide/core.c                                |  49 ------
 hw/ide/internal.h                            |   2 -
 hw/ide/microdrive.c                          | 226 +++++++++++++++++-------
 hw/intc/arm_gic_common.c                     |  18 +-
 hw/intc/gic_internal.h                       |  80 +--------
 hw/intc/realview_gic.c                       |  58 +++---
 hw/lm32/milkymist.c                          |   3 +-
 hw/m68k/an5206.c                             |   4 +
 hw/m68k/mcf5208.c                            |   4 +
 hw/mips/mips_mipssim.c                       |   4 +-
 hw/misc/Makefile.objs                        |   4 +-
 hw/misc/a9scu.c                              |  25 +--
 hw/misc/arm11scu.c                           | 100 +++++++++++
 hw/pci/pci-hotplug-old.c                     |   2 +-
 hw/pci/pci_bridge.c                          |   2 +-
 hw/pci/pcie.c                                |   2 +-
 hw/pci/shpc.c                                |   2 +-
 hw/pcmcia/Makefile.objs                      |   2 +
 hw/pcmcia/pcmcia.c                           |  24 +++
 hw/{misc/pxa2xx_pcmcia.c => pcmcia/pxa2xx.c} | 130 +++++++++++---
 hw/s390x/virtio-ccw.c                        |   2 +-
 hw/scsi/scsi-bus.c                           |   6 +-
 hw/sh4/shix.c                                |  16 +-
 hw/sparc/leon3.c                             |   3 +-
 hw/timer/arm_mptimer.c                       |  60 ++-----
 hw/unicore32/puv3.c                          |   4 +
 hw/usb/bus.c                                 |   7 +-
 hw/usb/dev-storage.c                         |   2 +-
 hw/usb/host-legacy.c                         |   2 +-
 hw/virtio/virtio-bus.c                       |   4 +-
 hw/xen/xen_platform.c                        |   2 +-
 include/hw/arm/pxa.h                         |   2 +-
 include/hw/cpu/a15mpcore.h                   |  44 +++++
 include/hw/cpu/a9mpcore.h                    |  37 ++++
 include/hw/cpu/arm11mpcore.h                 |  35 ++++
 include/hw/intc/arm_gic.h                    |  42 +++++
 include/hw/intc/arm_gic_common.h             |  92 ++++++++++
 include/hw/intc/realview_gic.h               |  28 +++
 include/hw/misc/a9scu.h                      |  31 ++++
 include/hw/misc/arm11scu.h                   |  29 +++
 include/hw/pcmcia.h                          |  46 +++--
 include/hw/qdev-core.h                       |   1 -
 include/hw/timer/arm_mptimer.h               |  54 ++++++
 include/qom/object.h                         | 104 ++++++++---
 qdev-monitor.c                               |  63 ++++---
 qom/object.c                                 |  60 +++++++
 tests/Makefile                               |  26 +++
 tests/qom-test.c                             | 253 +++++++++++++++++++++++++++
 67 files changed, 1760 insertions(+), 744 deletions(-)
 create mode 100644 hw/cpu/realview_mpcore.c
 create mode 100644 hw/misc/arm11scu.c
 create mode 100644 hw/pcmcia/Makefile.objs
 create mode 100644 hw/pcmcia/pcmcia.c
 rename hw/{misc/pxa2xx_pcmcia.c => pcmcia/pxa2xx.c} (61%)
 create mode 100644 include/hw/cpu/a15mpcore.h
 create mode 100644 include/hw/cpu/a9mpcore.h
 create mode 100644 include/hw/cpu/arm11mpcore.h
 create mode 100644 include/hw/intc/arm_gic.h
 create mode 100644 include/hw/intc/arm_gic_common.h
 create mode 100644 include/hw/intc/realview_gic.h
 create mode 100644 include/hw/misc/a9scu.h
 create mode 100644 include/hw/misc/arm11scu.h
 create mode 100644 include/hw/timer/arm_mptimer.h
 create mode 100644 tests/qom-test.c

Comments

Anthony Liguori Oct. 31, 2013, 9:03 p.m. UTC | #1
On Thu, Oct 31, 2013 at 3:37 PM, Andreas Färber <afaerber@suse.de> wrote:
> Hello Anthony,
>
> This is my updated QOM devices patch queue. Please pull or provide more details
> of what is not working in your build environment.

Andreas,

If you cannot be bothered to adequately test your pull requests, then
don't bother sending them.

make check fails spectacularly.  I've confirmed this on multiple
platforms on different distros.

The errors are the exact same as before.  Install some VMs and
reproduce the problem.  I just checked and it fails under 64-bit
Fedora 19.

Regards,

Anthony Liguori

> v2 is rebased, dropping two ARM patches, and the observed SD segfault had been
> fixed in 794cbc26eb94ce13c75d105eea9ff0afff56e2c2.
> Patches are not manually changed, thus intentionally not resent.
>
> Thanks,
> Andreas
>
> Cc: Anthony Liguori <anthony@codemonkey.ws>
>
> Cc: Peter Maydell <peter.maydell@linaro.org>
> Cc: Mian M. Hamayun <m.hamayun@virtualopensystems.com>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> Cc: Michael S. Tsirkin <mst@redhat.com>
> Cc: Stefan Hajnoczi <stefanha@redhat.com>
> Cc: Edgar E. Iglesias <edgar.iglesias@gmail.com>
>
> The following changes since commit b86160555f8d1fe11d6bcec393e08e645d7e1e8d:
>
>   integrator: fix Linux boot failure by emulating dbg region (2013-10-31 14:00:16 +0100)
>
> are available in the git repository at:
>
>   git://github.com/afaerber/qemu-cpu.git tags/qom-devices-for-anthony
>
> for you to fetch changes up to 30a423024ffaa28920c7e36c17855d7bd0061f09:
>
>   pcmcia/pxa2xx: QOM'ify PXA2xxPCMCIAState (2013-10-31 15:12:30 +0100)
>
> ----------------------------------------------------------------
> QOM device refactorings
>
> * QTest coverage for all machines
> * QOM realize for Milkymist UART
> * QOM realize for ARM MPCore
> * device_add bug fixes and cleanups
> * QOM API extensions and cleanups
> * QOM for PCMCIA/MicroDrive (last legacy IDE device)
>
> ----------------------------------------------------------------
> Andreas Färber (49):
>       mips_mipssim: Silence BIOS loading warning for qtest
>       puv3: Turn puv3_load_kernel() into a no-op for qtest without -kernel
>       mainstone: Don't enforce use of -pflash for qtest
>       gumstix: Don't enforce use of -pflash for qtest
>       z2: Don't enforce use of -pflash for qtest
>       palm: Don't enforce loading ROM or kernel for qtest
>       omap_sx1: Don't enforce use of kernel or flash for qtest
>       exynos4_boards: Silence lack of -smp 2 warning for qtest
>       armv7m: Don't enforce use of kernel for qtest
>       axis_dev88: Don't enforce use of kernel for qtest
>       mcf5208: Don't enforce use of kernel for qtest
>       an5206: Don't enforce use of kernel for qtest
>       milkymist: Suppress -kernel/-bios/-drive error for qtest
>       shix: Drop debug output
>       shix: Don't require firmware presence for qtest
>       leon3: Don't enforce use of -bios with qtest
>       qtest: Prepare QOM machine tests
>       a9mpcore: Split off instance_init
>       arm_gic: Extract headers hw/intc/arm_gic{,_common}.h
>       a9mpcore: Embed GICState
>       a9scu: QOM cleanups
>       a9mpcore: Embed A9SCUState
>       arm_mptimer: Convert to QOM realize
>       a9mpcore: Embed ARMMPTimerState
>       a9mpcore: Convert to QOM realize
>       a9mpcore: Prepare for QOM embedding
>       a15mpcore: Split off instance_init
>       a15mpcore: Embed GICState
>       a15mpcore: Convert to QOM realize
>       a15mpcore: Prepare for QOM embedding
>       a9scu: Build only once
>       arm11mpcore: Fix typo in MemoryRegion name
>       arm11mpcore: Drop unused fields
>       arm11mpcore: Create container MemoryRegion in instance_init
>       arm11mpcore: Split off SCU device
>       arm11mpcore: Convert ARM11MPCorePriveState to QOM realize
>       realview_gic: Convert to QOM realize
>       realview_gic: Prepare for QOM embedding
>       arm11mpcore: Convert mpcore_rirq_state to QOM realize
>       arm11mpcore: Prepare for QOM embedding
>       arm11mpcore: Split off RealView MPCore
>       qdev-monitor: Clean up qdev_device_add() variable naming
>       qdev-monitor: Avoid qdev as variable name
>       qdev-monitor: Inline qdev_init() for device_add
>       pxa: Fix typo "dettach"
>       pcmcia: QOM'ify PCMCIACardState and MicroDriveState
>       microdrive: Coding Style cleanups
>       ide: Drop ide_init2_with_non_qdev_drives()
>       pcmcia/pxa2xx: QOM'ify PXA2xxPCMCIAState
>
> Antony Pavlov (1):
>       milkymist-uart: Use Device::realize instead of SysBusDevice::init
>
> Igor Mammedov (2):
>       qdev-monitor: Fix crash when device_add is called with abstract driver
>       qom: Include error.h directly in object.h
>
> Michael S. Tsirkin (2):
>       qom: Clean up struct Error references
>       qom: Add pointer to int property helpers
>
> Stefan Hajnoczi (2):
>       qdev-monitor: Unref device when device_add fails
>       qdev: Drop misleading qdev_free() function
>
>  default-configs/arm-softmmu.mak              |   1 +
>  hw/Makefile.objs                             |   1 +
>  hw/acpi/piix4.c                              |   2 +-
>  hw/arm/armv7m.c                              |  25 +--
>  hw/arm/exynos4_boards.c                      |   3 +-
>  hw/arm/gumstix.c                             |  11 +-
>  hw/arm/mainstone.c                           |   5 +-
>  hw/arm/omap_sx1.c                            |   3 +-
>  hw/arm/palm.c                                |   3 +-
>  hw/arm/z2.c                                  |   5 +-
>  hw/block/tc58128.c                           |  10 +-
>  hw/char/milkymist-uart.c                     |  24 +--
>  hw/core/qdev.c                               |  12 +-
>  hw/cpu/Makefile.objs                         |   1 +
>  hw/cpu/a15mpcore.c                           |  81 ++++-----
>  hw/cpu/a9mpcore.c                            | 120 +++++++------
>  hw/cpu/arm11mpcore.c                         | 251 +++++++-------------------
>  hw/cpu/realview_mpcore.c                     | 139 +++++++++++++++
>  hw/cris/axis_dev88.c                         |  11 +-
>  hw/ide/core.c                                |  49 ------
>  hw/ide/internal.h                            |   2 -
>  hw/ide/microdrive.c                          | 226 +++++++++++++++++-------
>  hw/intc/arm_gic_common.c                     |  18 +-
>  hw/intc/gic_internal.h                       |  80 +--------
>  hw/intc/realview_gic.c                       |  58 +++---
>  hw/lm32/milkymist.c                          |   3 +-
>  hw/m68k/an5206.c                             |   4 +
>  hw/m68k/mcf5208.c                            |   4 +
>  hw/mips/mips_mipssim.c                       |   4 +-
>  hw/misc/Makefile.objs                        |   4 +-
>  hw/misc/a9scu.c                              |  25 +--
>  hw/misc/arm11scu.c                           | 100 +++++++++++
>  hw/pci/pci-hotplug-old.c                     |   2 +-
>  hw/pci/pci_bridge.c                          |   2 +-
>  hw/pci/pcie.c                                |   2 +-
>  hw/pci/shpc.c                                |   2 +-
>  hw/pcmcia/Makefile.objs                      |   2 +
>  hw/pcmcia/pcmcia.c                           |  24 +++
>  hw/{misc/pxa2xx_pcmcia.c => pcmcia/pxa2xx.c} | 130 +++++++++++---
>  hw/s390x/virtio-ccw.c                        |   2 +-
>  hw/scsi/scsi-bus.c                           |   6 +-
>  hw/sh4/shix.c                                |  16 +-
>  hw/sparc/leon3.c                             |   3 +-
>  hw/timer/arm_mptimer.c                       |  60 ++-----
>  hw/unicore32/puv3.c                          |   4 +
>  hw/usb/bus.c                                 |   7 +-
>  hw/usb/dev-storage.c                         |   2 +-
>  hw/usb/host-legacy.c                         |   2 +-
>  hw/virtio/virtio-bus.c                       |   4 +-
>  hw/xen/xen_platform.c                        |   2 +-
>  include/hw/arm/pxa.h                         |   2 +-
>  include/hw/cpu/a15mpcore.h                   |  44 +++++
>  include/hw/cpu/a9mpcore.h                    |  37 ++++
>  include/hw/cpu/arm11mpcore.h                 |  35 ++++
>  include/hw/intc/arm_gic.h                    |  42 +++++
>  include/hw/intc/arm_gic_common.h             |  92 ++++++++++
>  include/hw/intc/realview_gic.h               |  28 +++
>  include/hw/misc/a9scu.h                      |  31 ++++
>  include/hw/misc/arm11scu.h                   |  29 +++
>  include/hw/pcmcia.h                          |  46 +++--
>  include/hw/qdev-core.h                       |   1 -
>  include/hw/timer/arm_mptimer.h               |  54 ++++++
>  include/qom/object.h                         | 104 ++++++++---
>  qdev-monitor.c                               |  63 ++++---
>  qom/object.c                                 |  60 +++++++
>  tests/Makefile                               |  26 +++
>  tests/qom-test.c                             | 253 +++++++++++++++++++++++++++
>  67 files changed, 1760 insertions(+), 744 deletions(-)
>  create mode 100644 hw/cpu/realview_mpcore.c
>  create mode 100644 hw/misc/arm11scu.c
>  create mode 100644 hw/pcmcia/Makefile.objs
>  create mode 100644 hw/pcmcia/pcmcia.c
>  rename hw/{misc/pxa2xx_pcmcia.c => pcmcia/pxa2xx.c} (61%)
>  create mode 100644 include/hw/cpu/a15mpcore.h
>  create mode 100644 include/hw/cpu/a9mpcore.h
>  create mode 100644 include/hw/cpu/arm11mpcore.h
>  create mode 100644 include/hw/intc/arm_gic.h
>  create mode 100644 include/hw/intc/arm_gic_common.h
>  create mode 100644 include/hw/intc/realview_gic.h
>  create mode 100644 include/hw/misc/a9scu.h
>  create mode 100644 include/hw/misc/arm11scu.h
>  create mode 100644 include/hw/timer/arm_mptimer.h
>  create mode 100644 tests/qom-test.c
Andreas Färber Nov. 3, 2013, 1:28 p.m. UTC | #2
Anthony,

Am 31.10.2013 22:03, schrieb Anthony Liguori:
> On Thu, Oct 31, 2013 at 3:37 PM, Andreas Färber <afaerber@suse.de> wrote:
>> Hello Anthony,
>>
>> This is my updated QOM devices patch queue. Please pull or provide more details
>> of what is not working in your build environment.
> 
> Andreas,
> 
> If you cannot be bothered to adequately test your pull requests, then
> don't bother sending them.

You want to be rude? I can be rude, too. Who merged the block pull that
according to the qtests I provided broke several machines? You. Your
testing is not perfect either, so watch your language.

In particular since Friday make check fails on qemu.git:

GTESTER check-qtest-arm
GTESTER check-qtest-i386
main-loop: WARNING: I/O thread spun for 1000 iterations
main-loop: WARNING: I/O thread spun for 1000 iterations
blkdebug: Suspended request 'A'
blkdebug: Resuming request 'A'
main-loop: WARNING: I/O thread spun for 1000 iterations
main-loop: WARNING: I/O thread spun for 1000 iterations
GTESTER check-qtest-mips64el
qemu-system-mips64el: /home/andreas/QEMU/qemu-cpu/exec.c:802:
register_subpage: Assertion `existing->mr->subpage || existing->mr ==
&io_mem_unassigned' failed.
Broken pipe
GTester: last random seed: R02S52ce3c776bf01d96752819c947c85576
qemu-system-mips64el: /home/andreas/QEMU/qemu-cpu/exec.c:802:
register_subpage: Assertion `existing->mr->subpage || existing->mr ==
&io_mem_unassigned' failed.
Broken pipe
GTester: last random seed: R02S65379793c25d23b7d98dc1032139cc63
qemu-system-mips64el: /home/andreas/QEMU/qemu-cpu/exec.c:802:
register_subpage: Assertion `existing->mr->subpage || existing->mr ==
&io_mem_unassigned' failed.
Broken pipe
GTester: last random seed: R02Sa11769e1b4918ba79a24beeb22c829ae
make: *** [check-qtest-mips64el] Fehler 1

git-bisect says this:

a53ae8e934cd54686875b5bcfc2f434244ee55d6 is the first bad commit
commit a53ae8e934cd54686875b5bcfc2f434244ee55d6
Author: Marcel Apfelbaum <marcel.a@redhat.com>
Date:   Mon Sep 16 11:21:16 2013 +0300

    hw/pci: partially handle pci master abort

    A MemoryRegion with negative priority was created and
    it spans over all the pci address space.
    It "intercepts" the accesses to unassigned pci
    address space and will follow the pci spec:
     1. returns -1 on read
     2. does nothing on write

    Note: setting the RECEIVED MASTER ABORT bit in the STATUS register
          of the device that initiated the transaction will be
          implemented in another series

    Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
    Acked-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

:040000 040000 b115d38ba08642a56300da49bfe7e3e7148eb20d
b364a5cfb65ffbf4e83cadaa0afeb9922aec331b M	hw
:040000 040000 d0b3d397bb819cdbfd66ca0c199c62bd55f2db9e
263f0822e4d4a078bd772c8a84e113e1c28bbad9 M	include

I.e. the first pull you've merged after Edgar doesn't pass make check!

But worse, my qom-test shows that isapc asserts, too:

GTESTER check-qtest-i386
main-loop: WARNING: I/O thread spun for 1000 iterations
main-loop: WARNING: I/O thread spun for 1000 iterations
blkdebug: Suspended request 'A'
blkdebug: Resuming request 'A'
main-loop: WARNING: I/O thread spun for 1000 iterations
qemu-system-i386: /home/andreas/QEMU/qemu/hw/i386/acpi-build.c:135:
acpi_get_pm_info: Assertion `obj' failed.
Broken pipe
GTester: last random seed: R02Sdbc8da98b2e9405d3ac769aca1780a25
make: *** [check-qtest-i386] Fehler 1

So it would be really good to have those tests in qemu.git and actually
run! You already didn't take them for 1.6 and back then you didn't
report any breakage at all. We only had a discussion about how to handle
lack of arguments, which Aurélien ended by reverting changes to mips and
insisting that missing arguments continue to be errors.

> make check fails spectacularly.  I've confirmed this on multiple
> platforms on different distros.

You have pastebin'ed me a really non-telling snippet. I have already
showed you that on my side (openSUSE 12.3 w/ 3.12 kernel) make check
succeeded just fine, same for v2 or I wouldn't have sent it. You should
know me well enough for that!!!

So it's definitely not me being sloppy but some environmental difference
between our setups. And I have repeatedly asked you on IRC about your
setup without getting further replies. Show me what to fix and I can
look into fixing it.

All I could come up with was some non-fatal audio error messages
depending on QEMU_AUDIO_DRV environment variable. No comparison to the
actual breakages that we are seeing in qemu.git now.

> The errors are the exact same as before.  Install some VMs and
> reproduce the problem.  I just checked and it fails under 64-bit
> Fedora 19.

I have successfully booted up openSUSE 12.3 x86_64 and SLES 11 SP3
x86_64 without any issue. You really need to explain "the problem"!

Regards,
Andreas

> 
> Regards,
> 
> Anthony Liguori
> 
>> v2 is rebased, dropping two ARM patches, and the observed SD segfault had been
>> fixed in 794cbc26eb94ce13c75d105eea9ff0afff56e2c2.
>> Patches are not manually changed, thus intentionally not resent.
>>
>> Thanks,
>> Andreas
Anthony Liguori Nov. 3, 2013, 1:58 p.m. UTC | #3
On Sun, Nov 3, 2013 at 5:28 AM, Andreas Färber <afaerber@suse.de> wrote:
> Anthony,
>
>> The errors are the exact same as before.  Install some VMs and
>> reproduce the problem.  I just checked and it fails under 64-bit
>> Fedora 19.
>
> I have successfully booted up openSUSE 12.3 x86_64 and SLES 11 SP3
> x86_64 without any issue. You really need to explain "the problem"!

Andreas,

I told you how to reproduce the problem.  If you choose not to
investigate, fine, but don't spam me with resends of a pull request
with a known breakage.

Regards,

Anthony Liguori

> Regards,
> Andreas
>
>>
>> Regards,
>>
>> Anthony Liguori
>>
>>> v2 is rebased, dropping two ARM patches, and the observed SD segfault had been
>>> fixed in 794cbc26eb94ce13c75d105eea9ff0afff56e2c2.
>>> Patches are not manually changed, thus intentionally not resent.
>>>
>>> Thanks,
>>> Andreas
>.
> --
> SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
> GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg
Andreas Färber Nov. 3, 2013, 3:12 p.m. UTC | #4
Anthony,

Am 03.11.2013 14:58, schrieb Anthony Liguori:
> On Sun, Nov 3, 2013 at 5:28 AM, Andreas Färber <afaerber@suse.de> wrote:
>> Anthony,
>>
>>> The errors are the exact same as before.  Install some VMs and
>>> reproduce the problem.  I just checked and it fails under 64-bit
>>> Fedora 19.
>>
>> I have successfully booted up openSUSE 12.3 x86_64 and SLES 11 SP3
>> x86_64 without any issue. You really need to explain "the problem"!
> 
> Andreas,
> 
> I told you how to reproduce the problem.

No, you didn't, that's the problem! See below.

>  If you choose not to
> investigate, fine, but don't spam me with resends of a pull request
> with a known breakage.

This is v2 so that's hardly spamming anyone. And may I remind you that
you have not bothered to send even a single email reply to v1.

Here's my IRC excerpt:

Okt 10 18:42:37 <aliguori>	afaerber_, ping
Okt 10 18:44:01 <aliguori>	afaerber_, http://pastie.org/8392810

--8<--
[40d09bdc65bab245439ac85b60e26b90212d5f06] qtest: Prepare QOM machine tests
running ./bisect-qemu-test.sh
~/build/qemu ~/git/qemu
audio: Failed to create voice `lm4549.out'
audio: Failed to create voice `lm4549.out'
audio: Failed to create voice `lm4549.out'
audio: Failed to create voice `lm4549.out'
audio: Failed to create voice `lm4549.out'
audio: Failed to create voice `lm4549.out'
audio: Failed to create voice `lm4549.out'
audio: Failed to create voice `lm4549.out'
audio: Failed to create voice `mm_ac97.in'
audio: Failed to create voice `mm_ac97.out'
40d09bdc65bab245439ac85b60e26b90212d5f06 is the first bad commit
commit 40d09bdc65bab245439ac85b60e26b90212d5f06
Author: Andreas Färber <afaerber@suse.de>
Date:   Mon Jul 29 05:44:47 2013 +0200

    qtest: Prepare QOM machine tests

    Instantiate all [*] machines per target, so that they get a bit of test
    coverage at all. This has proven helpful during QOM refactorings.

    [*] ppcemb target contains some non-working non-embedded machines, and
    ppc405 CPUs are not available there either.
    i386 and x86_64 do not cover pc*-x.y or xenfv.

    Signed-off-by: Andreas Färber <afaerber@suse.de>

:040000 040000 f2bbe30467a164608ca9d8be20b0d689b607c396
673e5111dc8d23d7c00a76ba6ea613b8c6724235 M	tests
bisect run success
--8<--

Okt 14 18:14:20 <aliguori>	afaerber, ping
Okt 14 18:14:48 <afaerber>	aliguori, pong - I already started writing to
you, my output looks different
Okt 14 18:14:55 <aliguori>	okay, cool
Okt 14 18:15:02 <aliguori>	afaerber, just wanted to make sure you saw my
note
Okt 14 18:15:34 <afaerber>	aliguori, yeah I did but I was away on Friday
and most of the weekend
Okt 14 18:16:02 <afaerber>	aliguori, do you have any QEMU_AUDIO_DRV set
in your environment?
Okt 14 18:16:35 <afaerber>	I usually unset that since openSUSE sets it
to alsa but I usually don't enable alsa support in configure
Okt 14 18:16:37 <aliguori>	afaerber, no
Okt 14 18:20:04 <afaerber>	s/alsa/pulseaudio/g
Okt 14 18:21:37 <afaerber>	aliguori, http://paste.opensuse.org/760f8573
Okt 14 18:22:06 <afaerber>	there is an oss error for lm32 but no test
failures
Okt 14 18:22:24 <afaerber>	similarly as mentioned before if pa driver is
requested but not built in there are errors, too

Okt 15 19:05:03 <afaerber>	aliguori, any new insights into the qtest issue?
Okt 15 19:05:28 *	afaerber has rebased and getting broken pipe now,
re-checking master

(NB the broken pipe after rebasing was the SD block breakage.)

That's all I had from you.

And for me asking you to look into it with me during Hackathon there
will surely be several witnesses from QEMU Summit.

So facts are,

1) You only told me "64-bit Fedora 19" *after* I sent v2. Don't complain
about me doing so then!
2) You neither gave your configure nor your runtime command line, just
some non-telling script output and then didn't reply again until v2. So
no, I couldn't reproduce!
3) Installing a VM should be completely unaffected by my qom-test, which
only affects make check.
4) Not a single test failure of make check or make check V=1 has been
shown by anyone for me to investigate. Is this only about the audio
subsystem spitting some weird non-fatal messages? You didn't mind
Paolo's endianness tests spitting messages which me then cleaned up.
5) qemu.git is badly broken in multiple ways, making it hard to send any
meaningful v3 until you guys have either fixed or reverted your genuine
breakages.

I have downloaded Fedora 19 now and am setting up a VM, but I strongly
doubt that "Install some VMs and reproduce the problem" is going to
provide any better insights on Fedora without additional input...

Regards,
Andreas
Anthony Liguori Nov. 3, 2013, 4:32 p.m. UTC | #5
On Sun, Nov 3, 2013 at 7:12 AM, Andreas Färber <afaerber@suse.de> wrote:
> Anthony,
>
> Am 03.11.2013 14:58, schrieb Anthony Liguori:
>> On Sun, Nov 3, 2013 at 5:28 AM, Andreas Färber <afaerber@suse.de> wrote:
>>> Anthony,
>>>
>>>> The errors are the exact same as before.  Install some VMs and
>>>> reproduce the problem.  I just checked and it fails under 64-bit
>>>> Fedora 19.
>>>
>>> I have successfully booted up openSUSE 12.3 x86_64 and SLES 11 SP3
>>> x86_64 without any issue. You really need to explain "the problem"!
>>
>> Andreas,
>>
>> I told you how to reproduce the problem.
>
> No, you didn't, that's the problem! See below.
>
>>  If you choose not to
>> investigate, fine, but don't spam me with resends of a pull request
>> with a known breakage.
>
> This is v2 so that's hardly spamming anyone. And may I remind you that
> you have not bothered to send even a single email reply to v1.
>
> Here's my IRC excerpt:
>
> Okt 10 18:42:37 <aliguori>      afaerber_, ping
> Okt 10 18:44:01 <aliguori>      afaerber_, http://pastie.org/8392810
>
> --8<--
> [40d09bdc65bab245439ac85b60e26b90212d5f06] qtest: Prepare QOM machine tests
> running ./bisect-qemu-test.sh
> ~/build/qemu ~/git/qemu
> audio: Failed to create voice `lm4549.out'
> audio: Failed to create voice `lm4549.out'
> audio: Failed to create voice `lm4549.out'
> audio: Failed to create voice `lm4549.out'
> audio: Failed to create voice `lm4549.out'
> audio: Failed to create voice `lm4549.out'
> audio: Failed to create voice `lm4549.out'
> audio: Failed to create voice `lm4549.out'
> audio: Failed to create voice `mm_ac97.in'
> audio: Failed to create voice `mm_ac97.out'
> 40d09bdc65bab245439ac85b60e26b90212d5f06 is the first bad commit
> commit 40d09bdc65bab245439ac85b60e26b90212d5f06
> Author: Andreas Färber <afaerber@suse.de>
> Date:   Mon Jul 29 05:44:47 2013 +0200
>
>     qtest: Prepare QOM machine tests
>
>     Instantiate all [*] machines per target, so that they get a bit of test
>     coverage at all. This has proven helpful during QOM refactorings.
>
>     [*] ppcemb target contains some non-working non-embedded machines, and
>     ppc405 CPUs are not available there either.
>     i386 and x86_64 do not cover pc*-x.y or xenfv.
>
>     Signed-off-by: Andreas Färber <afaerber@suse.de>
>
> :040000 040000 f2bbe30467a164608ca9d8be20b0d689b607c396
> 673e5111dc8d23d7c00a76ba6ea613b8c6724235 M      tests
> bisect run success
> --8<--
>
> Okt 14 18:14:20 <aliguori>      afaerber, ping
> Okt 14 18:14:48 <afaerber>      aliguori, pong - I already started writing to
> you, my output looks different
> Okt 14 18:14:55 <aliguori>      okay, cool
> Okt 14 18:15:02 <aliguori>      afaerber, just wanted to make sure you saw my
> note
> Okt 14 18:15:34 <afaerber>      aliguori, yeah I did but I was away on Friday
> and most of the weekend
> Okt 14 18:16:02 <afaerber>      aliguori, do you have any QEMU_AUDIO_DRV set
> in your environment?
> Okt 14 18:16:35 <afaerber>      I usually unset that since openSUSE sets it
> to alsa but I usually don't enable alsa support in configure
> Okt 14 18:16:37 <aliguori>      afaerber, no
> Okt 14 18:20:04 <afaerber>      s/alsa/pulseaudio/g
> Okt 14 18:21:37 <afaerber>      aliguori, http://paste.opensuse.org/760f8573
> Okt 14 18:22:06 <afaerber>      there is an oss error for lm32 but no test
> failures
> Okt 14 18:22:24 <afaerber>      similarly as mentioned before if pa driver is
> requested but not built in there are errors, too
>
> Okt 15 19:05:03 <afaerber>      aliguori, any new insights into the qtest issue?
> Okt 15 19:05:28 *       afaerber has rebased and getting broken pipe now,
> re-checking master
>
> (NB the broken pipe after rebasing was the SD block breakage.)
>
> That's all I had from you.
>
> And for me asking you to look into it with me during Hackathon there
> will surely be several witnesses from QEMU Summit.

Andreas,

I don't know what you're trying to prove here but you're wasting your breathe.

There is only one thing that matters here--don't send known broken
pull requests.  There is nothing you can say or do that will every
justify sending something that you know is broken.  Period.

Everything else is excuses.  If you need more help from me to trouble
shoot the problem, ask.  If you have trouble getting in touch with me,
complain loudly and publicly.  Don't send me broken pull requests.
That's unacceptable from a submaintainer.

The problem here is that we have broken boards and your patch is
blindly enabling qtest on them.  We shouldn't do that.

In particular, the problem is that the lm4549 is bit-rotted which is
spawned by pl041 which is pulled in by certain boards like the
vexpress-a15 on arm-softmmu.  My guess is that your config doesn't
have audio enabled so this device is being hidden or something like
that.

Regards,

Anthony Liguori
Peter Maydell Nov. 3, 2013, 6:47 p.m. UTC | #6
On 3 November 2013 16:32, Anthony Liguori <anthony@codemonkey.ws> wrote:
> In particular, the problem is that the lm4549 is bit-rotted which is
> spawned by pl041 which is pulled in by certain boards like the
> vexpress-a15 on arm-softmmu.  My guess is that your config doesn't
> have audio enabled so this device is being hidden or something like
> that.

What's wrong with pl041 audio? I admit I don't actually test the
audio that often but I certainly build with audio enabled so it
shouldn't be fails-to-boot busted.

-- PMM
Andreas Färber Nov. 3, 2013, 6:52 p.m. UTC | #7
Am 03.11.2013 19:47, schrieb Peter Maydell:
> On 3 November 2013 16:32, Anthony Liguori <anthony@codemonkey.ws> wrote:
>> In particular, the problem is that the lm4549 is bit-rotted which is
>> spawned by pl041 which is pulled in by certain boards like the
>> vexpress-a15 on arm-softmmu.  My guess is that your config doesn't
>> have audio enabled so this device is being hidden or something like
>> that.
> 
> What's wrong with pl041 audio? I admit I don't actually test the
> audio that often but I certainly build with audio enabled so it
> shouldn't be fails-to-boot busted.

I believe that info is already outdated as per IRC. A patch to ossaudio
has been submitted to change the default away from OSS for virgin
./configure. Problem is lack of /dev/dsp on some distros and
ossaudio.c's error handling for that case.

Andreas
Peter Maydell Nov. 3, 2013, 6:58 p.m. UTC | #8
On 3 November 2013 18:52, Andreas Färber <afaerber@suse.de> wrote:
> I believe that info is already outdated as per IRC. A patch to ossaudio
> has been submitted to change the default away from OSS for virgin
> ./configure. Problem is lack of /dev/dsp on some distros and
> ossaudio.c's error handling for that case.

Oh, is it just those warnings? The audio system tends to
spew warnings if you don't have your local system's audio
configured properly, but that has been the case for literally
years (ie as long as I've worked with QEMU). That's not a new
bug by any stretch of the imagination.

-- PMM
Andreas Färber Nov. 3, 2013, 9:36 p.m. UTC | #9
Am 03.11.2013 19:58, schrieb Peter Maydell:
> On 3 November 2013 18:52, Andreas Färber <afaerber@suse.de> wrote:
>> I believe that info is already outdated as per IRC. A patch to ossaudio
>> has been submitted to change the default away from OSS for virgin
>> ./configure. Problem is lack of /dev/dsp on some distros and
>> ossaudio.c's error handling for that case.
> 
> Oh, is it just those warnings? The audio system tends to
> spew warnings if you don't have your local system's audio
> configured properly, but that has been the case for literally
> years (ie as long as I've worked with QEMU). That's not a new
> bug by any stretch of the imagination.

Having installed, updated and set up a Fedora 19 VM without /dev/dsp, I
am indeed still getting slightly different output than Anthony:

GTESTER check-qtest-arm
oss: Could not initialize DAC
oss: Failed to open `/dev/dsp'
oss: Reason: No such file or directory
oss: Could not initialize DAC
oss: Failed to open `/dev/dsp'
oss: Reason: No such file or directory
audio: Failed to create voice `lm4549.out'

repeated several times.

So it seems I was right and you too, Peter, it's just annoyingly noisy
audio output but definitely no qtest failure.

With Anthony's proposed ossaudio patch both the oss and the audio lines
get suppressed.

On openSUSE with QEMU_AUDIO_DRV=pa I am seeing:

GTESTER check-qtest-arm
pulseaudio: set_sink_input_volume() failed
pulseaudio: Reason: Invalid argument
pulseaudio: set_sink_input_mute() failed
pulseaudio: Reason: Invalid argument

repeated several times, but still no test failure, just the noise.

Meanwhile Marcel and Michael have been working on resolving the test
failures I reported. Once we have agreed on a solution there, we'll need
a v3 since mst's pull included the original version of the qom patch
with incorrect documentation syntax that would now cause silent merge
conflicts - my qom-next has the delta as follow-up fix instead.

Regards,
Andreas