Re: [Xen-devel] [PATCH v7 00/10] toolstack-based approach to pvhvm guest kexec

2015-06-02 Thread Vitaly Kuznetsov
Ian Campbell  writes:

> On Thu, 2015-05-28 at 15:41 +0200, Vitaly Kuznetsov wrote:
>> > I.e. what you currently implement is David's model without Konrad's
>> > later alternative really having been explored? Iiuc David's main
>> > reservation (which I share) was against a myriad of reset-this and
>> > reset-that hypercalls, which Konrad's reset-everything would
>> > address equally well.
>
> FWIW it seems to me that David's suggestion without Konrad's
> modification is the simplest and least fragile approach. Is there some
> impetus to prefer a reset-all hypercall?
>

I'm actually doing a 'proof-of-concept' for the 'reset-all' solution, I
hope to send it out this week. Personally, I think that the
'toolstack-based approach' would be less fragile and easier to support.

> [...]
>> The approach used in this series is not significantly different from how
>> an HVM domain is doing normal reboot: we destroy the original domain and
>> create a new one instead of cleaning up the original one (as it looks
>> safer and much easier I suppose).
>
> Right, that was my first thought too.
>
> Ian.

-- 
  Vitaly

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] [PATCH v7 00/10] toolstack-based approach to pvhvm guest kexec

2015-06-02 Thread Ian Campbell
On Thu, 2015-05-28 at 15:41 +0200, Vitaly Kuznetsov wrote:
> > I.e. what you currently implement is David's model without Konrad's
> > later alternative really having been explored? Iiuc David's main
> > reservation (which I share) was against a myriad of reset-this and
> > reset-that hypercalls, which Konrad's reset-everything would
> > address equally well.

FWIW it seems to me that David's suggestion without Konrad's
modification is the simplest and least fragile approach. Is there some
impetus to prefer a reset-all hypercall?

[...]
> The approach used in this series is not significantly different from how
> an HVM domain is doing normal reboot: we destroy the original domain and
> create a new one instead of cleaning up the original one (as it looks
> safer and much easier I suppose).

Right, that was my first thought too.

Ian.


___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] [PATCH v7 00/10] toolstack-based approach to pvhvm guest kexec

2015-05-28 Thread Vitaly Kuznetsov
"Jan Beulich"  writes:

 On 28.05.15 at 14:27,  wrote:
>> "Jan Beulich"  writes:
>> 
>> On 27.05.15 at 17:25,  wrote:
 This patch series provides x86 PVHVM domains with an ability to perform
 kexec/kdump-style operations.
>>>
>>> Before I get to look at this latest version, may I go a step back and
>>> ask for clarification whether all of these (seemingly fragile)
>>> manipulations are actually needed (such a rationale for the series
>>> would btw be quite good to have in the overview mail, rather than
>>> having to wade through mailing list history). In particular, why is it
>>> that we need a new domain in the first place? After all, native
>>> kexec doesn't imply a new physical machine either. Perhaps that
>>> was discussed a long while back, but I can't seem to find any of
>>> that now that I would like to read through it again.
>> 
>> Yes, here are some highlights from last year's discussion:
>> 
>> http://lists.xen.org/archives/html/xen-devel/2014-08/msg01908.html 
>> 
>> http://lists.xen.org/archives/html/xen-devel/2014-08/msg01979.html 
>
> I.e. what you currently implement is David's model without Konrad's
> later alternative really having been explored? Iiuc David's main
> reservation (which I share) was against a myriad of reset-this and
> reset-that hypercalls, which Konrad's reset-everything would
> address equally well.

I was under an impression Konrad was also suggesting building a new
domain with "instead of chasing down different states (event channels,
grants, vcpu's, pagetables, etc) we would wipe everything to a nice
clean slate" (as we'll have to chase down all this bits with a
'reset-everything' hypercall) but now I'm not sure.

AFAICT If we follow down the 'reset-everything' road it's not going to
be any easier and less fragile. E.g. I don't see an easy way to deal
with grants: even if we can clean all the internal bits we still have
pages mapped to the backend domain (Qemu and other backends) and there
is no easy way to ask them to unmap everything. We could (in theory)
walk through all the pages of our domain replacing all pages which need
replacement with empty pages but we need to temporary assign old pages
somewhere, avoid over-allocation (as e.g. in tot_pages = max_pages case
we can't add a single page to the domain). The support burden of a
'reset-everything' hypercall is also going to be heavier as all newly
added bits will have to be added to it.

The approach used in this series is not significantly different from how
an HVM domain is doing normal reboot: we destroy the original domain and
create a new one instead of cleaning up the original one (as it looks
safer and much easier I suppose).

-- 
  Vitaly

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] [PATCH v7 00/10] toolstack-based approach to pvhvm guest kexec

2015-05-28 Thread Jan Beulich
>>> On 28.05.15 at 14:27,  wrote:
> "Jan Beulich"  writes:
> 
> On 27.05.15 at 17:25,  wrote:
>>> This patch series provides x86 PVHVM domains with an ability to perform
>>> kexec/kdump-style operations.
>>
>> Before I get to look at this latest version, may I go a step back and
>> ask for clarification whether all of these (seemingly fragile)
>> manipulations are actually needed (such a rationale for the series
>> would btw be quite good to have in the overview mail, rather than
>> having to wade through mailing list history). In particular, why is it
>> that we need a new domain in the first place? After all, native
>> kexec doesn't imply a new physical machine either. Perhaps that
>> was discussed a long while back, but I can't seem to find any of
>> that now that I would like to read through it again.
> 
> Yes, here are some highlights from last year's discussion:
> 
> http://lists.xen.org/archives/html/xen-devel/2014-08/msg01908.html 
> 
> http://lists.xen.org/archives/html/xen-devel/2014-08/msg01979.html 

I.e. what you currently implement is David's model without Konrad's
later alternative really having been explored? Iiuc David's main
reservation (which I share) was against a myriad of reset-this and
reset-that hypercalls, which Konrad's reset-everything would
address equally well.

Jan


___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] [PATCH v7 00/10] toolstack-based approach to pvhvm guest kexec

2015-05-28 Thread Vitaly Kuznetsov
"Jan Beulich"  writes:

 On 27.05.15 at 17:25,  wrote:
>> This patch series provides x86 PVHVM domains with an ability to perform
>> kexec/kdump-style operations.
>
> Before I get to look at this latest version, may I go a step back and
> ask for clarification whether all of these (seemingly fragile)
> manipulations are actually needed (such a rationale for the series
> would btw be quite good to have in the overview mail, rather than
> having to wade through mailing list history). In particular, why is it
> that we need a new domain in the first place? After all, native
> kexec doesn't imply a new physical machine either. Perhaps that
> was discussed a long while back, but I can't seem to find any of
> that now that I would like to read through it again.

Yes, here are some highlights from last year's discussion:

http://lists.xen.org/archives/html/xen-devel/2014-08/msg01908.html

http://lists.xen.org/archives/html/xen-devel/2014-08/msg01979.html

http://lists.xen.org/archives/html/xen-devel/2014-08/msg01918.html

-- 
  Vitaly

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] [PATCH v7 00/10] toolstack-based approach to pvhvm guest kexec

2015-05-28 Thread Jan Beulich
>>> On 27.05.15 at 17:25,  wrote:
> This patch series provides x86 PVHVM domains with an ability to perform
> kexec/kdump-style operations.

Before I get to look at this latest version, may I go a step back and
ask for clarification whether all of these (seemingly fragile)
manipulations are actually needed (such a rationale for the series
would btw be quite good to have in the overview mail, rather than
having to wade through mailing list history). In particular, why is it
that we need a new domain in the first place? After all, native
kexec doesn't imply a new physical machine either. Perhaps that
was discussed a long while back, but I can't seem to find any of
that now that I would like to read through it again.

Jan


___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


[Xen-devel] [PATCH v7 00/10] toolstack-based approach to pvhvm guest kexec

2015-05-27 Thread Vitaly Kuznetsov
This patch series provides x86 PVHVM domains with an ability to perform
kexec/kdump-style operations.

The main change in v7 is the XENMEM_soft_reset->XEN_DOMCTL_soft_reset change of
the newly introduced hypercall.

Changes are mentioned in individual patches. Here is the list of them grouped
by the reviewer's name:

Jan Beulich:
- XENMEM_soft_reset->XEN_DOMCTL_soft_reset change
- print a warning on !mfn_valid case
- check PGC_allocated for pages
- don't re-read page->count_info
- minor structuring change
- pause both source and destination domain while processing the hypercall
- remove nr_transferred from public interface
- other minor fixes in PATCH 04/10
- add a comment on why we don't do two XSM_TARGET checks in dummy.h

Tim Deegan:
- use get_gfn_type_access() in PoD case

Wei Liu:
- replace LIBXL_HAVE_SHUTDWON_REASON_SOFT_RESET with LIBXL_HAVE_SOFT_RESET

Daniel De Graaf:
- add reset_transfer vector to FLASK (I dropped Acked-by: on the patch because
  of the XENMEM_soft_reset->XEN_DOMCTL_soft_reset change.)

Julien Grall:
- check that xc_domain_getinfo() return the domain we asked for

v6 of this series is available here:
http://lists.xenproject.org/archives/html/xen-devel/2015-05/msg01613.html

v5 and all the history of the series is available here:
http://lists.xenproject.org/archives/html/xen-devel/2014-12/msg01312.html

Vitaly Kuznetsov (10):
  xen: introduce SHUTDOWN_soft_reset shutdown reason
  libxl: support SHUTDOWN_soft_reset shutdown reason
  xen: introduce DOMDYING_locked state
  xen: Introduce XEN_DOMCTL_soft_reset
  xsm: add XEN_DOMCTL_soft_reset support
  libxc: support XEN_DOMCTL_soft_reset operation
  libxc: introduce soft reset for HVM domains
  xl: introduce enum domain_restart_type
  libxc: add XC_DEVICE_MODEL_SAVE_FILE
  (lib)xl: soft reset support

 docs/man/xl.cfg.pod.5|  12 ++
 tools/flask/policy/policy/modules/xen/xen.if |   3 +-
 tools/libxc/Makefile |   1 +
 tools/libxc/include/xenctrl.h|   4 +
 tools/libxc/include/xenguest.h   |  22 +++
 tools/libxc/xc_domain.c  |  12 ++
 tools/libxc/xc_soft_reset.c  | 280 +++
 tools/libxl/libxl.c  |   4 +
 tools/libxl/libxl.h  |  14 ++
 tools/libxl/libxl_create.c   | 119 +++-
 tools/libxl/libxl_dm.c   |   2 +-
 tools/libxl/libxl_internal.h |  26 +++
 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/common/domain.c  | 187 ++
 xen/common/domctl.c  |  79 
 xen/common/shutdown.c|   6 +
 xen/include/public/domctl.h  |  28 +++
 xen/include/public/sched.h   |   3 +-
 xen/include/xen/sched.h  |   9 +-
 xen/include/xsm/dummy.h  |  12 ++
 xen/include/xsm/xsm.h|   8 +
 xen/xsm/dummy.c  |   2 +
 xen/xsm/flask/hooks.c|  18 ++
 xen/xsm/flask/policy/access_vectors  |   7 +
 27 files changed, 899 insertions(+), 29 deletions(-)
 create mode 100644 tools/libxc/xc_soft_reset.c

-- 
1.9.3


___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel