[libvirt] [PATCH v2 00/73] qemu: Refactor migration parameters

Jiri Denemark posted 73 patches 6 years ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/libvirt tags/patchew/cover.1523456479.git.jdenemar@redhat.com
Test syntax-check passed
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                     |  926 ++---------
src/qemu/qemu_migration.h                     |   66 +-
src/qemu/qemu_migration_cookie.c              |  136 +-
src/qemu/qemu_migration_cookie.h              |   15 +
src/qemu/qemu_migration_params.c              | 1351 +++++++++++++++++
src/qemu/qemu_migration_params.h              |  156 ++
src/qemu/qemu_migration_paramspriv.h          |   35 +
src/qemu/qemu_monitor.c                       |   76 +-
src/qemu/qemu_monitor.h                       |   56 +-
src/qemu/qemu_monitor_json.c                  |  133 +-
src/qemu/qemu_monitor_json.h                  |    9 +-
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                   |  123 +-
.../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 +
48 files changed, 3766 insertions(+), 1368 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 v2 00/73] qemu: Refactor migration parameters
Posted by Jiri Denemark 6 years 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

Version 2:
- qemuDomainCheckMigrationCapabilities is moved to
  qemu_migration_params.c (rather than to qemu_migration.c)
- supported migration capabilities are sent via migration cookie so that
  some caps may be automatically enabled only when both sides support
  them

Jiri Denemark (73):
  qemu: Rename qemuMigrationAnyCapsGet as qemuMigrationCapsGet
  qemu: Rename qemuMigrationParams
  qemu: New file for all APIs related to migration parameters
  qemu: Move qemuDomainCheckMigrationCapabilities
  qemu: Move qemuMigrationCapsGet
  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: Export qemuMigrationParams{To,From}JSON for tests
  qemu: Move qemuMonitorMigrationParams structure
  qemu: Refactor qemuMigrationParams
  qemu: Move migration capabilities JSON formatting
  qemu: Move qemuMonitorMigrationCaps enum
  qemu: Add support for sending capabilities in migration cookie
  qemu: Check remote caps when enabling always-on capabilities
  qemu: Generalize qemuMigrationParamsGetDowntimeLimit
  qemu: Set migration parameters automatically
  qemu: Properly reset migration params when libvirtd restarts
  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                     |  926 ++---------
 src/qemu/qemu_migration.h                     |   66 +-
 src/qemu/qemu_migration_cookie.c              |  136 +-
 src/qemu/qemu_migration_cookie.h              |   15 +
 src/qemu/qemu_migration_params.c              | 1351 +++++++++++++++++
 src/qemu/qemu_migration_params.h              |  156 ++
 src/qemu/qemu_migration_paramspriv.h          |   35 +
 src/qemu/qemu_monitor.c                       |   76 +-
 src/qemu/qemu_monitor.h                       |   56 +-
 src/qemu/qemu_monitor_json.c                  |  133 +-
 src/qemu/qemu_monitor_json.h                  |    9 +-
 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                   |  123 +-
 .../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 +
 48 files changed, 3766 insertions(+), 1368 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 v2 00/73] qemu: Refactor migration parameters
Posted by Michal Privoznik 6 years ago
On 04/11/2018 04:40 PM, 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
> 

This perhaps deserves news.xml entry?

Michal

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH v2 00/73] qemu: Refactor migration parameters
Posted by Jiri Denemark 6 years ago
On Tue, Apr 17, 2018 at 11:34:25 +0200, Michal Privoznik wrote:
> On 04/11/2018 04:40 PM, 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
> > 
> 
> This perhaps deserves news.xml entry?

It doesn't. The changes which are visible to libvirt users are very
small and only relevant to some corner cases.

Jirka

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