[libvirt] [PATCH 00/68] qemu: Refactor migration parameters

Jiri Denemark posted 68 patches 5 years, 11 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/cover.1522852107.git.jdenemar@redhat.com
Test syntax-check passed
There is a newer version of this series
po/POTFILES.in                                |    1 +
src/libvirt_private.syms                      |    1 +
src/qemu/Makefile.inc.am                      |    3 +
src/qemu/qemu_domain.c                        |  110 +-
src/qemu/qemu_domain.h                        |   25 +-
src/qemu/qemu_driver.c                        |  175 +--
src/qemu/qemu_migration.c                     |  965 +++-----------
src/qemu/qemu_migration.h                     |   72 +-
src/qemu/qemu_migration_params.c              | 1139 +++++++++++++++++
src/qemu/qemu_migration_params.h              |  130 ++
src/qemu/qemu_migration_paramspriv.h          |   31 +
src/qemu/qemu_monitor.c                       |   64 +-
src/qemu/qemu_monitor.h                       |   43 +-
src/qemu/qemu_monitor_json.c                  |  153 +--
src/qemu/qemu_monitor_json.h                  |   10 +-
src/qemu/qemu_process.c                       |   30 +-
src/qemu/qemu_process.h                       |    3 +-
src/util/virjson.c                            |    8 +
src/util/virjson.h                            |    2 +
tests/Makefile.am                             |   12 +
tests/qemumigparamsdata/basic.json            |    9 +
tests/qemumigparamsdata/basic.reply           |   12 +
tests/qemumigparamsdata/basic.xml             |   11 +
tests/qemumigparamsdata/empty.json            |    3 +
tests/qemumigparamsdata/empty.reply           |    5 +
tests/qemumigparamsdata/empty.xml             |    4 +
tests/qemumigparamsdata/tls-enabled.json      |   11 +
tests/qemumigparamsdata/tls-enabled.reply     |   14 +
tests/qemumigparamsdata/tls-enabled.xml       |   13 +
tests/qemumigparamsdata/tls-hostname.json     |   11 +
tests/qemumigparamsdata/tls-hostname.reply    |   14 +
tests/qemumigparamsdata/tls-hostname.xml      |   13 +
tests/qemumigparamsdata/tls.json              |   11 +
tests/qemumigparamsdata/tls.reply             |   14 +
tests/qemumigparamsdata/tls.xml               |   13 +
tests/qemumigparamsdata/unsupported.json      |    3 +
tests/qemumigparamsdata/unsupported.reply     |    7 +
tests/qemumigparamsdata/unsupported.xml       |    4 +
tests/qemumigparamstest.c                     |  242 ++++
tests/qemumonitorjsontest.c                   |  113 +-
.../migration-in-params-in.xml                |  400 ++++++
.../migration-in-params-out.xml               |    1 +
.../migration-out-nbd-out.xml                 |  450 ++++++-
.../migration-out-params-in.xml               |  414 ++++++
.../migration-out-params-out.xml              |    1 +
tests/qemuxml2xmltest.c                       |    2 +
46 files changed, 3456 insertions(+), 1316 deletions(-)
create mode 100644 src/qemu/qemu_migration_params.c
create mode 100644 src/qemu/qemu_migration_params.h
create mode 100644 src/qemu/qemu_migration_paramspriv.h
create mode 100644 tests/qemumigparamsdata/basic.json
create mode 100644 tests/qemumigparamsdata/basic.reply
create mode 100644 tests/qemumigparamsdata/basic.xml
create mode 100644 tests/qemumigparamsdata/empty.json
create mode 100644 tests/qemumigparamsdata/empty.reply
create mode 100644 tests/qemumigparamsdata/empty.xml
create mode 100644 tests/qemumigparamsdata/tls-enabled.json
create mode 100644 tests/qemumigparamsdata/tls-enabled.reply
create mode 100644 tests/qemumigparamsdata/tls-enabled.xml
create mode 100644 tests/qemumigparamsdata/tls-hostname.json
create mode 100644 tests/qemumigparamsdata/tls-hostname.reply
create mode 100644 tests/qemumigparamsdata/tls-hostname.xml
create mode 100644 tests/qemumigparamsdata/tls.json
create mode 100644 tests/qemumigparamsdata/tls.reply
create mode 100644 tests/qemumigparamsdata/tls.xml
create mode 100644 tests/qemumigparamsdata/unsupported.json
create mode 100644 tests/qemumigparamsdata/unsupported.reply
create mode 100644 tests/qemumigparamsdata/unsupported.xml
create mode 100644 tests/qemumigparamstest.c
create mode 100644 tests/qemustatusxml2xmldata/migration-in-params-in.xml
create mode 120000 tests/qemustatusxml2xmldata/migration-in-params-out.xml
mode change 120000 => 100644 tests/qemustatusxml2xmldata/migration-out-nbd-out.xml
create mode 100644 tests/qemustatusxml2xmldata/migration-out-params-in.xml
create mode 120000 tests/qemustatusxml2xmldata/migration-out-params-out.xml
[libvirt] [PATCH 00/68] qemu: Refactor migration parameters
Posted by Jiri Denemark 5 years, 11 months ago
This series changes the way we handle migration parameters and
capabilities with several goals:

- make it all consistent and avoid storing the same parameters in
  several structs
- reduce the number of QMP commands we use for setting migration
  capabilities
- concentrate the logic in a separate file and make the code for
  migration parameters and capabilities in qemu_migration.c less
  complicated
- reset all parameters and capabilities at the end of migration
- make adding new parameters and capabilities easier

Jiri Denemark (68):
  qemu: Move qemuDomainCheckMigrationCapabilities
  qemu: Rename qemuMigrationAnyCapsGet as qemuMigrationCapsGet
  qemu: Rename qemuMigrationParams
  qemu: New file for all APIs related to migration parameters
  qemu: Reindent qemuMigrationParamsSetEmptyTLS
  qemu: Make qemuMigrationParamsFree follow common pattern
  qemu: Allocate struct for migration parameters
  qemu: Drop qemuMigrationParamsClear
  qemu: Move qemuMigrationCompression struct
  qemu: Introduce qemuMigrationParams struct
  qemu: Reset migration parameters in qemuMigrationSrcCleanup
  qemu: Store original migration params in job
  qemu: Typedef struct qemuDomainJobObj
  qemu: Pass job object to qemuProcessRecoverMigration{In,Out}
  qemu: Reset all migration parameters
  qemu: Drop qemuMigrationParamsCheckSetupTLS
  qemu: Drop qemuMigrationParamsCheckTLSCreds
  qemu: Rename qemuMigrationParamsSetEmptyTLS
  qemu: Rename qemuMigrationParamsAddTLSObjects
  qemu: Set tlsHostname inside qemuMigrationParamsEnableTLS
  qemu: Hide cfg inside qemuMigrationParamsEnableTLS
  qemu: Rename qemuMigrationParamsSet
  qemu: Hide internals of qemuMigrationParams struct
  qemu: Introduce qemuMonitorSetMigrationCapabilities
  qemu: Set migration caps via migration params APIs
  qemu: Do not use qemuMonitorSetMigrationCapability
  qemu: Drop unused qemuMonitorSetMigrationCapability
  qemu: Add support for xbzrle-cache-size migration parameter
  qemu: Set XBZRLE cache size via migration parameters
  qemu: Move ParamsCheck closer to ParamsApply on Dst side
  qemu: Move ParamsCheck closer to ParamsApply on Src side
  qemu: Check supported caps in qemuMigrationParamsCheck
  qemu: Introduce qemuMigrationParty enum
  qemu: Use qemuMigrationParamsFromFlags everywhere
  qemu: Hide qemuMigrationParamsNew
  qemu: Drop qemuMigrationParamsSetPostCopy
  qemu: Set always-on migration caps in ParamsCheck
  qemu: Set migration capabilities automatically
  qemu: Call qemuMigrationAnyCompressionParse only from driver
  qemu: Generalize macro for getting VIR_MIGRATE_* typed params
  qemu: Drop qemuMigrationParamsSetCapability
  qemu: Move qemuMigrationParamsSetCompression
  qemu: Move qemuMigrationAnyCompression*
  qemu: Hide qemuMigrationParamsSetCompression
  qemu: Replace qemuMigrationAnyCompressionDump
  qemu: Drop qemuMigrationCompression structure
  qemu: Introduce qemuMigrationParamsFetch
  qemu: Limit usage of qemuMonitorMigrationParams
  qemumonitorjsontest: Drop migration params test
  util: Introduce virJSONValueObjectStealObject
  qemu: Move migration parameters JSON parsing
  qemu: Move migration parameters JSON formatting
  qemu: Move qemuMonitorMigrationParams structure
  qemu: Refactor qemuMigrationParams
  qemu: Generalize qemuMigrationParamsGetDowntimeLimit
  qemu: Set migration parameters automatically
  qemu: Properly reset migration params when libvirtd restarts
  qemu: Export qemuMigrationParams{To,From}JSON for tests
  tests: Add tests for QEMU migration parameters
  qemumigparamstest: Add basic test data
  qemumigparamstest: Add test data for TLS parameters
  qemu: Store API flags for async jobs in qemuDomainJobObj
  qemu: Properly avoid cancelling memory-only dump
  qemu: Drop priv->job.dump_memory_only bool
  qemu: Drop priv->job.postcopyEnabled bool
  qemu: Store API flags for async jobs in status XML
  qemu: Don't delete TLS objects unless TLS migration was requested
  qemuxml2xmltest: Add status XML tests for migration params

 po/POTFILES.in                                |    1 +
 src/libvirt_private.syms                      |    1 +
 src/qemu/Makefile.inc.am                      |    3 +
 src/qemu/qemu_domain.c                        |  110 +-
 src/qemu/qemu_domain.h                        |   25 +-
 src/qemu/qemu_driver.c                        |  175 +--
 src/qemu/qemu_migration.c                     |  965 +++-----------
 src/qemu/qemu_migration.h                     |   72 +-
 src/qemu/qemu_migration_params.c              | 1139 +++++++++++++++++
 src/qemu/qemu_migration_params.h              |  130 ++
 src/qemu/qemu_migration_paramspriv.h          |   31 +
 src/qemu/qemu_monitor.c                       |   64 +-
 src/qemu/qemu_monitor.h                       |   43 +-
 src/qemu/qemu_monitor_json.c                  |  153 +--
 src/qemu/qemu_monitor_json.h                  |   10 +-
 src/qemu/qemu_process.c                       |   30 +-
 src/qemu/qemu_process.h                       |    3 +-
 src/util/virjson.c                            |    8 +
 src/util/virjson.h                            |    2 +
 tests/Makefile.am                             |   12 +
 tests/qemumigparamsdata/basic.json            |    9 +
 tests/qemumigparamsdata/basic.reply           |   12 +
 tests/qemumigparamsdata/basic.xml             |   11 +
 tests/qemumigparamsdata/empty.json            |    3 +
 tests/qemumigparamsdata/empty.reply           |    5 +
 tests/qemumigparamsdata/empty.xml             |    4 +
 tests/qemumigparamsdata/tls-enabled.json      |   11 +
 tests/qemumigparamsdata/tls-enabled.reply     |   14 +
 tests/qemumigparamsdata/tls-enabled.xml       |   13 +
 tests/qemumigparamsdata/tls-hostname.json     |   11 +
 tests/qemumigparamsdata/tls-hostname.reply    |   14 +
 tests/qemumigparamsdata/tls-hostname.xml      |   13 +
 tests/qemumigparamsdata/tls.json              |   11 +
 tests/qemumigparamsdata/tls.reply             |   14 +
 tests/qemumigparamsdata/tls.xml               |   13 +
 tests/qemumigparamsdata/unsupported.json      |    3 +
 tests/qemumigparamsdata/unsupported.reply     |    7 +
 tests/qemumigparamsdata/unsupported.xml       |    4 +
 tests/qemumigparamstest.c                     |  242 ++++
 tests/qemumonitorjsontest.c                   |  113 +-
 .../migration-in-params-in.xml                |  400 ++++++
 .../migration-in-params-out.xml               |    1 +
 .../migration-out-nbd-out.xml                 |  450 ++++++-
 .../migration-out-params-in.xml               |  414 ++++++
 .../migration-out-params-out.xml              |    1 +
 tests/qemuxml2xmltest.c                       |    2 +
 46 files changed, 3456 insertions(+), 1316 deletions(-)
 create mode 100644 src/qemu/qemu_migration_params.c
 create mode 100644 src/qemu/qemu_migration_params.h
 create mode 100644 src/qemu/qemu_migration_paramspriv.h
 create mode 100644 tests/qemumigparamsdata/basic.json
 create mode 100644 tests/qemumigparamsdata/basic.reply
 create mode 100644 tests/qemumigparamsdata/basic.xml
 create mode 100644 tests/qemumigparamsdata/empty.json
 create mode 100644 tests/qemumigparamsdata/empty.reply
 create mode 100644 tests/qemumigparamsdata/empty.xml
 create mode 100644 tests/qemumigparamsdata/tls-enabled.json
 create mode 100644 tests/qemumigparamsdata/tls-enabled.reply
 create mode 100644 tests/qemumigparamsdata/tls-enabled.xml
 create mode 100644 tests/qemumigparamsdata/tls-hostname.json
 create mode 100644 tests/qemumigparamsdata/tls-hostname.reply
 create mode 100644 tests/qemumigparamsdata/tls-hostname.xml
 create mode 100644 tests/qemumigparamsdata/tls.json
 create mode 100644 tests/qemumigparamsdata/tls.reply
 create mode 100644 tests/qemumigparamsdata/tls.xml
 create mode 100644 tests/qemumigparamsdata/unsupported.json
 create mode 100644 tests/qemumigparamsdata/unsupported.reply
 create mode 100644 tests/qemumigparamsdata/unsupported.xml
 create mode 100644 tests/qemumigparamstest.c
 create mode 100644 tests/qemustatusxml2xmldata/migration-in-params-in.xml
 create mode 120000 tests/qemustatusxml2xmldata/migration-in-params-out.xml
 mode change 120000 => 100644 tests/qemustatusxml2xmldata/migration-out-nbd-out.xml
 create mode 100644 tests/qemustatusxml2xmldata/migration-out-params-in.xml
 create mode 120000 tests/qemustatusxml2xmldata/migration-out-params-out.xml

-- 
2.17.0

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 00/68] qemu: Refactor migration parameters
Posted by Jiri Denemark 5 years, 11 months ago
On Wed, Apr 04, 2018 at 16:40:49 +0200, Jiri Denemark wrote:
> This series changes the way we handle migration parameters and
> capabilities with several goals:
> 
> - make it all consistent and avoid storing the same parameters in
>   several structs
> - reduce the number of QMP commands we use for setting migration
>   capabilities
> - concentrate the logic in a separate file and make the code for
>   migration parameters and capabilities in qemu_migration.c less
>   complicated
> - reset all parameters and capabilities at the end of migration
> - make adding new parameters and capabilities easier
> 
> Jiri Denemark (68):
>   qemu: Move qemuDomainCheckMigrationCapabilities
>   qemu: Rename qemuMigrationAnyCapsGet as qemuMigrationCapsGet
>   qemu: Rename qemuMigrationParams
>   qemu: New file for all APIs related to migration parameters
>   qemu: Reindent qemuMigrationParamsSetEmptyTLS

I realized I forgot to do a few more changes on of which will affect
several commits up until here.

Thanks for the review so far, but you can ignore this series now and
continue with v2 once I finish it.

Jirka

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list