[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH RFC 0/4] 'reset everything' approach to PVHVM guest kexec
Jan and Tim, last week you expressed some concerns about if the toolstack-based approach to PVHVM guest kexec is the best. Here you can see the 'reset everything' approach to the same problem. It is the bare minimum of what should be done to make it possible for the new kernel to boot. Despite the fact that this implementation is much smaller in size and that it doesn't require any toolstack changes I'm personally in favor of the previous toolstack-based approach as it looks more general, less fragile and easier to support to me. Please let me know your thoughts. I used SCHEDOP_ interface here as DOMCTL_* is not currently supported in Linux kernel and I seriously doubt we need to support something different from DOMID_SELF for soft reset. Current Linux kernel requires two changes to make use of these hypervisor changes: 1) As XS_RESET_WATCHES is not supported by oxenstored we need to try removing the watch in case add operation failed, e.g.: --- a/drivers/xen/xenbus/xenbus_xs.c +++ b/drivers/xen/xenbus/xenbus_xs.c @@ -712,6 +712,10 @@ int register_xenbus_watch(struct xenbus_watch *watch) spin_unlock(&watches_lock); err = xs_watch(watch->node, token); + if (err) { + if (!xs_unwatch(watch->node, token)) + err = xs_watch(watch->node, token); + } if (err) { spin_lock(&watches_lock); 2) HYPERVISOR_sched_op(SCHEDOP_soft_reset, NULL) is supposed to be called in kexec/kdump situation (via machine_ops.shutdown and machine_ops.crash_shutdown handlers). v7 of the toolstack-based approach is available here: http://comments.gmane.org/gmane.comp.emulators.xen.devel/245183 (for some reason it is missing on http://lists.xen.org/archives/html/xen-devel/2015-05/, there are no messages in May after May, 26 and this series was sent on May, 27) Vitaly Kuznetsov (4): xen: evtchn: make evtchn_reset() ready for soft reset xen: grant_table: implement grant_table_soft_reset() xen: implement SCHEDOP_soft_reset xen: arch-specific hooks for domain_soft_reset() xen/arch/arm/domain.c | 5 +++ xen/arch/x86/domain.c | 73 +++++++++++++++++++++++++++++++++++++++++++ xen/common/domain.c | 39 ++++++++++++++++++++--- xen/common/event_channel.c | 52 +++++++++++++++++------------- xen/common/grant_table.c | 62 ++++++++++++++++++++++++++++++++++++ xen/common/schedule.c | 4 +++ xen/include/public/sched.h | 7 +++++ xen/include/xen/domain.h | 4 +++ xen/include/xen/event.h | 3 ++ xen/include/xen/grant_table.h | 6 ++++ xen/include/xen/sched.h | 1 + 11 files changed, 231 insertions(+), 25 deletions(-) -- 1.9.3 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |