qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 60d7ca: machine: export register_compat_prop(


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 60d7ca: machine: export register_compat_prop()
Date: Thu, 29 Jun 2017 07:05:48 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 60d7cacac8f08d7832b9b4081f32b8e953867b55
      
https://github.com/qemu/qemu/commit/60d7cacac8f08d7832b9b4081f32b8e953867b55
  Author: Peter Xu <address@hidden>
  Date:   2017-06-28 (Wed, 28 Jun 2017)

  Changed paths:
    M hw/core/machine.c
    M hw/core/qdev-properties.c
    M include/hw/qdev-properties.h

  Log Message:
  -----------
  machine: export register_compat_prop()

We have HW_COMPAT_*, however that's only bound to machines, not other
things (like accelerators).  Behind it, it was register_compat_prop()
that played the trick.  Let's export the function for further use
outside HW_COMPAT_* magic.

Meanwhile, move it to qdev-properties.c where seems more proper (since
it'll be used not only in machine codes).

Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 9ffea096b93388e4a3727ae766583715d9e61741
      
https://github.com/qemu/qemu/commit/9ffea096b93388e4a3727ae766583715d9e61741
  Author: Peter Xu <address@hidden>
  Date:   2017-06-28 (Wed, 28 Jun 2017)

  Changed paths:
    M accel/accel.c
    M hw/core/qdev-properties.c
    M include/hw/qdev-properties.h
    M include/sysemu/accel.h
    M vl.c

  Log Message:
  -----------
  accel: introduce AccelClass.global_props

Introduce this new field for the accelerator classes so that each
specific accelerator in the future can register its own global
properties to be used further by the system. It works just like how the
old machine compatible properties do, but only tailored for
accelerators.

Introduce register_compat_props_array() for it. Export it so that it may
be used in other codes as well in the future.

Suggested-by: Eduardo Habkost <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: a0660e0bb8a501525c5bdfc67d56b954c3da664d
      
https://github.com/qemu/qemu/commit/a0660e0bb8a501525c5bdfc67d56b954c3da664d
  Author: Peter Xu <address@hidden>
  Date:   2017-06-28 (Wed, 28 Jun 2017)

  Changed paths:
    M vl.c

  Log Message:
  -----------
  vl: clean up global property registration

It's not that clear on how the global properties are registered to
global_props (and also its priority relationship). Let's provide a
single function to be called in main() for that, with comment to explain
it a bit.

Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: e5cb7e7677010f529d3f0f9dcdb385dea9446f8d
      
https://github.com/qemu/qemu/commit/e5cb7e7677010f529d3f0f9dcdb385dea9446f8d
  Author: Peter Xu <address@hidden>
  Date:   2017-06-28 (Wed, 28 Jun 2017)

  Changed paths:
    M include/migration/misc.h
    M migration/migration.c
    M migration/migration.h
    M vl.c

  Log Message:
  -----------
  migration: let MigrationState be a qdev

Let the old man "MigrationState" join the object family. Direct benefit
is that we can start to use all the property features derived from
current QDev, like: HW_COMPAT_* bits, command line setup for migration
parameters (so will never need to set them up each time using HMP/QMP,
this is really, really attractive for test writters), etc.

I see no reason to disallow this happen yet. So let's start from this
one, to see whether it would be anything good.

Now we init the MigrationState struct statically in main() to make sure
it's initialized after global properties are applied, since we'll use
them during creation of the object.

No functional change at all.

Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Eduardo Habkost <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 5272298c48eb3a01c41a7822e6303d0a0a05f004
      
https://github.com/qemu/qemu/commit/5272298c48eb3a01c41a7822e6303d0a0a05f004
  Author: Peter Xu <address@hidden>
  Date:   2017-06-28 (Wed, 28 Jun 2017)

  Changed paths:
    M hw/i386/pc_piix.c
    M hw/ppc/spapr.c
    M hw/xen/xen-common.c
    M include/hw/compat.h
    M include/migration/global_state.h
    M migration/global_state.c
    M migration/migration.c
    M migration/migration.h

  Log Message:
  -----------
  migration: move global_state.optional out

Put it into MigrationState then we can use the properties to specify
whether to enable storing global state.

Removing global_state_set_optional() since now we can use HW_COMPAT_2_3
for x86/power, and AccelClass.global_props for Xen.

Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 3df663e575f1876d7f3bc684f80e72fca0703d39
      
https://github.com/qemu/qemu/commit/3df663e575f1876d7f3bc684f80e72fca0703d39
  Author: Peter Xu <address@hidden>
  Date:   2017-06-28 (Wed, 28 Jun 2017)

  Changed paths:
    M include/migration/misc.h
    M include/sysemu/sysemu.h
    M migration/migration.c
    M migration/migration.h
    M migration/savevm.c
    M vl.c

  Log Message:
  -----------
  migration: move only_migratable to MigrationState

One less global variable, and it does only matter with migration.

We keep the old "--only-migratable" option, but also now we support:

  -global migration.only-migratable=true

Currently still keep the old interface.

Hmm, now vl.c has no way to access migrate_get_current(). Export a
function for it to setup only_migratable.

Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 71dd4c1a5672cafe9fb89abc83fe2a962f39ec42
      
https://github.com/qemu/qemu/commit/71dd4c1a5672cafe9fb89abc83fe2a962f39ec42
  Author: Peter Xu <address@hidden>
  Date:   2017-06-28 (Wed, 28 Jun 2017)

  Changed paths:
    M hw/i386/pc_piix.c
    M hw/ppc/spapr.c
    M hw/xen/xen-common.c
    M include/hw/compat.h
    M include/migration/misc.h
    M migration/migration.c
    M migration/migration.h
    M migration/savevm.c

  Log Message:
  -----------
  migration: move skip_configuration out

It was in SaveState but now moved to MigrationState altogether, reverted
its meaning, then renamed to "send_configuration". Again, using
HW_COMPAT_2_3 for old PC/SPAPR machines, and accel_register_prop() for
xen_init().

Removing savevm_skip_configuration().

Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 15c38503253bb9ba9b8efd17662069f69ca2b997
      
https://github.com/qemu/qemu/commit/15c38503253bb9ba9b8efd17662069f69ca2b997
  Author: Peter Xu <address@hidden>
  Date:   2017-06-28 (Wed, 28 Jun 2017)

  Changed paths:
    M hw/i386/pc_piix.c
    M hw/ppc/spapr.c
    M hw/xen/xen-common.c
    M include/hw/compat.h
    M include/migration/misc.h
    M migration/migration.c
    M migration/migration.h
    M migration/savevm.c

  Log Message:
  -----------
  migration: move skip_section_footers

Move it into MigrationState, revert its meaning and renaming it to
send_section_footer, with a property bound to it. Same trick is played
like previous patches.

Removing savevm_skip_section_footers().

Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 4ffdb337e74f9a4dae97ea0396d4e1a3dbb13723
      
https://github.com/qemu/qemu/commit/4ffdb337e74f9a4dae97ea0396d4e1a3dbb13723
  Author: Peter Xu <address@hidden>
  Date:   2017-06-28 (Wed, 28 Jun 2017)

  Changed paths:
    M migration/migration.c
    M migration/savevm.c

  Log Message:
  -----------
  migration: merge enforce_config_section somewhat

These two parameters:

- MachineState::enforce_config_section
- MigrationState::send_configuration

are playing similar role here. This patch merges the first one into
second, then we'll have a single place to reference whether we need to
send the configuration section.

I didn't remove the MachineState.enforce_config_section field since when
applying that machine property (in machine_set_property()) we haven't
yet initialized global properties and migration object. Then, it's
still not easy to pass that boolean to MigrationState at such an early
time.

A natural benefit for current patch is that now we kept the meaning of
"enforce-config-section" since it'll still have the highest
priority (that's what "enforce" mean I guess).

Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 9d18af93b39544a829f398c9e0cfd0e6ae7deb13
      
https://github.com/qemu/qemu/commit/9d18af93b39544a829f398c9e0cfd0e6ae7deb13
  Author: Peter Xu <address@hidden>
  Date:   2017-06-28 (Wed, 28 Jun 2017)

  Changed paths:
    M hmp.c
    M include/migration/misc.h
    M migration/migration.c

  Log Message:
  -----------
  migration: hmp: dump globals

Now we have some globals that can be configured for migration. Dump them
in HMP info migration for better debugging.

(we can also use this to monitor whether COMPAT fields are applied
correctly on compatible machines)

Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 01f6e14c78f480ade5521139019fdf930a7affaa
      
https://github.com/qemu/qemu/commit/01f6e14c78f480ade5521139019fdf930a7affaa
  Author: Peter Xu <address@hidden>
  Date:   2017-06-28 (Wed, 28 Jun 2017)

  Changed paths:
    M migration/migration.c

  Log Message:
  -----------
  migration: add comment for TYPE_MIGRATE

It'll be strange that the migration object inherits TYPE_DEVICE. Add
some explanations to it.

Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: d2164ad35c411d97abd2aa5c6f160283d215e214
      
https://github.com/qemu/qemu/commit/d2164ad35c411d97abd2aa5c6f160283d215e214
  Author: Halil Pasic <address@hidden>
  Date:   2017-06-28 (Wed, 28 Jun 2017)

  Changed paths:
    M hw/block/fdc.c
    M hw/display/qxl.c
    M hw/display/vga.c
    M hw/display/virtio-gpu.c
    M hw/display/vmware_vga.c
    M hw/ide/ahci.c
    M hw/input/vmmouse.c
    M hw/intc/openpic.c
    M hw/intc/xics.c
    M hw/misc/max111x.c
    M hw/nvram/eeprom93xx.c
    M hw/pci/pci.c
    M hw/pci/pcie_aer.c
    M hw/ppc/spapr_iommu.c
    M hw/ppc/spapr_pci.c
    M hw/ppc/spapr_vio.c
    M hw/usb/hcd-uhci.c
    M include/migration/vmstate.h
    M migration/vmstate-types.c
    M target/ppc/machine.c

  Log Message:
  -----------
  vmstate: error hint for failed equal checks

In some cases a failing VMSTATE_*_EQUAL does not mean we detected a bug,
but it's actually the best we can do. Especially in these cases a verbose
error message is required.

Let's introduce infrastructure for specifying a error hint to be used if
equal check fails. Let's do this by adding a parameter to the _EQUAL
macros called _err_hint. Also change all current users to pass NULL as
last parameter so nothing changes for them.

Signed-off-by: Halil Pasic <address@hidden>

Message-Id: <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: c788ada8163127d20505e3ebf9b8735ba313d661
      
https://github.com/qemu/qemu/commit/c788ada8163127d20505e3ebf9b8735ba313d661
  Author: Peter Xu <address@hidden>
  Date:   2017-06-28 (Wed, 28 Jun 2017)

  Changed paths:
    M migration/migration.c
    M migration/migration.h
    M qapi-schema.json

  Log Message:
  -----------
  migration: add "return-path" capability

When this capability is enabled, QEMU will use the return path even for
precopy migration. This is helpful at least in one case when destination
failed to load the image while source quited without confirmation. With
return path, source will wait for the last response from destination,
and if destination fails, it'll fail the migration on source, then the
guest can be run again on the source (rather than assuming to be good,
then the guest will be lost after source quits).

It needs to be enabled explicitly on source, otherwise disabled.

Signed-off-by: Peter Xu <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Reviewed-by: Dr. David Alan Gilbert <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 084140bd4989095d39978269fd0f43e398a0015d
      
https://github.com/qemu/qemu/commit/084140bd4989095d39978269fd0f43e398a0015d
  Author: Haozhong Zhang <address@hidden>
  Date:   2017-06-28 (Wed, 28 Jun 2017)

  Changed paths:
    M include/exec/ram_addr.h

  Log Message:
  -----------
  exec: fix access to ram_list.dirty_memory when sync dirty bitmap

In cpu_physical_memory_sync_dirty_bitmap(rb, start, ...), the 2nd
argument 'start' is relative to the start of the ramblock 'rb'. When
it's used to access the dirty memory bitmap of ram_list (i.e.
ram_list.dirty_memory[DIRTY_MEMORY_MIGRATION]->blocks[]), an offset to
the start of all RAM (i.e. rb->offset) should be added to it, which has
however been missed since c/s 6b6712efcc. For a ramblock of host memory
backend whose offset is not zero, cpu_physical_memory_sync_dirty_bitmap()
synchronizes the incorrect part of the dirty memory bitmap of ram_list
to the per ramblock dirty bitmap. As a result, a guest with host
memory backend may crash after migration.

Fix it by adding the offset of ramblock when accessing the dirty memory
bitmap of ram_list in cpu_physical_memory_sync_dirty_bitmap().

Reported-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Haozhong Zhang <address@hidden>
Message-Id: <address@hidden>
Reviewed-by: Juan Quintela <address@hidden>
Tested-by: Juan Quintela <address@hidden>
Tested-by: Stefan Hajnoczi <address@hidden>
Signed-off-by: Juan Quintela <address@hidden>


  Commit: 4fe60423d7f401bd5d4ef461ef53402139f0d698
      
https://github.com/qemu/qemu/commit/4fe60423d7f401bd5d4ef461ef53402139f0d698
  Author: Peter Maydell <address@hidden>
  Date:   2017-06-29 (Thu, 29 Jun 2017)

  Changed paths:
    M accel/accel.c
    M hmp.c
    M hw/block/fdc.c
    M hw/core/machine.c
    M hw/core/qdev-properties.c
    M hw/display/qxl.c
    M hw/display/vga.c
    M hw/display/virtio-gpu.c
    M hw/display/vmware_vga.c
    M hw/i386/pc_piix.c
    M hw/ide/ahci.c
    M hw/input/vmmouse.c
    M hw/intc/openpic.c
    M hw/intc/xics.c
    M hw/misc/max111x.c
    M hw/nvram/eeprom93xx.c
    M hw/pci/pci.c
    M hw/pci/pcie_aer.c
    M hw/ppc/spapr.c
    M hw/ppc/spapr_iommu.c
    M hw/ppc/spapr_pci.c
    M hw/ppc/spapr_vio.c
    M hw/usb/hcd-uhci.c
    M hw/xen/xen-common.c
    M include/exec/ram_addr.h
    M include/hw/compat.h
    M include/hw/qdev-properties.h
    M include/migration/global_state.h
    M include/migration/misc.h
    M include/migration/vmstate.h
    M include/sysemu/accel.h
    M include/sysemu/sysemu.h
    M migration/global_state.c
    M migration/migration.c
    M migration/migration.h
    M migration/savevm.c
    M migration/vmstate-types.c
    M qapi-schema.json
    M target/ppc/machine.c
    M vl.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/juanquintela/tags/migration/20170628' 
into staging

migration/next for 20170628

# gpg: Signature made Wed 28 Jun 2017 12:16:44 BST
# gpg:                using RSA key 0xF487EF185872D723
# gpg: Good signature from "Juan Quintela <address@hidden>"
# gpg:                 aka "Juan Quintela <address@hidden>"
# gpg: WARNING: This key is not certified with a trusted signature!
# gpg:          There is no indication that the signature belongs to the owner.
# Primary key fingerprint: 1899 FF8E DEBF 58CC EE03  4B82 F487 EF18 5872 D723

* remotes/juanquintela/tags/migration/20170628:
  exec: fix access to ram_list.dirty_memory when sync dirty bitmap
  migration: add "return-path" capability
  vmstate: error hint for failed equal checks
  migration: add comment for TYPE_MIGRATE
  migration: hmp: dump globals
  migration: merge enforce_config_section somewhat
  migration: move skip_section_footers
  migration: move skip_configuration out
  migration: move only_migratable to MigrationState
  migration: move global_state.optional out
  migration: let MigrationState be a qdev
  vl: clean up global property registration
  accel: introduce AccelClass.global_props
  machine: export register_compat_prop()

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


Compare: https://github.com/qemu/qemu/compare/464588675455...4fe60423d7f4

reply via email to

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