[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC 0/4] 'reset everything' approach to PVHVM guest kexec
On Wed, Jun 03, 2015 at 03:35:18PM +0200, Vitaly Kuznetsov wrote: > 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.: The changeset to implement XS_RESET_WATCHES in cxenstored is 1f9d04fb021cbf35cc420d401a88c696d6524c14 It doesn't look too complicated to do that in oxenstored. Dave (oxenstored maintainer, CC'ed) might have insight. Wei. > --- 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 |