[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.