[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v8 00/11] toolstack-assisted approach to PVHVM guest kexec
This patch series provides x86 PVHVM domains with an ability to perform kexec/kdump-style operations. The list of currently known issues blocking kexec (and why the series is required) is: - Bound event channels. - Registered vcpu_info. - PIRQ/emuirq mappings. - shared_info frame after XENMAPSPACE_shared_info operation. - Active grant mappings. Previously there were several attempts to solve these issues in different ways: - Individual 'shutdown' hypercalls (e.g. VCPUOP_reset_vcpu_info) (we agreed that one 'reset everything' hypercall is better). - Try building new domain reassigning old domain's memory (memory reassignment turned out being too cumbersome). - Toolstack-less 'reset everything' (turned out being impossible because there is not enough knowledge in the hypervisor, e.g. interdomain channels are being set up by the toolstack). This series is a mix of the previously sent 'toolstack-based' and 'reset everything' series. Here are some key points: - No new domain is created. - Domain is asking for soft reset with SCHEDOP_shutdown with SHUTDOWN_soft_reset shutdown reason. - XEN_DOMCTL_soft_reset is being called by the toolstack. - Device model is being restarted. Patches from 'toolstack-based' series: - "[PATCH v8 01/11] xen: introduce SHUTDOWN_soft_reset shutdown reason" - "[PATCH v8 02/11] libxl: support SHUTDOWN_soft_reset shutdown reason" (with Ian's ack) - "[PATCH v8 03/11] xl: introduce enum domain_restart_type" (with Ian's ack) - "[PATCH v8 10/11] libxc: add XC_DEVICE_MODEL_SAVE_FILE" (with Ian's ack) - "[PATCH v8 11/11] (lib)xl: soft reset support" (heavily rewritten) Patches from 'reset everything' RFC: - "[PATCH v8 04/11] xen: evtchn: make evtchn_reset() ready for soft reset" - "[PATCH v8 06/11] xen: Introduce XEN_DOMCTL_soft_reset" - "[PATCH v8 08/11] xen: arch-specific hooks for domain_soft_reset()" New patches: - "[PATCH v8 05/11] xen: grant_table: implement grant_table_warn_active_grants()" - "[PATCH v8 07/11] flask: DOMCTL_soft_reset support" - "[PATCH v8 09/11] libxc: support XEN_DOMCTL_soft_reset operation" With regards to active grants. In this series we restart domain's device model, remove it from xenstore and introduce it back. The only 'misbehaving' backend keeping active mapping I currently observe is xenconsoled: currently it has no interface to disconnect from a domain (it just periodically scans all domains to determine if any of them are dead). This is not an issue for us because: - This matches standard domain startup as this grant mapping is being set up by the toolstack. - Guest domain is aware of this special page. grant_table_warn_active_grants() is required to find possible misbehaving backends in future. It can be easily dropped from this series. Some changes are mentioned in individual patches. v7 of the 'toolstack-based approach to pvhvm guest kexec' is available here: http://lists.xenproject.org/archives/html/xen-devel/2015-05/msg03558.html RFC of the 'reset everything approach to PVHVM guest kexec' is available here: http://lists.xenproject.org/archives/html/xen-devel/2015-06/msg00446.html docs/man/xl.cfg.pod.5 | 10 ++ tools/flask/policy/policy/modules/xen/xen.if | 2 +- tools/libxc/include/xenctrl.h | 3 + tools/libxc/include/xenguest.h | 2 + tools/libxc/xc_domain.c | 9 ++ tools/libxl/libxl.c | 16 ++- tools/libxl/libxl.h | 12 ++ tools/libxl/libxl_create.c | 181 +++++++++++++++++++++++---- tools/libxl/libxl_dm.c | 2 +- tools/libxl/libxl_internal.h | 4 + tools/libxl/libxl_types.idl | 4 + tools/libxl/xl.h | 7 ++ tools/libxl/xl_cmdimpl.c | 58 ++++++--- tools/python/xen/lowlevel/xl/xl.c | 1 + xen/arch/arm/domain.c | 5 + xen/arch/x86/domain.c | 79 ++++++++++++ xen/arch/x86/hvm/hvm.c | 2 +- xen/common/domain.c | 34 ++++- xen/common/domctl.c | 9 ++ xen/common/event_channel.c | 38 +++--- xen/common/grant_table.c | 31 +++++ xen/common/shutdown.c | 6 + xen/include/asm-x86/hvm/hvm.h | 2 + xen/include/public/domctl.h | 1 + xen/include/public/sched.h | 3 +- xen/include/xen/domain.h | 2 + xen/include/xen/event.h | 3 + xen/include/xen/grant_table.h | 5 + xen/include/xen/sched.h | 2 + xen/xsm/flask/hooks.c | 3 + xen/xsm/flask/policy/access_vectors | 2 + 31 files changed, 470 insertions(+), 68 deletions(-) -- 2.4.2 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |