|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [PATCH v10 00/25] tools/xenstore: support live update for xenstored
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 for quite some
time. It hasn't been posted to xen-devel until now due to the various
Xenstore related security issues which have become public only today.
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 V10 (for the members of the security team):
- dropped patch 6 as requested by Andrew
Juergen Gross (24):
tools/xenstore: switch barf[_perror]() to use syslog()
tools/xenstore: make set_tdb_key() non-static
tools/xenstore: remove unused cruft from xenstored_domain.c
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 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 | 16 +-
tools/libs/evtchn/Makefile | 2 +-
tools/libs/evtchn/core.c | 45 +-
tools/libs/evtchn/freebsd.c | 9 +-
tools/libs/evtchn/libxenevtchn.map | 4 +
tools/libs/evtchn/linux.c | 9 +-
tools/libs/evtchn/minios.c | 6 +-
tools/libs/evtchn/netbsd.c | 2 +-
tools/libs/evtchn/private.h | 2 +-
tools/libs/evtchn/solaris.c | 2 +-
tools/xenstore/Makefile | 3 +-
tools/xenstore/include/xenstore_state.h | 131 +++++
tools/xenstore/utils.c | 20 +
tools/xenstore/utils.h | 6 +
tools/xenstore/xenstore_control.c | 332 ++++++++++++-
tools/xenstore/xenstored_control.c | 612 +++++++++++++++++++++++-
tools/xenstore/xenstored_control.h | 1 +
tools/xenstore/xenstored_core.c | 510 ++++++++++++++++++--
tools/xenstore/xenstored_core.h | 40 ++
tools/xenstore/xenstored_domain.c | 312 +++++++++---
tools/xenstore/xenstored_domain.h | 14 +-
tools/xenstore/xenstored_posix.c | 13 +-
tools/xenstore/xenstored_transaction.c | 11 +-
tools/xenstore/xenstored_watch.c | 171 +++++--
tools/xenstore/xenstored_watch.h | 5 +
27 files changed, 2103 insertions(+), 215 deletions(-)
create mode 100644 tools/xenstore/include/xenstore_state.h
--
2.26.2
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |