|
[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 |