With this series applied I was able to perform Live Update of Xenstore
running in a PVH stubdom.
The main problem to solve was to keep the 9pfs device used to store and
later retrieve the Xenstore state usable across kexec(). This has been
achieved by using a module containing the shared pages of the device
and the related config data. This module is then passed to the new
kernel via linking it to the struct hvm_start_info.
The rest of the series are some missing bits and pieces to have a sane
state when activating the new kernel, and some minor fixes and
cleanups.
In order to be able to perform a Xenstore live update an associated
patch series for Xen is needed. The Xen series is depending on this
Mini-OS patch series.
Changes in V2:
- patches 1-5 of V1 have been applied already
- addressed the (minor) comments to V1
Juergen Gross (14):
mm: don't add module pages to free memory
kexec: fix physical addresses in start info data
e820: don't count lapic page as initially reserved
kexec: restructure building the start info data
e820: use special type for software reserved memory
mini-os: config: add support for config items with numerical values
mini-os: kexec: add support for handing over some memory across kexec
kexec: add support for allocating pages from kexec module memory
9pfs: store bepath in struct struct dev_9pfs
9pfs: refactor init_9pfront()
gnttab: remove gnttab_alloc_and_grant() function
gnttab: add function to obtain memory address from grantref
9pfs: add support to keep device opened across kexec
events: export bind_evtchn()
9pfront.c | 267 +++++++++++++++++++++++++++++++-----------
Config.mk | 6 +
arch/x86/kexec.c | 123 +++++++++++++++++--
arch/x86/mm.c | 95 +++++++++++++++
arch/x86/setup.c | 28 +++++
e820.c | 11 +-
events.c | 1 +
gnttab.c | 15 +--
include/9pfront.h | 9 ++
include/e820.h | 2 +
include/gnttab.h | 2 +-
include/kernel.h | 1 +
include/kexec.h | 122 +++++++++++++++++++
include/mm.h | 1 +
include/x86/arch_mm.h | 1 +
kexec.c | 118 +++++++++++++++++++
mm.c | 27 ++++-
17 files changed, 733 insertions(+), 96 deletions(-)
--
2.43.0