All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.