qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 3d0db3: spapr_rng: disable hotpluggability


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 3d0db3: spapr_rng: disable hotpluggability
Date: Mon, 29 Feb 2016 03:30:06 -0800

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 3d0db3e74d818ba43c62cdfb3220e551f4f5ae37
      
https://github.com/qemu/qemu/commit/3d0db3e74d818ba43c62cdfb3220e551f4f5ae37
  Author: Greg Kurz <address@hidden>
  Date:   2016-02-28 (Sun, 28 Feb 2016)

  Changed paths:
    M hw/ppc/spapr_rng.c

  Log Message:
  -----------
  spapr_rng: disable hotpluggability

It is currently possible to hotplug a spapr_rng device but QEMU crashes
when we try to hot unplug:

ERROR:hw/core/qdev.c:295:qdev_unplug: assertion failed: (hotplug_ctrl)
Aborted

This happens because spapr_rng isn't plugged to any bus and sPAPR does
not provide hotplug support for it: qdev_get_hotplug_handler() hence
return NULL and we hit the assertion.

And anyway, it doesn't make much sense to unplug this device since hcalls
cannot be unregistered. Even the idea of hotplugging a RNG device instead
of declaring it on the QEMU command line looks weird.

This patch simply disables hotpluggability for the spapr-rng class.

Signed-off-by: Greg Kurz <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: d4a63ac8b19eb208465f27fde63f3cff7018fdfd
      
https://github.com/qemu/qemu/commit/d4a63ac8b19eb208465f27fde63f3cff7018fdfd
  Author: Greg Kurz <address@hidden>
  Date:   2016-02-28 (Sun, 28 Feb 2016)

  Changed paths:
    M hw/ppc/spapr_pci.c

  Log Message:
  -----------
  spapr_pci: kill useless variable in rtas_ibm_change_msi()

The num local variable is initialized to zero and has no writer.

Signed-off-by: Greg Kurz <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: ce266b75febdeee5b91ab630a7158ddff3e002fb
      
https://github.com/qemu/qemu/commit/ce266b75febdeee5b91ab630a7158ddff3e002fb
  Author: Greg Kurz <address@hidden>
  Date:   2016-02-28 (Sun, 28 Feb 2016)

  Changed paths:
    M hw/ppc/spapr_pci.c

  Log Message:
  -----------
  spapr_pci: fix irq leak in RTAS ibm,change-msi

This RTAS call is used to request new interrupts or to free all interrupts.

If the driver has already allocated interrupts and asks again for a non-null
number of irqs, then the rtas_ibm_change_msi() function will silently leak
the previous interrupts.

It happens because xics_free() is only called when the driver releases all
interrupts (!req_num case). Note that the previously allocated spapr_pci_msi
is not leaked because the GHashTable is created with destroy functions and
g_hash_table_insert() hence frees the old value.

This patch makes sure any previously allocated MSIs are released when a
new allocation succeeds.

Signed-off-by: Greg Kurz <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: cba0e7796be18f61f43e60bff6bff986851e359a
      
https://github.com/qemu/qemu/commit/cba0e7796be18f61f43e60bff6bff986851e359a
  Author: Greg Kurz <address@hidden>
  Date:   2016-02-28 (Sun, 28 Feb 2016)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  spapr: disable vmdesc submission for old machines

Since QEMU 2.3, we have a vmdesc section in the migration stream.
This section is not mandatory but when migrating a pseries-2.2
machine from QEMU 2.2, you get a warning at the destination:

qemu-system-ppc64: Expected vmdescription section, but got 0

The warning goes away if we decide to skip vmdesc as well for
older pseries, like it is already done for pc's.

This can only be observed with -cpu POWER7 because POWER8
cannot migrate from QEMU 2.2 to 2.3 (insns_flags2 mismatch).

Signed-off-by: Greg Kurz <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 2d7d06d847b78fc1487a1b8908a823089c6a53b6
      
https://github.com/qemu/qemu/commit/2d7d06d847b78fc1487a1b8908a823089c6a53b6
  Author: Hervé Poussineau <address@hidden>
  Date:   2016-02-28 (Sun, 28 Feb 2016)

  Changed paths:
    M hw/misc/macio/mac_dbdma.c

  Log Message:
  -----------
  dbdma: warn when using unassigned channel

With this, it's easier to know if a guest uses an invalid and/or unimplemented
DMA channel.

Signed-off-by: Hervé Poussineau <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>
Acked-by: Mark Cave-Ayland <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 09b5e30da5b19f44768a5429f603caaede216757
      
https://github.com/qemu/qemu/commit/09b5e30da5b19f44768a5429f603caaede216757
  Author: Greg Kurz <address@hidden>
  Date:   2016-02-28 (Sun, 28 Feb 2016)

  Changed paths:
    M hw/ppc/spapr.c

  Log Message:
  -----------
  spapr: skip configuration section during migration of older machines

Since QEMU 2.4, we have a configuration section in the migration stream.
This must be skipped for older machines, like it is already done for x86.

This patch fixes the migration of pseries-2.3 from/to QEMU 2.3, but it
breaks migration of the same machine from/to QEMU 2.4/2.4.1/2.5. We do
that anyway because QEMU 2.3 is likely to be more widely deployed than
newer QEMU versions.

Fixes: 61964c23e5ddd5a33f15699e45ce126f879e3e33
Signed-off-by: Greg Kurz <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 902c053d834e3b802ec736f170edf226d4a841ff
      
https://github.com/qemu/qemu/commit/902c053d834e3b802ec736f170edf226d4a841ff
  Author: Greg Kurz <address@hidden>
  Date:   2016-02-28 (Sun, 28 Feb 2016)

  Changed paths:
    M hw/core/machine.c
    M include/hw/boards.h
    M migration/savevm.c
    M qemu-options.hx

  Log Message:
  -----------
  migration: allow machine to enforce configuration section migration

Migration of pseries-2.3 doesn't have configuration section. Unfortunately,
QEMU 2.4/2.4.1/2.5 are buggy and always stream and expect the configuration
section, and break migration both ways.

This patch introduces a property which allows to enforce a configuration
section for machines who don't have one.

It can be set at startup:

-machine enforce-config-section=on

or later from the QEMU monitor:

qom-set /machine enforce-config-section on

It is up to the tooling to set or unset this property according to the
version of the QEMU at the other end of the pipe.

Signed-off-by: Greg Kurz <address@hidden>
Reviewed-by: Laurent Vivier <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: a005b3ef50439b5bc6b2eb0b5bda8e8c7c2368bf
      
https://github.com/qemu/qemu/commit/a005b3ef50439b5bc6b2eb0b5bda8e8c7c2368bf
  Author: Greg Kurz <address@hidden>
  Date:   2016-02-28 (Sun, 28 Feb 2016)

  Changed paths:
    M hw/intc/xics.c
    M hw/ppc/spapr_events.c
    M hw/ppc/spapr_pci.c
    M hw/ppc/spapr_vio.c
    M include/hw/ppc/xics.h
    M trace-events

  Log Message:
  -----------
  xics: report errors with the QEMU Error API

Using the return value to report errors is error prone:
- xics_alloc() returns -1 on error but spapr_vio_busdev_realize() errors
  on 0
- xics_alloc_block() returns the unclear value of ics->offset - 1 on error
  but both rtas_ibm_change_msi() and spapr_phb_realize() error on 0

This patch adds an errp argument to xics_alloc() and xics_alloc_block() to
report errors. The return value of these functions is a valid IRQ number
if errp is NULL. It is undefined otherwise.

The corresponding error traces get promotted to error messages. Note that
the "can't allocate IRQ" error message in spapr_vio_busdev_realize() also
moves to xics_alloc(). Similar error message consolidation isn't really
applicable to xics_alloc_block() because callers have extra context (device
config address, MSI or MSIX).

This fixes the issues mentioned above.

Based on previous work from Brian W. Hart.

Signed-off-by: Greg Kurz <address@hidden>
Signed-off-by: David Gibson <address@hidden>


  Commit: 35227e6a09a274b1496bfe16cbe2008e85fbeb5a
      
https://github.com/qemu/qemu/commit/35227e6a09a274b1496bfe16cbe2008e85fbeb5a
  Author: Peter Maydell <address@hidden>
  Date:   2016-02-29 (Mon, 29 Feb 2016)

  Changed paths:
    M hw/core/machine.c
    M hw/intc/xics.c
    M hw/misc/macio/mac_dbdma.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_events.c
    M hw/ppc/spapr_pci.c
    M hw/ppc/spapr_rng.c
    M hw/ppc/spapr_vio.c
    M include/hw/boards.h
    M include/hw/ppc/xics.h
    M migration/savevm.c
    M qemu-options.hx
    M trace-events

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/dgibson/tags/ppc-for-2.6-20160229' into 
staging

ppc patch queue for 2016-02-29

Some more accumulated patches for target-ppc, pseries machine type and
related devices to fit in before the qemu-2.6 soft freeze.
    * Mostly bugfixes and small cleanups for spapr and Mac platforms

# gpg: Signature made Mon 29 Feb 2016 06:56:34 GMT using RSA key ID 20D9B392
# gpg: Good signature from "David Gibson <address@hidden>"
# gpg:                 aka "David Gibson (Red Hat) <address@hidden>"
# gpg:                 aka "David Gibson (ozlabs.org) <address@hidden>"
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: 75F4 6586 AE61 A66C C44E  87DC 6C38 CACA 20D9 B392

* remotes/dgibson/tags/ppc-for-2.6-20160229:
  xics: report errors with the QEMU Error API
  migration: allow machine to enforce configuration section migration
  spapr: skip configuration section during migration of older machines
  dbdma: warn when using unassigned channel
  spapr: disable vmdesc submission for old machines
  spapr_pci: fix irq leak in RTAS ibm,change-msi
  spapr_pci: kill useless variable in rtas_ibm_change_msi()
  spapr_rng: disable hotpluggability

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/6e378dd214fb...35227e6a09a2

reply via email to

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