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
> bits
> tools/libxenevtchn: propagate xenevtchn_open() flags parameter
> tools/libxenevtchn: add possibility to not close file descriptor on
> exec
> 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
> request
> 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).
Juergen