All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC for-4.6 0/2] In-tree feature documentation
@ 2015-08-24 17:37 Andrew Cooper
  2015-08-24 17:37 ` [PATCH for-4.6 1/2] docs: Template for feature documents Andrew Cooper
  2015-08-24 17:37 ` [PATCH for-4.6 2/2] docs: Migration feature document Andrew Cooper
  0 siblings, 2 replies; 10+ messages in thread
From: Andrew Cooper @ 2015-08-24 17:37 UTC (permalink / raw)
  To: Xen-devel
  Cc: Lars Kurth, Wei Liu, Ian Campbell, Andrew Cooper, Ian Jackson,
	Tim Deegan, Jim Fehlig, Jan Beulich

An issue which Xen has is an uncertain support statement for features.
Given the success seen with docs/misc/xen-command-line.markdown, and in
particular keeping it up to date, introduce a similar system for
features.

Patch 1 introduces a proposed template (and a makefile tweak to include
the new docs/features subdirectory), while patch 2 is a feature document
covering the topic of migration.

This is tagged RFC as I expect people to have different views as to what
is useful to include.  I would particilarly appreciate feedback on the
template before it starts getting used widely.

Lars: Does this look like a reasonable counterpart to your formal
support statement document?

Jim: Per your request at the summit for new information, is patch 2
suitable?

Andrew Cooper (2):
  docs: Template for feature documents
  docs: Migration feature document

 docs/Makefile                  |    2 +-
 docs/features/migration.pandoc |   90 ++++++++++++++++++++++++++++++++++++++++
 docs/features/template.pandoc  |   55 ++++++++++++++++++++++++
 3 files changed, 146 insertions(+), 1 deletion(-)
 create mode 100644 docs/features/migration.pandoc
 create mode 100644 docs/features/template.pandoc

-- 
1.7.10.4

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH for-4.6 1/2] docs: Template for feature documents
  2015-08-24 17:37 [RFC for-4.6 0/2] In-tree feature documentation Andrew Cooper
@ 2015-08-24 17:37 ` Andrew Cooper
  2015-08-24 19:27   ` Juergen Gross
  2015-08-24 17:37 ` [PATCH for-4.6 2/2] docs: Migration feature document Andrew Cooper
  1 sibling, 1 reply; 10+ messages in thread
From: Andrew Cooper @ 2015-08-24 17:37 UTC (permalink / raw)
  To: Xen-devel; +Cc: Andrew Cooper

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
 docs/Makefile                 |    2 +-
 docs/features/template.pandoc |   55 +++++++++++++++++++++++++++++++++++++++++
 2 files changed, 56 insertions(+), 1 deletion(-)
 create mode 100644 docs/features/template.pandoc

diff --git a/docs/Makefile b/docs/Makefile
index 272292c..5d620e5 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -16,7 +16,7 @@ MARKDOWNSRC-y := $(sort $(shell find misc -name '*.markdown' -print))
 
 TXTSRC-y := $(sort $(shell find misc -name '*.txt' -print))
 
-PANDOCSRC-y := $(sort $(shell find specs -name '*.pandoc' -print))
+PANDOCSRC-y := $(sort $(shell find features/ misc/ specs/ -name '*.pandoc' -print))
 
 # Documentation targets
 DOC_MAN1 := $(patsubst man/%.pod.1,man1/%.1,$(MAN1SRC-y))
diff --git a/docs/features/template.pandoc b/docs/features/template.pandoc
new file mode 100644
index 0000000..d883b82
--- /dev/null
+++ b/docs/features/template.pandoc
@@ -0,0 +1,55 @@
+% Template for feature documents
+
+\clearpage
+
+This is a suggested template for formatting of a Xen feature document in tree.
+
+The purpose of this document is to provide a concrete support statement for the
+feature (indicating its security status), as well as brief user and technical
+documentation.
+
+# Basics
+
+A table with an overview of the support status and applicability.
+
+---------------- ----------------------------------------------------
+         Status: e.g. **Supported**/**Tech Preview**/**Experimental**
+
+Architecture(s): e.g. x86, arm
+
+   Component(s): e.g. Hypervisor, toolstack, guest
+
+       Hardware: _where applicable_
+---------------- ----------------------------------------------------
+
+# Overview
+
+A short description the feature, similar to an abstract for a
+paper/presentation.
+
+# User information
+
+Information for a user attempting to use the feature.  Should include how to
+enable the feature (is it enabled by default? If not, how to turn it on?), and
+how to interact with the feature (typically via `xl`).
+
+# Limitations
+
+Information concerning incompatibilities with other features or hardware
+combinations.
+
+# Technical information
+
+Information for a developer or power user.  Should include where to look
+in-tree for detailed documents and code.
+
+# Areas for improvement
+
+List of enhancements which could be undertaken, e.g. to improve the feature
+itself, or improve interaction with other features.
+
+# Known issues
+
+List of known issues or bugs.  For tech preview or experimental features, this
+section must contain the list of items needing fixing for its status to be
+upgraded.
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH for-4.6 2/2] docs: Migration feature document
  2015-08-24 17:37 [RFC for-4.6 0/2] In-tree feature documentation Andrew Cooper
  2015-08-24 17:37 ` [PATCH for-4.6 1/2] docs: Template for feature documents Andrew Cooper
@ 2015-08-24 17:37 ` Andrew Cooper
  2015-08-25  8:49   ` Wei Liu
  1 sibling, 1 reply; 10+ messages in thread
From: Andrew Cooper @ 2015-08-24 17:37 UTC (permalink / raw)
  To: Xen-devel; +Cc: Andrew Cooper

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
---
 docs/features/migration.pandoc |   90 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 90 insertions(+)
 create mode 100644 docs/features/migration.pandoc

diff --git a/docs/features/migration.pandoc b/docs/features/migration.pandoc
new file mode 100644
index 0000000..e0422f9
--- /dev/null
+++ b/docs/features/migration.pandoc
@@ -0,0 +1,90 @@
+% Migration
+
+\clearpage
+
+# Basics
+--------------- -------------
+        Status: **Supported**
+
+  Architecture: x86
+
+     Component: Toolstack
+--------------- -------------
+
+# Overview
+
+Migration is a mechanism to move a virtual machine while the VM is running.
+Live migration moves a running virtual machine between two physical servers,
+but the same mechanism can be used for non-live migrate (pause and copy) and
+suspend/resume from disk.
+
+# User details
+
+No hardware requirements, although hypervisor logdirty support is required for
+live migration.
+
+From the command line, `xl migrate/save/restore` are the top level
+interactions.  e.g.
+
+    xl create my-vm.cfg
+    xl migrate my-vm localhost
+
+or
+
+    xl create my-vm.cfg
+    xl save my-vm /path/to/save/file
+    xl restore /path/to/save/file
+
+Xen 4.6 sees the instruction of Migration v2.  There is no change for people
+using `xl`, although the `libxl` API has had an extension.
+
+# Technical details
+
+Migration is of formed of several layers.  `libxc` is responsible for the
+contents of the VM (ram, vcpus, etc) and the live migration loop, while
+`libxl` is responsible for items such as emulator state.
+
+The format of the migration v2 stream is specified in two documents, and is
+architecture neutral.  Compatibility with legacy streams is maintained via the
+`convert-legacy-stream` script which transforms a legacy stream into a
+migration v2 stream.
+
+* Documents
+    * `docs/specs/libxc-migration-stream.pandoc`
+    * `docs/specs/libxl-migration-stream.pandoc`
+* `libxc`
+    * `tools/libxc/xc_sr_*.[hc]`
+* `libxl`
+    * `tools/libxl/libxl_stream_{read,write}.c`
+* Scripts
+    * `tools/python/xen/migration/*.py`
+    * `tools/python/scripts/convert-legacy-stream`
+    * `tools/python/scripts/verify-stream-v2`
+
+Users of the `libxl` API have a new parameter `stream_version` in
+`domain_restore_params` which is used to distinguish between legacy and v2
+migration streams, and hence whether legacy conversion is required.
+
+# Limitations
+
+Hypervisor logdirty support is incompatible with hardware passthrough, as
+IOMMU faults cannot be used to track writes.
+
+While not a bug in migration specifically, VMs are very sensitive to changes
+in cpuid information, and cpuid levelling support currently has its issues.
+Extreme care should be taken when migrating VMs between non-identical CPUs
+until the cpuid levelling improvements are complete.
+
+# Areas for improvement
+
+* Arm support
+* Linear P2M support for x86 PV
+* Live looping parameters
+
+# Known issues
+
+* x86 HVM guest physmap operations (not reflected in logdirty bitmap)
+* x86 HVM with PoD pages (attempts to map cause PoD allocations)
+* x86 HVM with nested-virt (no relevant information included in the stream)
+* x86 PV ballooning (P2M marked dirty, target frame not marked)
+* x86 PV P2M structure changes (not noticed, stale mappings used)
-- 
1.7.10.4

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH for-4.6 1/2] docs: Template for feature documents
  2015-08-24 17:37 ` [PATCH for-4.6 1/2] docs: Template for feature documents Andrew Cooper
@ 2015-08-24 19:27   ` Juergen Gross
  2015-08-24 22:52     ` Andrew Cooper
  0 siblings, 1 reply; 10+ messages in thread
From: Juergen Gross @ 2015-08-24 19:27 UTC (permalink / raw)
  To: Andrew Cooper, Xen-devel

On 08/24/2015 07:37 PM, Andrew Cooper wrote:
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
>   docs/Makefile                 |    2 +-
>   docs/features/template.pandoc |   55 +++++++++++++++++++++++++++++++++++++++++
>   2 files changed, 56 insertions(+), 1 deletion(-)
>   create mode 100644 docs/features/template.pandoc
>
> diff --git a/docs/Makefile b/docs/Makefile
> index 272292c..5d620e5 100644
> --- a/docs/Makefile
> +++ b/docs/Makefile
> @@ -16,7 +16,7 @@ MARKDOWNSRC-y := $(sort $(shell find misc -name '*.markdown' -print))
>
>   TXTSRC-y := $(sort $(shell find misc -name '*.txt' -print))
>
> -PANDOCSRC-y := $(sort $(shell find specs -name '*.pandoc' -print))
> +PANDOCSRC-y := $(sort $(shell find features/ misc/ specs/ -name '*.pandoc' -print))
>
>   # Documentation targets
>   DOC_MAN1 := $(patsubst man/%.pod.1,man1/%.1,$(MAN1SRC-y))
> diff --git a/docs/features/template.pandoc b/docs/features/template.pandoc
> new file mode 100644
> index 0000000..d883b82
> --- /dev/null
> +++ b/docs/features/template.pandoc
> @@ -0,0 +1,55 @@
> +% Template for feature documents
> +
> +\clearpage
> +
> +This is a suggested template for formatting of a Xen feature document in tree.
> +
> +The purpose of this document is to provide a concrete support statement for the
> +feature (indicating its security status), as well as brief user and technical
> +documentation.
> +
> +# Basics
> +
> +A table with an overview of the support status and applicability.
> +
> +---------------- ----------------------------------------------------
> +         Status: e.g. **Supported**/**Tech Preview**/**Experimental**
> +
> +Architecture(s): e.g. x86, arm
> +
> +   Component(s): e.g. Hypervisor, toolstack, guest
> +
> +       Hardware: _where applicable_
> +---------------- ----------------------------------------------------

What about adding some information when the feature was introduced or
some other historical stuff? Something like:

Experimental in Xen 4.1
Supported in Xen 4.3
xl syntax changed in Xen 4.4


Juergen

> +
> +# Overview
> +
> +A short description the feature, similar to an abstract for a
> +paper/presentation.
> +
> +# User information
> +
> +Information for a user attempting to use the feature.  Should include how to
> +enable the feature (is it enabled by default? If not, how to turn it on?), and
> +how to interact with the feature (typically via `xl`).
> +
> +# Limitations
> +
> +Information concerning incompatibilities with other features or hardware
> +combinations.
> +
> +# Technical information
> +
> +Information for a developer or power user.  Should include where to look
> +in-tree for detailed documents and code.
> +
> +# Areas for improvement
> +
> +List of enhancements which could be undertaken, e.g. to improve the feature
> +itself, or improve interaction with other features.
> +
> +# Known issues
> +
> +List of known issues or bugs.  For tech preview or experimental features, this
> +section must contain the list of items needing fixing for its status to be
> +upgraded.
>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH for-4.6 1/2] docs: Template for feature documents
  2015-08-24 19:27   ` Juergen Gross
@ 2015-08-24 22:52     ` Andrew Cooper
  2015-08-24 22:58       ` Juergen Gross
  2015-08-25  8:41       ` Wei Liu
  0 siblings, 2 replies; 10+ messages in thread
From: Andrew Cooper @ 2015-08-24 22:52 UTC (permalink / raw)
  To: Juergen Gross, Xen-devel

On 24/08/2015 20:27, Juergen Gross wrote:
> On 08/24/2015 07:37 PM, Andrew Cooper wrote:
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>>   docs/Makefile                 |    2 +-
>>   docs/features/template.pandoc |   55
>> +++++++++++++++++++++++++++++++++++++++++
>>   2 files changed, 56 insertions(+), 1 deletion(-)
>>   create mode 100644 docs/features/template.pandoc
>>
>> diff --git a/docs/Makefile b/docs/Makefile
>> index 272292c..5d620e5 100644
>> --- a/docs/Makefile
>> +++ b/docs/Makefile
>> @@ -16,7 +16,7 @@ MARKDOWNSRC-y := $(sort $(shell find misc -name
>> '*.markdown' -print))
>>
>>   TXTSRC-y := $(sort $(shell find misc -name '*.txt' -print))
>>
>> -PANDOCSRC-y := $(sort $(shell find specs -name '*.pandoc' -print))
>> +PANDOCSRC-y := $(sort $(shell find features/ misc/ specs/ -name
>> '*.pandoc' -print))
>>
>>   # Documentation targets
>>   DOC_MAN1 := $(patsubst man/%.pod.1,man1/%.1,$(MAN1SRC-y))
>> diff --git a/docs/features/template.pandoc
>> b/docs/features/template.pandoc
>> new file mode 100644
>> index 0000000..d883b82
>> --- /dev/null
>> +++ b/docs/features/template.pandoc
>> @@ -0,0 +1,55 @@
>> +% Template for feature documents
>> +
>> +\clearpage
>> +
>> +This is a suggested template for formatting of a Xen feature
>> document in tree.
>> +
>> +The purpose of this document is to provide a concrete support
>> statement for the
>> +feature (indicating its security status), as well as brief user and
>> technical
>> +documentation.
>> +
>> +# Basics
>> +
>> +A table with an overview of the support status and applicability.
>> +
>> +---------------- ----------------------------------------------------
>> +         Status: e.g. **Supported**/**Tech Preview**/**Experimental**
>> +
>> +Architecture(s): e.g. x86, arm
>> +
>> +   Component(s): e.g. Hypervisor, toolstack, guest
>> +
>> +       Hardware: _where applicable_
>> +---------------- ----------------------------------------------------
>
> What about adding some information when the feature was introduced or
> some other historical stuff? Something like:
>
> Experimental in Xen 4.1
> Supported in Xen 4.3
> xl syntax changed in Xen 4.4
>

In the longterm, I would expect that information to be visible via `git
log`.

Having said that, it probably is useful to have a summary of history
available in the written document.

How about a #History section at the bottom?  That can at least include
"document written" as a starting point and subsequent major changes in
short form.

~Andrew

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH for-4.6 1/2] docs: Template for feature documents
  2015-08-24 22:52     ` Andrew Cooper
@ 2015-08-24 22:58       ` Juergen Gross
  2015-08-25  8:41       ` Wei Liu
  1 sibling, 0 replies; 10+ messages in thread
From: Juergen Gross @ 2015-08-24 22:58 UTC (permalink / raw)
  To: Andrew Cooper, Xen-devel

On 08/25/2015 12:52 AM, Andrew Cooper wrote:
> On 24/08/2015 20:27, Juergen Gross wrote:
>> On 08/24/2015 07:37 PM, Andrew Cooper wrote:
>>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>>> ---
>>>    docs/Makefile                 |    2 +-
>>>    docs/features/template.pandoc |   55
>>> +++++++++++++++++++++++++++++++++++++++++
>>>    2 files changed, 56 insertions(+), 1 deletion(-)
>>>    create mode 100644 docs/features/template.pandoc
>>>
>>> diff --git a/docs/Makefile b/docs/Makefile
>>> index 272292c..5d620e5 100644
>>> --- a/docs/Makefile
>>> +++ b/docs/Makefile
>>> @@ -16,7 +16,7 @@ MARKDOWNSRC-y := $(sort $(shell find misc -name
>>> '*.markdown' -print))
>>>
>>>    TXTSRC-y := $(sort $(shell find misc -name '*.txt' -print))
>>>
>>> -PANDOCSRC-y := $(sort $(shell find specs -name '*.pandoc' -print))
>>> +PANDOCSRC-y := $(sort $(shell find features/ misc/ specs/ -name
>>> '*.pandoc' -print))
>>>
>>>    # Documentation targets
>>>    DOC_MAN1 := $(patsubst man/%.pod.1,man1/%.1,$(MAN1SRC-y))
>>> diff --git a/docs/features/template.pandoc
>>> b/docs/features/template.pandoc
>>> new file mode 100644
>>> index 0000000..d883b82
>>> --- /dev/null
>>> +++ b/docs/features/template.pandoc
>>> @@ -0,0 +1,55 @@
>>> +% Template for feature documents
>>> +
>>> +\clearpage
>>> +
>>> +This is a suggested template for formatting of a Xen feature
>>> document in tree.
>>> +
>>> +The purpose of this document is to provide a concrete support
>>> statement for the
>>> +feature (indicating its security status), as well as brief user and
>>> technical
>>> +documentation.
>>> +
>>> +# Basics
>>> +
>>> +A table with an overview of the support status and applicability.
>>> +
>>> +---------------- ----------------------------------------------------
>>> +         Status: e.g. **Supported**/**Tech Preview**/**Experimental**
>>> +
>>> +Architecture(s): e.g. x86, arm
>>> +
>>> +   Component(s): e.g. Hypervisor, toolstack, guest
>>> +
>>> +       Hardware: _where applicable_
>>> +---------------- ----------------------------------------------------
>>
>> What about adding some information when the feature was introduced or
>> some other historical stuff? Something like:
>>
>> Experimental in Xen 4.1
>> Supported in Xen 4.3
>> xl syntax changed in Xen 4.4
>>
>
> In the longterm, I would expect that information to be visible via `git
> log`.
>
> Having said that, it probably is useful to have a summary of history
> available in the written document.
>
> How about a #History section at the bottom?  That can at least include
> "document written" as a starting point and subsequent major changes in
> short form.

Sure, I'm fine with this.

Juergen

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH for-4.6 1/2] docs: Template for feature documents
  2015-08-24 22:52     ` Andrew Cooper
  2015-08-24 22:58       ` Juergen Gross
@ 2015-08-25  8:41       ` Wei Liu
  2015-08-25 10:06         ` Andrew Cooper
  1 sibling, 1 reply; 10+ messages in thread
From: Wei Liu @ 2015-08-25  8:41 UTC (permalink / raw)
  To: Andrew Cooper; +Cc: wei.liu2, Juergen Gross, Xen-devel

On Mon, Aug 24, 2015 at 11:52:34PM +0100, Andrew Cooper wrote:
> On 24/08/2015 20:27, Juergen Gross wrote:
> > On 08/24/2015 07:37 PM, Andrew Cooper wrote:
> >> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> >> ---
> >>   docs/Makefile                 |    2 +-
> >>   docs/features/template.pandoc |   55
> >> +++++++++++++++++++++++++++++++++++++++++
> >>   2 files changed, 56 insertions(+), 1 deletion(-)
> >>   create mode 100644 docs/features/template.pandoc
> >>
> >> diff --git a/docs/Makefile b/docs/Makefile
> >> index 272292c..5d620e5 100644
> >> --- a/docs/Makefile
> >> +++ b/docs/Makefile
> >> @@ -16,7 +16,7 @@ MARKDOWNSRC-y := $(sort $(shell find misc -name
> >> '*.markdown' -print))
> >>
> >>   TXTSRC-y := $(sort $(shell find misc -name '*.txt' -print))
> >>
> >> -PANDOCSRC-y := $(sort $(shell find specs -name '*.pandoc' -print))
> >> +PANDOCSRC-y := $(sort $(shell find features/ misc/ specs/ -name
> >> '*.pandoc' -print))
> >>
> >>   # Documentation targets
> >>   DOC_MAN1 := $(patsubst man/%.pod.1,man1/%.1,$(MAN1SRC-y))
> >> diff --git a/docs/features/template.pandoc
> >> b/docs/features/template.pandoc
> >> new file mode 100644
> >> index 0000000..d883b82
> >> --- /dev/null
> >> +++ b/docs/features/template.pandoc
> >> @@ -0,0 +1,55 @@
> >> +% Template for feature documents

% Revision X

> >> +
> >> +\clearpage
> >> +
> >> +This is a suggested template for formatting of a Xen feature
> >> document in tree.
> >> +
> >> +The purpose of this document is to provide a concrete support
> >> statement for the
> >> +feature (indicating its security status), as well as brief user and
> >> technical
> >> +documentation.
> >> +
> >> +# Basics
> >> +
> >> +A table with an overview of the support status and applicability.
> >> +
> >> +---------------- ----------------------------------------------------
> >> +         Status: e.g. **Supported**/**Tech Preview**/**Experimental**
> >> +
> >> +Architecture(s): e.g. x86, arm
> >> +
> >> +   Component(s): e.g. Hypervisor, toolstack, guest
> >> +
> >> +       Hardware: _where applicable_
> >> +---------------- ----------------------------------------------------
> >
> > What about adding some information when the feature was introduced or
> > some other historical stuff? Something like:
> >
> > Experimental in Xen 4.1
> > Supported in Xen 4.3
> > xl syntax changed in Xen 4.4
> >
> 
> In the longterm, I would expect that information to be visible via `git
> log`.
> 
> Having said that, it probably is useful to have a summary of history
> available in the written document.
> 
> How about a #History section at the bottom?  That can at least include
> "document written" as a starting point and subsequent major changes in
> short form.

Or use a table for revision history at the beginning? I personally think
using a table is clearer than several paragraphs.

Don't want to bikeshed how it should look like. We can always change the
template if necessary.

Wei.

> 
> ~Andrew
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH for-4.6 2/2] docs: Migration feature document
  2015-08-24 17:37 ` [PATCH for-4.6 2/2] docs: Migration feature document Andrew Cooper
@ 2015-08-25  8:49   ` Wei Liu
  2015-08-25 10:05     ` Andrew Cooper
  0 siblings, 1 reply; 10+ messages in thread
From: Wei Liu @ 2015-08-25  8:49 UTC (permalink / raw)
  To: Andrew Cooper; +Cc: wei.liu2, Xen-devel

On Mon, Aug 24, 2015 at 06:37:02PM +0100, Andrew Cooper wrote:
> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
> ---
>  docs/features/migration.pandoc |   90 ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 90 insertions(+)
>  create mode 100644 docs/features/migration.pandoc
> 
> diff --git a/docs/features/migration.pandoc b/docs/features/migration.pandoc
> new file mode 100644
> index 0000000..e0422f9
> --- /dev/null
> +++ b/docs/features/migration.pandoc
> @@ -0,0 +1,90 @@
> +% Migration

% Revision 1

> +
> +\clearpage
> +
> +# Basics
> +--------------- -------------
> +        Status: **Supported**
> +
> +  Architecture: x86
> +
> +     Component: Toolstack
> +--------------- -------------
> +
> +# Overview
> +
> +Migration is a mechanism to move a virtual machine while the VM is running.
> +Live migration moves a running virtual machine between two physical servers,
> +but the same mechanism can be used for non-live migrate (pause and copy) and
> +suspend/resume from disk.
> +
> +# User details
> +
> +No hardware requirements, although hypervisor logdirty support is required for
> +live migration.
> +
> +From the command line, `xl migrate/save/restore` are the top level
> +interactions.  e.g.
> +
> +    xl create my-vm.cfg
> +    xl migrate my-vm localhost
> +
> +or
> +
> +    xl create my-vm.cfg
> +    xl save my-vm /path/to/save/file
> +    xl restore /path/to/save/file
> +
> +Xen 4.6 sees the instruction of Migration v2.  There is no change for people
> +using `xl`, although the `libxl` API has had an extension.
> +
> +# Technical details
> +
> +Migration is of formed of several layers.  `libxc` is responsible for the

Extraneous "of".

> +contents of the VM (ram, vcpus, etc) and the live migration loop, while
> +`libxl` is responsible for items such as emulator state.
> +
> +The format of the migration v2 stream is specified in two documents, and is
> +architecture neutral.  Compatibility with legacy streams is maintained via the
> +`convert-legacy-stream` script which transforms a legacy stream into a
> +migration v2 stream.
> +
> +* Documents
> +    * `docs/specs/libxc-migration-stream.pandoc`
> +    * `docs/specs/libxl-migration-stream.pandoc`
> +* `libxc`
> +    * `tools/libxc/xc_sr_*.[hc]`
> +* `libxl`
> +    * `tools/libxl/libxl_stream_{read,write}.c`
> +* Scripts
> +    * `tools/python/xen/migration/*.py`
> +    * `tools/python/scripts/convert-legacy-stream`
> +    * `tools/python/scripts/verify-stream-v2`
> +
> +Users of the `libxl` API have a new parameter `stream_version` in
> +`domain_restore_params` which is used to distinguish between legacy and v2
> +migration streams, and hence whether legacy conversion is required.
> +
> +# Limitations
> +
> +Hypervisor logdirty support is incompatible with hardware passthrough, as
> +IOMMU faults cannot be used to track writes.
> +
> +While not a bug in migration specifically, VMs are very sensitive to changes
> +in cpuid information, and cpuid levelling support currently has its issues.
> +Extreme care should be taken when migrating VMs between non-identical CPUs
> +until the cpuid levelling improvements are complete.
> +
> +# Areas for improvement
> +
> +* Arm support
> +* Linear P2M support for x86 PV
> +* Live looping parameters
> +
> +# Known issues
> +
> +* x86 HVM guest physmap operations (not reflected in logdirty bitmap)
> +* x86 HVM with PoD pages (attempts to map cause PoD allocations)
> +* x86 HVM with nested-virt (no relevant information included in the stream)
> +* x86 PV ballooning (P2M marked dirty, target frame not marked)
> +* x86 PV P2M structure changes (not noticed, stale mappings used)

TBH I think "Areas for improvement" and "Known issues" sections are very
cryptic to normal users, but I don't have any suggestion to make them
better.

In any case, any document is better than no documents. I'm all for this
doc going in as soon as possible.

Wei.

> -- 
> 1.7.10.4
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> http://lists.xen.org/xen-devel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH for-4.6 2/2] docs: Migration feature document
  2015-08-25  8:49   ` Wei Liu
@ 2015-08-25 10:05     ` Andrew Cooper
  0 siblings, 0 replies; 10+ messages in thread
From: Andrew Cooper @ 2015-08-25 10:05 UTC (permalink / raw)
  To: Wei Liu; +Cc: Xen-devel

On 25/08/15 09:49, Wei Liu wrote:
> On Mon, Aug 24, 2015 at 06:37:02PM +0100, Andrew Cooper wrote:
>> Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
>> ---
>>  docs/features/migration.pandoc |   90 ++++++++++++++++++++++++++++++++++++++++
>>  1 file changed, 90 insertions(+)
>>  create mode 100644 docs/features/migration.pandoc
>>
>> diff --git a/docs/features/migration.pandoc b/docs/features/migration.pandoc
>> new file mode 100644
>> index 0000000..e0422f9
>> --- /dev/null
>> +++ b/docs/features/migration.pandoc
>> @@ -0,0 +1,90 @@
>> +% Migration
> % Revision 1
>
>> +
>> +\clearpage
>> +
>> +# Basics
>> +--------------- -------------
>> +        Status: **Supported**
>> +
>> +  Architecture: x86
>> +
>> +     Component: Toolstack
>> +--------------- -------------
>> +
>> +# Overview
>> +
>> +Migration is a mechanism to move a virtual machine while the VM is running.
>> +Live migration moves a running virtual machine between two physical servers,
>> +but the same mechanism can be used for non-live migrate (pause and copy) and
>> +suspend/resume from disk.
>> +
>> +# User details
>> +
>> +No hardware requirements, although hypervisor logdirty support is required for
>> +live migration.
>> +
>> +From the command line, `xl migrate/save/restore` are the top level
>> +interactions.  e.g.
>> +
>> +    xl create my-vm.cfg
>> +    xl migrate my-vm localhost
>> +
>> +or
>> +
>> +    xl create my-vm.cfg
>> +    xl save my-vm /path/to/save/file
>> +    xl restore /path/to/save/file
>> +
>> +Xen 4.6 sees the instruction of Migration v2.  There is no change for people
>> +using `xl`, although the `libxl` API has had an extension.
>> +
>> +# Technical details
>> +
>> +Migration is of formed of several layers.  `libxc` is responsible for the
> Extraneous "of".
>
>> +contents of the VM (ram, vcpus, etc) and the live migration loop, while
>> +`libxl` is responsible for items such as emulator state.
>> +
>> +The format of the migration v2 stream is specified in two documents, and is
>> +architecture neutral.  Compatibility with legacy streams is maintained via the
>> +`convert-legacy-stream` script which transforms a legacy stream into a
>> +migration v2 stream.
>> +
>> +* Documents
>> +    * `docs/specs/libxc-migration-stream.pandoc`
>> +    * `docs/specs/libxl-migration-stream.pandoc`
>> +* `libxc`
>> +    * `tools/libxc/xc_sr_*.[hc]`
>> +* `libxl`
>> +    * `tools/libxl/libxl_stream_{read,write}.c`
>> +* Scripts
>> +    * `tools/python/xen/migration/*.py`
>> +    * `tools/python/scripts/convert-legacy-stream`
>> +    * `tools/python/scripts/verify-stream-v2`
>> +
>> +Users of the `libxl` API have a new parameter `stream_version` in
>> +`domain_restore_params` which is used to distinguish between legacy and v2
>> +migration streams, and hence whether legacy conversion is required.
>> +
>> +# Limitations
>> +
>> +Hypervisor logdirty support is incompatible with hardware passthrough, as
>> +IOMMU faults cannot be used to track writes.
>> +
>> +While not a bug in migration specifically, VMs are very sensitive to changes
>> +in cpuid information, and cpuid levelling support currently has its issues.
>> +Extreme care should be taken when migrating VMs between non-identical CPUs
>> +until the cpuid levelling improvements are complete.
>> +
>> +# Areas for improvement
>> +
>> +* Arm support
>> +* Linear P2M support for x86 PV
>> +* Live looping parameters
>> +
>> +# Known issues
>> +
>> +* x86 HVM guest physmap operations (not reflected in logdirty bitmap)
>> +* x86 HVM with PoD pages (attempts to map cause PoD allocations)
>> +* x86 HVM with nested-virt (no relevant information included in the stream)
>> +* x86 PV ballooning (P2M marked dirty, target frame not marked)
>> +* x86 PV P2M structure changes (not noticed, stale mappings used)
> TBH I think "Areas for improvement" and "Known issues" sections are very
> cryptic to normal users, but I don't have any suggestion to make them
> better.
>
> In any case, any document is better than no documents. I'm all for this
> doc going in as soon as possible.

This document is deliberately designed to contain both user and
technical information, and be a full overview of the feature, so it is
important for the information to be present.  I am open to alternative
suggestions for how to represent it.

They are basically "proposed new features" and "known bugs".  "Areas for
improvement" could easily be small projects for newcomers/gsoc/opw,
while "Known Issues" probably needs a deeper technical knowledge of the
area.

~Andrew

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH for-4.6 1/2] docs: Template for feature documents
  2015-08-25  8:41       ` Wei Liu
@ 2015-08-25 10:06         ` Andrew Cooper
  0 siblings, 0 replies; 10+ messages in thread
From: Andrew Cooper @ 2015-08-25 10:06 UTC (permalink / raw)
  To: Wei Liu; +Cc: Juergen Gross, Xen-devel

On 25/08/15 09:41, Wei Liu wrote:
>
>>>> +
>>>> +\clearpage
>>>> +
>>>> +This is a suggested template for formatting of a Xen feature
>>>> document in tree.
>>>> +
>>>> +The purpose of this document is to provide a concrete support
>>>> statement for the
>>>> +feature (indicating its security status), as well as brief user and
>>>> technical
>>>> +documentation.
>>>> +
>>>> +# Basics
>>>> +
>>>> +A table with an overview of the support status and applicability.
>>>> +
>>>> +---------------- ----------------------------------------------------
>>>> +         Status: e.g. **Supported**/**Tech Preview**/**Experimental**
>>>> +
>>>> +Architecture(s): e.g. x86, arm
>>>> +
>>>> +   Component(s): e.g. Hypervisor, toolstack, guest
>>>> +
>>>> +       Hardware: _where applicable_
>>>> +---------------- ----------------------------------------------------
>>> What about adding some information when the feature was introduced or
>>> some other historical stuff? Something like:
>>>
>>> Experimental in Xen 4.1
>>> Supported in Xen 4.3
>>> xl syntax changed in Xen 4.4
>>>
>> In the longterm, I would expect that information to be visible via `git
>> log`.
>>
>> Having said that, it probably is useful to have a summary of history
>> available in the written document.
>>
>> How about a #History section at the bottom?  That can at least include
>> "document written" as a starting point and subsequent major changes in
>> short form.
> Or use a table for revision history at the beginning? I personally think
> using a table is clearer than several paragraphs.
>
> Don't want to bikeshed how it should look like. We can always change the
> template if necessary.

I have introduced a history table at the end of the template.  I want to
avoid it getting in the way of the table of basic information and overview.

~Andrew

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2015-08-25 10:06 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-24 17:37 [RFC for-4.6 0/2] In-tree feature documentation Andrew Cooper
2015-08-24 17:37 ` [PATCH for-4.6 1/2] docs: Template for feature documents Andrew Cooper
2015-08-24 19:27   ` Juergen Gross
2015-08-24 22:52     ` Andrew Cooper
2015-08-24 22:58       ` Juergen Gross
2015-08-25  8:41       ` Wei Liu
2015-08-25 10:06         ` Andrew Cooper
2015-08-24 17:37 ` [PATCH for-4.6 2/2] docs: Migration feature document Andrew Cooper
2015-08-25  8:49   ` Wei Liu
2015-08-25 10:05     ` Andrew Cooper

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.