xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V5 00/32] JSON infrastructure, new "xl-json" format and domain configuration synchronization
@ 2014-05-13 21:53 Wei Liu
  2014-05-13 21:53 ` [PATCH V5 01/32] libxl: make cpupool_qualifier_to_cpupoolid a library function Wei Liu
                   ` (32 more replies)
  0 siblings, 33 replies; 127+ messages in thread
From: Wei Liu @ 2014-05-13 21:53 UTC (permalink / raw)
  To: xen-devel; +Cc: Wei Liu, ian.jackson, ian.campbell

This series contains all patches necessary to fully preserve domain
configurations across save / restore.

It's divided to several parts (see patch list):
1. first few patches are bugfixes, doc updates and prerequisite changes
2. JSON infrastructure to manipulate domain configuration
3. new "libxl-json" format
4. update stored domain configuration as we update runtime domain configs

I've run test-amd64-amd64-xl and test-amd64-amd64-xl-qemuu-debianhvm-amd64
in OSSTest standalone mode, this series passed both testcases. 

I've marked patch list with different legends for ease of review.
  A -- Acked
  C -- Changed since last round
  M -- Minor update, no functional change
  No marker -- New in this round

Wei.

Changes in V5:
* fix bugs in JSON generator and parser
* push vcpu affinity pinning to libxl
* don't generate default values in JSON output
* change JSON output to generate "keyvar.discriminator"
* synchronization now done in libxl

Changes in V4:
* minor bug fixes to parser
* push option parsing down to libxl level
* introduce deep copy functions
* handle domain configuration changes when setting memory targets
* handle domain configuration changes when plug / unplug device

Changes in V3:
* remove libxl__integer_parse_json and add functions for specific
  integer types
* relax some checkings on invalid inputs
* libxl__json_parse_callback now takes gc instead of ctx
* rewrite "allow basic JSON type objects generation"
* ... and address some other misc things mentioned by IanC

Changes in V2:
* address IanC's comments on JSON parser
* add "xl-json" format patch

Wei Liu (32):

PART 1:

    libxl: make cpupool_qualifier_to_cpupoolid a library function
 M  xl / libxl: push parsing of SSID and CPU pool ID down to libxl
    xl / libxl: push VCPU affinity pinning down to libxl
    libxl: libxl_uuid_copy now taks a ctx argument
    xl: remove parsing of "vncviewer" option in xl domain config file
 A  libxl: fix memory leak in libxl_cpuid_dispose
    libxl.h: document the paradigm of using libxl types
    libxl.h: document libxl_<type>_to_json
 C  libxl_internal.h: move / add some libxl defbool #define here
    libxl: fix JSON generator for uint64_t

PART 2:

 A  libxl IDL: rename json_fn to json_gen_fn
 A  libxl_json: introduce libxl__object_from_json
 A  libxl_internal: make JSON_* types a bit-field
 A  libxl_internal.h: introduce
      libxl__json_object_is_{null,number,double}
    libxl_internal.h: introduce libxl__json_object_get_number
 A  libxl_json: introduce parser functions for builtin types
 A  libxl_json: allow basic JSON type objects generation
    libxl/gentypes.py: special-case KeyedUnion map handle generation
    libxl/gentypes.py: don't generate default values
 C  libxl IDL: generate code to parse libxl__json_object to libxl_FOO
      struct
 A  libxl/gentest.py: test JSON parser
 M  libxl: introduce libxl_key_value_list_length
 M  libxl: introduce libxl_cpuid_policy_list_length
 C  libxl: copy function for builtin types
 C  libxl IDL: generate deep copy functions
 A  libxl/gentest.py: test deep copy functions

PART 3:

    libxl: libxl-json format and load/store configuration functions
    libxl: store up-to-date domain configuration as we create domain
    xl: use "libxl-json" format

PART 4:

 M  libxl: consider force removal of device successful
    libxl: update domain configuration when updating memory targets
    libxl: synchronize configuration when we plug / unplug device
  
 docs/man/xl.cfg.pod.5                |    4 -
 tools/libxl/gentest.py               |   64 +++++-
 tools/libxl/gentypes.py              |  259 ++++++++++++++++++++-
 tools/libxl/idl.py                   |   40 +++-
 tools/libxl/idl.txt                  |   21 +-
 tools/libxl/libxl.c                  |  364 +++++++++++++++++++++++++++---
 tools/libxl/libxl.h                  |   99 +++++++-
 tools/libxl/libxl_cpuid.c            |  135 +++++++++--
 tools/libxl/libxl_create.c           |  112 ++++++++-
 tools/libxl/libxl_device.c           |   12 +-
 tools/libxl/libxl_dm.c               |    4 +
 tools/libxl/libxl_dom.c              |   48 ++++
 tools/libxl/libxl_internal.h         |   62 ++++-
 tools/libxl/libxl_json.c             |  411 +++++++++++++++++++++++++++++-----
 tools/libxl/libxl_json.h             |   37 ++-
 tools/libxl/libxl_nocpuid.c          |   13 ++
 tools/libxl/libxl_types.idl          |   72 +++---
 tools/libxl/libxl_types_internal.idl |    4 +-
 tools/libxl/libxl_utils.c            |   58 ++++-
 tools/libxl/libxl_utils.h            |    7 +
 tools/libxl/libxl_uuid.c             |    4 +-
 tools/libxl/libxl_uuid.h             |    6 +-
 tools/libxl/xl_cmdimpl.c             |  374 +++++++++++++------------------
 tools/libxl/xl_sxp.c                 |    7 +-
 24 files changed, 1810 insertions(+), 407 deletions(-)

-- 
1.7.10.4

^ permalink raw reply	[flat|nested] 127+ messages in thread

end of thread, other threads:[~2014-06-03 10:34 UTC | newest]

Thread overview: 127+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-13 21:53 [PATCH V5 00/32] JSON infrastructure, new "xl-json" format and domain configuration synchronization Wei Liu
2014-05-13 21:53 ` [PATCH V5 01/32] libxl: make cpupool_qualifier_to_cpupoolid a library function Wei Liu
2014-05-15 16:28   ` Ian Campbell
2014-05-20 14:47     ` Ian Jackson
2014-05-20 17:24       ` Wei Liu
2014-05-21  8:27         ` Ian Campbell
2014-05-21  8:37         ` Comments on LIBXL_HAVE_* defines (Was: Re: [PATCH V5 01/32] libxl: make cpupool_qualifier_to_cpupoolid a library function) Ian Campbell
2014-05-22  9:35           ` George Dunlap
2014-05-27 23:04           ` Wei Liu
2014-05-13 21:53 ` [PATCH V5 02/32] xl / libxl: push parsing of SSID and CPU pool ID down to libxl Wei Liu
2014-05-15 16:38   ` Ian Campbell
2014-05-15 17:11     ` Wei Liu
2014-05-13 21:53 ` [PATCH V5 03/32] xl / libxl: push VCPU affinity pinning " Wei Liu
2014-05-15  0:59   ` Dario Faggioli
2014-05-15  9:24     ` Wei Liu
2014-05-15 15:31       ` Dario Faggioli
2014-05-15 15:37         ` Wei Liu
2014-05-15 16:45   ` Ian Campbell
2014-05-15 17:06     ` Wei Liu
2014-05-15 17:19       ` Wei Liu
2014-05-16  9:51         ` Ian Campbell
2014-05-16  8:10       ` Dario Faggioli
2014-05-16  9:57       ` Ian Campbell
2014-05-16 10:15         ` Wei Liu
2014-05-16 10:28           ` Ian Campbell
2014-05-13 21:53 ` [PATCH V5 04/32] libxl: libxl_uuid_copy now taks a ctx argument Wei Liu
2014-05-15 16:51   ` Ian Campbell
2014-05-15 17:13     ` Wei Liu
2014-05-16  9:46       ` Ian Campbell
2014-05-16 10:18         ` Wei Liu
2014-05-16 10:30           ` Ian Campbell
2014-05-16 11:17             ` Wei Liu
2014-05-16 11:21               ` Wei Liu
2014-05-16 11:23                 ` Ian Campbell
2014-05-16 11:28                   ` Wei Liu
2014-05-16 11:31                     ` Ian Campbell
2014-05-13 21:53 ` [PATCH V5 05/32] xl: remove parsing of "vncviewer" option in xl domain config file Wei Liu
2014-05-20 12:44   ` Ian Campbell
2014-05-13 21:53 ` [PATCH V5 06/32] libxl: fix memory leak in libxl_cpuid_dispose Wei Liu
2014-05-13 21:53 ` [PATCH V5 07/32] libxl.h: document the paradigm of using libxl types Wei Liu
2014-05-20 12:49   ` Ian Campbell
2014-05-20 14:54     ` Ian Jackson
2014-05-20 15:02       ` Ian Campbell
2014-05-13 21:53 ` [PATCH V5 08/32] libxl.h: document libxl_<type>_to_json Wei Liu
2014-05-20 12:50   ` Ian Campbell
2014-05-13 21:53 ` [PATCH V5 09/32] libxl_internal.h: move / add some libxl defbool #define here Wei Liu
2014-05-20 12:51   ` Ian Campbell
2014-05-13 21:53 ` [PATCH V5 10/32] libxl: fix JSON generator for uint64_t Wei Liu
2014-05-20 12:55   ` Ian Campbell
2014-05-20 13:15     ` Wei Liu
2014-05-13 21:53 ` [PATCH V5 11/32] libxl IDL: rename json_fn to json_gen_fn Wei Liu
2014-05-13 21:53 ` [PATCH V5 12/32] libxl_json: introduce libxl__object_from_json Wei Liu
2014-05-13 21:53 ` [PATCH V5 13/32] libxl_internal: make JSON_* types a bit-field Wei Liu
2014-05-13 21:53 ` [PATCH V5 14/32] libxl_internal.h: introduce libxl__json_object_is_{null, number, double} Wei Liu
2014-05-13 21:53 ` [PATCH V5 15/32] libxl_internal.h: introduce libxl__json_object_get_number Wei Liu
2014-05-20 12:56   ` Ian Campbell
2014-05-20 15:11     ` Ian Campbell
2014-05-13 21:53 ` [PATCH V5 16/32] libxl_json: introduce parser functions for builtin types Wei Liu
2014-05-13 21:53 ` [PATCH V5 17/32] libxl_json: allow basic JSON type objects generation Wei Liu
2014-05-13 21:54 ` [PATCH V5 18/32] libxl/gentypes.py: special-case KeyedUnion map handle generation Wei Liu
2014-05-20 13:26   ` Ian Campbell
2014-05-13 21:54 ` [PATCH V5 19/32] libxl/gentypes.py: don't generate default values Wei Liu
2014-05-20 13:29   ` Ian Campbell
2014-05-20 17:17     ` Wei Liu
2014-05-21  8:31       ` Ian Campbell
2014-05-13 21:54 ` [PATCH V5 20/32] libxl IDL: generate code to parse libxl__json_object to libxl_FOO struct Wei Liu
2014-05-20 13:35   ` Ian Campbell
2014-06-01 17:43     ` Wei Liu
2014-05-13 21:54 ` [PATCH V5 21/32] libxl/gentest.py: test JSON parser Wei Liu
2014-05-13 21:54 ` [PATCH V5 22/32] libxl: introduce libxl_key_value_list_length Wei Liu
2014-05-20 13:36   ` Ian Campbell
2014-05-13 21:54 ` [PATCH V5 23/32] libxl: introduce libxl_cpuid_policy_list_length Wei Liu
2014-05-20 13:36   ` Ian Campbell
2014-05-13 21:54 ` [PATCH V5 24/32] libxl: copy function for builtin types Wei Liu
2014-05-20 13:39   ` Ian Campbell
2014-05-13 21:54 ` [PATCH V5 25/32] libxl IDL: generate deep copy functions Wei Liu
2014-05-20 13:42   ` Ian Campbell
2014-05-13 21:54 ` [PATCH V5 26/32] libxl/gentest.py: test " Wei Liu
2014-05-13 21:54 ` [PATCH V5 27/32] libxl: libxl-json format and load/store configuration functions Wei Liu
2014-05-20 14:03   ` Ian Campbell
2014-06-01 18:41     ` Wei Liu
2014-06-02 16:19       ` Ian Campbell
2014-06-02 19:56         ` Wei Liu
2014-05-20 15:01   ` Ian Jackson
2014-06-01 18:46     ` Wei Liu
2014-05-13 21:54 ` [PATCH V5 28/32] libxl: store up-to-date domain configuration as we create domain Wei Liu
2014-05-20 14:12   ` Ian Campbell
2014-06-01 19:02     ` Wei Liu
2014-06-02 16:21       ` Ian Campbell
2014-05-20 15:04   ` Ian Jackson
2014-05-13 21:54 ` [PATCH V5 29/32] xl: use "libxl-json" format Wei Liu
2014-05-20 14:23   ` Ian Campbell
2014-05-20 15:13     ` Ian Jackson
2014-05-20 15:31       ` Ian Campbell
2014-06-01 19:37     ` Wei Liu
2014-06-02 16:30       ` Ian Campbell
2014-06-03 10:02         ` Wei Liu
2014-06-03 10:34           ` Ian Campbell
2014-05-20 15:11   ` Ian Jackson
2014-05-20 15:15     ` Ian Campbell
2014-05-20 15:39       ` Ian Jackson
2014-06-01 19:18         ` Wei Liu
2014-06-01 19:07     ` Wei Liu
2014-06-02 16:23       ` Ian Campbell
2014-05-13 21:54 ` [PATCH V5 30/32] libxl: consider force removal of device successful Wei Liu
2014-05-20 14:26   ` Ian Campbell
2014-06-01 19:44     ` Wei Liu
2014-05-20 15:15   ` Ian Jackson
2014-06-01 19:46     ` Wei Liu
2014-05-13 21:54 ` [PATCH V5 31/32] libxl: update domain configuration when updating memory targets Wei Liu
2014-05-20 14:32   ` Ian Campbell
2014-06-01 20:00     ` Wei Liu
2014-05-20 15:21   ` Ian Jackson
2014-05-20 15:35     ` Ian Campbell
2014-05-20 15:44       ` Ian Jackson
2014-05-20 15:55         ` Ian Campbell
2014-05-20 16:03           ` Ian Jackson
2014-05-21  8:38             ` Ian Campbell
2014-06-01 20:51             ` Wei Liu
2014-06-01 20:22     ` Wei Liu
2014-06-02 16:32       ` Ian Campbell
2014-05-13 21:54 ` [PATCH V5 32/32] libxl: synchronize configuration when we plug / unplug device Wei Liu
2014-05-20 14:35   ` Ian Campbell
2014-05-20 15:33   ` Ian Jackson
2014-06-01 20:57     ` Wei Liu
2014-06-02 16:33       ` Ian Campbell
2014-05-21 10:18 ` [PATCH V5 00/32] JSON infrastructure, new "xl-json" format and domain configuration synchronization Ian Campbell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).