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

Re: [PATCH v11 00/27] tools/xenstore: support live update for xenstored

On 14.01.21 16:37, Juergen Gross wrote:
Today Xenstore is not restartable. This means a Xen server needing an
update of xenstored has to be rebooted in order to let this update
become effective.

This patch series is changing that: The internal state of xenstored
(the contents of Xenstore, all connections to various clients like
programs or other domains, and watches) is saved in a defined format
and a new binary is being activated consuming the old state. All
connections are being restored and the new Xenstore binary will
continue where the old one stopped.

This patch series has been under (secret) development until V9.
It has been posted to xen-devel only from V10 onwards.

There will be a similar series for oxenstored posted.

Xenstore-stubdom is not yet supported, but I'm planning to start
working on that soon.

Changes in V11:
- dropped patches 1-3 of V10 as already appled
- new patches 1-4 (Andrew Cooper): more libxenevtchn cleanup
- new patch 12 (Edwin Torok): handle timeout of LU completely in
   xenstored instead of split xenstore-control/xenstored. I've kept
   the xenstore-control timeout handling for the case of premature
   LU supporting downstream versions

Changes in V10 (for the members of the security team):
- dropped patch 6 as requested by Andrew

Juergen Gross (26):
   tools/libxenevtchn: switch to standard xen coding style
   tools/libxenevtchn: rename open_flags to flags
   tools/libxenevtchn: check xenevtchn_open() flags for not supported
   tools/libxenevtchn: propagate xenevtchn_open() flags parameter
   tools/libxenevtchn: add possibility to not close file descriptor on
   tools/xenstore: refactor XS_CONTROL handling
   tools/xenstore: add live update command to xenstore-control
   tools/xenstore: add basic live-update command parsing
   tools/xenstore: introduce live update status block
   tools/xenstore: save new binary for live update
   tools/xenstore: add command line handling for live update
   tools/xenstore: add support for delaying execution of a xenstore
   tools/xenstore: add the basic framework for doing the live update
   tools/xenstore: allow live update only with no transaction active
   docs: update the xenstore migration stream documentation
   tools/xenstore: add include file for state structure definitions
   tools/xenstore: dump the xenstore state for live update
   tools/xenstore: handle CLOEXEC flag for local files and pipes
   tools/xenstore: split off domain introduction from do_introduce()
   tools/xenstore: evaluate the live update flag when starting
   tools/xenstore: read internal state when doing live upgrade
   tools/xenstore: add reading global state for live update
   tools/xenstore: add read connection state for live update
   tools/xenstore: add read node state for live update
   tools/xenstore: add read watch state for live update
   tools/xenstore: activate new binary for live update

Julien Grall (1):
   tools/xenstore: handle dying domains in live update

  docs/designs/xenstore-migration.md      |  19 +-
  docs/misc/xenstore.txt                  |  21 +
  tools/include/xenevtchn.h               |  18 +-
  tools/libs/evtchn/Makefile              |   2 +-
  tools/libs/evtchn/core.c                |  74 ++-
  tools/libs/evtchn/freebsd.c             |  33 +-
  tools/libs/evtchn/libxenevtchn.map      |   4 +
  tools/libs/evtchn/linux.c               |  12 +-
  tools/libs/evtchn/minios.c              | 104 +++-
  tools/libs/evtchn/netbsd.c              |  24 +-
  tools/libs/evtchn/private.h             |   2 +-
  tools/libs/evtchn/solaris.c             |  14 +-
  tools/xenstore/Makefile                 |   3 +-
  tools/xenstore/include/xenstore_state.h | 131 +++++
  tools/xenstore/utils.c                  |  17 +
  tools/xenstore/utils.h                  |   6 +
  tools/xenstore/xenstore_control.c       | 333 +++++++++++-
  tools/xenstore/xenstored_control.c      | 665 +++++++++++++++++++++++-
  tools/xenstore/xenstored_control.h      |   1 +
  tools/xenstore/xenstored_core.c         | 549 +++++++++++++++++--
  tools/xenstore/xenstored_core.h         |  59 +++
  tools/xenstore/xenstored_domain.c       | 301 ++++++++---
  tools/xenstore/xenstored_domain.h       |  11 +-
  tools/xenstore/xenstored_posix.c        |  13 +-
  tools/xenstore/xenstored_transaction.c  |   5 +
  tools/xenstore/xenstored_watch.c        | 171 ++++--
  tools/xenstore/xenstored_watch.h        |   5 +
  27 files changed, 2354 insertions(+), 243 deletions(-)
  create mode 100644 tools/xenstore/include/xenstore_state.h

There is something wrong with the patches. Please ignore (at least from
patch 12 onwards).


Attachment: OpenPGP_0xB0DE9DD628BF132F.asc
Description: application/pgp-keys

Attachment: OpenPGP_signature
Description: OpenPGP digital signature



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.