[Qemu-devel] [PATCH v2 09/16] qapi-schema: Collect migration stuff in qapi/migration.json

2017-08-24 Thread Markus Armbruster
Cc: Juan Quintela 
Cc: Dr. David Alan Gilbert 
Signed-off-by: Markus Armbruster 
---
 MAINTAINERS |1 +
 Makefile|1 +
 qapi-schema.json| 1056 +
 qapi/common.json|   16 +
 qapi/event.json |   38 --
 qapi/migration.json | 1085 +++
 6 files changed, 1104 insertions(+), 1093 deletions(-)
 create mode 100644 qapi/migration.json

diff --git a/MAINTAINERS b/MAINTAINERS
index 24c5105..baa9859 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1498,6 +1498,7 @@ F: migration/
 F: scripts/vmstate-static-checker.py
 F: tests/vmstate-static-checker-data/
 F: docs/migration.txt
+F: qapi/migration.json
 
 Seccomp
 M: Eduardo Otubo 
diff --git a/Makefile b/Makefile
index c7b6fd1..18cf670 100644
--- a/Makefile
+++ b/Makefile
@@ -413,6 +413,7 @@ qapi-modules = $(SRC_PATH)/qapi-schema.json 
$(SRC_PATH)/qapi/common.json \
$(SRC_PATH)/qapi/char.json \
$(SRC_PATH)/qapi/crypto.json \
$(SRC_PATH)/qapi/event.json $(SRC_PATH)/qapi/introspect.json \
+   $(SRC_PATH)/qapi/migration.json \
$(SRC_PATH)/qapi/net.json \
$(SRC_PATH)/qapi/rocker.json \
$(SRC_PATH)/qapi/run-state.json \
diff --git a/qapi-schema.json b/qapi-schema.json
index 6a23f59..21f54ea 100644
--- a/qapi-schema.json
+++ b/qapi-schema.json
@@ -87,6 +87,7 @@
 { 'include': 'qapi/net.json' }
 { 'include': 'qapi/rocker.json' }
 { 'include': 'qapi/ui.json' }
+{ 'include': 'qapi/migration.json' }
 { 'include': 'qapi/event.json' }
 { 'include': 'qapi/trace.json' }
 { 'include': 'qapi/introspect.json' }
@@ -117,22 +118,6 @@
 { 'command': 'qmp_capabilities' }
 
 ##
-# @StrOrNull:
-#
-# This is a string value or the explicit lack of a string (null
-# pointer in C).  Intended for cases when 'optional absent' already
-# has a different meaning.
-#
-# @s: the string value
-# @n: no string value
-#
-# Since: 2.10
-##
-{ 'alternate': 'StrOrNull',
-  'data': { 's': 'str',
-'n': 'null' } }
-
-##
 # @LostTickPolicy:
 #
 # Policy for handling lost ticks in timer devices.
@@ -316,778 +301,6 @@
 { 'command': 'query-events', 'returns': ['EventInfo'] }
 
 ##
-# @MigrationStats:
-#
-# Detailed migration status.
-#
-# @transferred: amount of bytes already transferred to the target VM
-#
-# @remaining: amount of bytes remaining to be transferred to the target VM
-#
-# @total: total amount of bytes involved in the migration process
-#
-# @duplicate: number of duplicate (zero) pages (since 1.2)
-#
-# @skipped: number of skipped zero pages (since 1.5)
-#
-# @normal: number of normal pages (since 1.2)
-#
-# @normal-bytes: number of normal bytes sent (since 1.2)
-#
-# @dirty-pages-rate: number of pages dirtied by second by the
-#guest (since 1.3)
-#
-# @mbps: throughput in megabits/sec. (since 1.6)
-#
-# @dirty-sync-count: number of times that dirty ram was synchronized (since 
2.1)
-#
-# @postcopy-requests: The number of page requests received from the destination
-#(since 2.7)
-#
-# @page-size: The number of bytes per page for the various page-based
-#statistics (since 2.10)
-#
-# Since: 0.14.0
-##
-{ 'struct': 'MigrationStats',
-  'data': {'transferred': 'int', 'remaining': 'int', 'total': 'int' ,
-   'duplicate': 'int', 'skipped': 'int', 'normal': 'int',
-   'normal-bytes': 'int', 'dirty-pages-rate' : 'int',
-   'mbps' : 'number', 'dirty-sync-count' : 'int',
-   'postcopy-requests' : 'int', 'page-size' : 'int' } }
-
-##
-# @XBZRLECacheStats:
-#
-# Detailed XBZRLE migration cache statistics
-#
-# @cache-size: XBZRLE cache size
-#
-# @bytes: amount of bytes already transferred to the target VM
-#
-# @pages: amount of pages transferred to the target VM
-#
-# @cache-miss: number of cache miss
-#
-# @cache-miss-rate: rate of cache miss (since 2.1)
-#
-# @overflow: number of overflows
-#
-# Since: 1.2
-##
-{ 'struct': 'XBZRLECacheStats',
-  'data': {'cache-size': 'int', 'bytes': 'int', 'pages': 'int',
-   'cache-miss': 'int', 'cache-miss-rate': 'number',
-   'overflow': 'int' } }
-
-##
-# @MigrationStatus:
-#
-# An enumeration of migration status.
-#
-# @none: no migration has ever happened.
-#
-# @setup: migration process has been initiated.
-#
-# @cancelling: in the process of cancelling migration.
-#
-# @cancelled: cancelling migration is finished.
-#
-# @active: in the process of doing migration.
-#
-# @postcopy-active: like active, but now in postcopy mode. (since 2.5)
-#
-# @completed: migration is finished.
-#
-# @failed: some error occurred during migration process.
-#
-# @colo: VM is in the process of fault tolerance, VM can not get into this
-#state unless colo capability is enabled for migration. (since 2.8)
-#
-# Since: 2.3
-#
-##
-{ 'enum': 'MigrationStatus',
-  'data': [ 'none', 'setup', 'cancelling', 'cancelled',
-'active', 'postcopy-active', 'completed

Re: [Qemu-devel] [PATCH v2 09/16] qapi-schema: Collect migration stuff in qapi/migration.json

2017-08-25 Thread Marc-André Lureau
On Thu, Aug 24, 2017 at 9:28 PM Markus Armbruster  wrote:

> Cc: Juan Quintela 
> Cc: Dr. David Alan Gilbert 
> Signed-off-by: Markus Armbruster 
>

Reviewed-by: Marc-André Lureau 

---
>  MAINTAINERS |1 +
>  Makefile|1 +
>  qapi-schema.json| 1056
> +
>  qapi/common.json|   16 +
>  qapi/event.json |   38 --
>  qapi/migration.json | 1085
> +++
>  6 files changed, 1104 insertions(+), 1093 deletions(-)
>  create mode 100644 qapi/migration.json
>
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 24c5105..baa9859 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1498,6 +1498,7 @@ F: migration/
>  F: scripts/vmstate-static-checker.py
>  F: tests/vmstate-static-checker-data/
>  F: docs/migration.txt
> +F: qapi/migration.json
>
>  Seccomp
>  M: Eduardo Otubo 
> diff --git a/Makefile b/Makefile
> index c7b6fd1..18cf670 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -413,6 +413,7 @@ qapi-modules = $(SRC_PATH)/qapi-schema.json
> $(SRC_PATH)/qapi/common.json \
> $(SRC_PATH)/qapi/char.json \
> $(SRC_PATH)/qapi/crypto.json \
> $(SRC_PATH)/qapi/event.json
> $(SRC_PATH)/qapi/introspect.json \
> +   $(SRC_PATH)/qapi/migration.json \
> $(SRC_PATH)/qapi/net.json \
> $(SRC_PATH)/qapi/rocker.json \
> $(SRC_PATH)/qapi/run-state.json \
> diff --git a/qapi-schema.json b/qapi-schema.json
> index 6a23f59..21f54ea 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -87,6 +87,7 @@
>  { 'include': 'qapi/net.json' }
>  { 'include': 'qapi/rocker.json' }
>  { 'include': 'qapi/ui.json' }
> +{ 'include': 'qapi/migration.json' }
>  { 'include': 'qapi/event.json' }
>  { 'include': 'qapi/trace.json' }
>  { 'include': 'qapi/introspect.json' }
> @@ -117,22 +118,6 @@
>  { 'command': 'qmp_capabilities' }
>
>  ##
> -# @StrOrNull:
> -#
> -# This is a string value or the explicit lack of a string (null
> -# pointer in C).  Intended for cases when 'optional absent' already
> -# has a different meaning.
> -#
> -# @s: the string value
> -# @n: no string value
> -#
> -# Since: 2.10
> -##
> -{ 'alternate': 'StrOrNull',
> -  'data': { 's': 'str',
> -'n': 'null' } }
> -
> -##
>  # @LostTickPolicy:
>  #
>  # Policy for handling lost ticks in timer devices.
> @@ -316,778 +301,6 @@
>  { 'command': 'query-events', 'returns': ['EventInfo'] }
>
>  ##
> -# @MigrationStats:
> -#
> -# Detailed migration status.
> -#
> -# @transferred: amount of bytes already transferred to the target VM
> -#
> -# @remaining: amount of bytes remaining to be transferred to the target VM
> -#
> -# @total: total amount of bytes involved in the migration process
> -#
> -# @duplicate: number of duplicate (zero) pages (since 1.2)
> -#
> -# @skipped: number of skipped zero pages (since 1.5)
> -#
> -# @normal: number of normal pages (since 1.2)
> -#
> -# @normal-bytes: number of normal bytes sent (since 1.2)
> -#
> -# @dirty-pages-rate: number of pages dirtied by second by the
> -#guest (since 1.3)
> -#
> -# @mbps: throughput in megabits/sec. (since 1.6)
> -#
> -# @dirty-sync-count: number of times that dirty ram was synchronized
> (since 2.1)
> -#
> -# @postcopy-requests: The number of page requests received from the
> destination
> -#(since 2.7)
> -#
> -# @page-size: The number of bytes per page for the various page-based
> -#statistics (since 2.10)
> -#
> -# Since: 0.14.0
> -##
> -{ 'struct': 'MigrationStats',
> -  'data': {'transferred': 'int', 'remaining': 'int', 'total': 'int' ,
> -   'duplicate': 'int', 'skipped': 'int', 'normal': 'int',
> -   'normal-bytes': 'int', 'dirty-pages-rate' : 'int',
> -   'mbps' : 'number', 'dirty-sync-count' : 'int',
> -   'postcopy-requests' : 'int', 'page-size' : 'int' } }
> -
> -##
> -# @XBZRLECacheStats:
> -#
> -# Detailed XBZRLE migration cache statistics
> -#
> -# @cache-size: XBZRLE cache size
> -#
> -# @bytes: amount of bytes already transferred to the target VM
> -#
> -# @pages: amount of pages transferred to the target VM
> -#
> -# @cache-miss: number of cache miss
> -#
> -# @cache-miss-rate: rate of cache miss (since 2.1)
> -#
> -# @overflow: number of overflows
> -#
> -# Since: 1.2
> -##
> -{ 'struct': 'XBZRLECacheStats',
> -  'data': {'cache-size': 'int', 'bytes': 'int', 'pages': 'int',
> -   'cache-miss': 'int', 'cache-miss-rate': 'number',
> -   'overflow': 'int' } }
> -
> -##
> -# @MigrationStatus:
> -#
> -# An enumeration of migration status.
> -#
> -# @none: no migration has ever happened.
> -#
> -# @setup: migration process has been initiated.
> -#
> -# @cancelling: in the process of cancelling migration.
> -#
> -# @cancelled: cancelling migration is finished.
> -#
> -# @active: in the process of doing migration.
> -#
> -# @postcopy-active: like active, but now in postcopy mode. (since 2.5)
> -#
> -# @co

Re: [Qemu-devel] [PATCH v2 09/16] qapi-schema: Collect migration stuff in qapi/migration.json

2017-08-25 Thread Dr. David Alan Gilbert
* Markus Armbruster (arm...@redhat.com) wrote:
> Cc: Juan Quintela 
> Cc: Dr. David Alan Gilbert 
> Signed-off-by: Markus Armbruster 


Two thoughts:
  a) Do you actually want that as migration/migration.json?
  b) I'd prefer StrOrNull to be somewhere more central; Migration may be
  the only user, but it's not logically migration specific.


Reviewed-by: Dr. David Alan Gilbert 

Dave

> ---
>  MAINTAINERS |1 +
>  Makefile|1 +
>  qapi-schema.json| 1056 +
>  qapi/common.json|   16 +
>  qapi/event.json |   38 --
>  qapi/migration.json | 1085 
> +++
>  6 files changed, 1104 insertions(+), 1093 deletions(-)
>  create mode 100644 qapi/migration.json
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 24c5105..baa9859 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1498,6 +1498,7 @@ F: migration/
>  F: scripts/vmstate-static-checker.py
>  F: tests/vmstate-static-checker-data/
>  F: docs/migration.txt
> +F: qapi/migration.json
>  
>  Seccomp
>  M: Eduardo Otubo 
> diff --git a/Makefile b/Makefile
> index c7b6fd1..18cf670 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -413,6 +413,7 @@ qapi-modules = $(SRC_PATH)/qapi-schema.json 
> $(SRC_PATH)/qapi/common.json \
> $(SRC_PATH)/qapi/char.json \
> $(SRC_PATH)/qapi/crypto.json \
> $(SRC_PATH)/qapi/event.json $(SRC_PATH)/qapi/introspect.json \
> +   $(SRC_PATH)/qapi/migration.json \
> $(SRC_PATH)/qapi/net.json \
> $(SRC_PATH)/qapi/rocker.json \
> $(SRC_PATH)/qapi/run-state.json \
> diff --git a/qapi-schema.json b/qapi-schema.json
> index 6a23f59..21f54ea 100644
> --- a/qapi-schema.json
> +++ b/qapi-schema.json
> @@ -87,6 +87,7 @@
>  { 'include': 'qapi/net.json' }
>  { 'include': 'qapi/rocker.json' }
>  { 'include': 'qapi/ui.json' }
> +{ 'include': 'qapi/migration.json' }
>  { 'include': 'qapi/event.json' }
>  { 'include': 'qapi/trace.json' }
>  { 'include': 'qapi/introspect.json' }
> @@ -117,22 +118,6 @@
>  { 'command': 'qmp_capabilities' }
>  
>  ##
> -# @StrOrNull:
> -#
> -# This is a string value or the explicit lack of a string (null
> -# pointer in C).  Intended for cases when 'optional absent' already
> -# has a different meaning.
> -#
> -# @s: the string value
> -# @n: no string value
> -#
> -# Since: 2.10
> -##
> -{ 'alternate': 'StrOrNull',
> -  'data': { 's': 'str',
> -'n': 'null' } }
> -
> -##
>  # @LostTickPolicy:
>  #
>  # Policy for handling lost ticks in timer devices.
> @@ -316,778 +301,6 @@
>  { 'command': 'query-events', 'returns': ['EventInfo'] }
>  
>  ##
> -# @MigrationStats:
> -#
> -# Detailed migration status.
> -#
> -# @transferred: amount of bytes already transferred to the target VM
> -#
> -# @remaining: amount of bytes remaining to be transferred to the target VM
> -#
> -# @total: total amount of bytes involved in the migration process
> -#
> -# @duplicate: number of duplicate (zero) pages (since 1.2)
> -#
> -# @skipped: number of skipped zero pages (since 1.5)
> -#
> -# @normal: number of normal pages (since 1.2)
> -#
> -# @normal-bytes: number of normal bytes sent (since 1.2)
> -#
> -# @dirty-pages-rate: number of pages dirtied by second by the
> -#guest (since 1.3)
> -#
> -# @mbps: throughput in megabits/sec. (since 1.6)
> -#
> -# @dirty-sync-count: number of times that dirty ram was synchronized (since 
> 2.1)
> -#
> -# @postcopy-requests: The number of page requests received from the 
> destination
> -#(since 2.7)
> -#
> -# @page-size: The number of bytes per page for the various page-based
> -#statistics (since 2.10)
> -#
> -# Since: 0.14.0
> -##
> -{ 'struct': 'MigrationStats',
> -  'data': {'transferred': 'int', 'remaining': 'int', 'total': 'int' ,
> -   'duplicate': 'int', 'skipped': 'int', 'normal': 'int',
> -   'normal-bytes': 'int', 'dirty-pages-rate' : 'int',
> -   'mbps' : 'number', 'dirty-sync-count' : 'int',
> -   'postcopy-requests' : 'int', 'page-size' : 'int' } }
> -
> -##
> -# @XBZRLECacheStats:
> -#
> -# Detailed XBZRLE migration cache statistics
> -#
> -# @cache-size: XBZRLE cache size
> -#
> -# @bytes: amount of bytes already transferred to the target VM
> -#
> -# @pages: amount of pages transferred to the target VM
> -#
> -# @cache-miss: number of cache miss
> -#
> -# @cache-miss-rate: rate of cache miss (since 2.1)
> -#
> -# @overflow: number of overflows
> -#
> -# Since: 1.2
> -##
> -{ 'struct': 'XBZRLECacheStats',
> -  'data': {'cache-size': 'int', 'bytes': 'int', 'pages': 'int',
> -   'cache-miss': 'int', 'cache-miss-rate': 'number',
> -   'overflow': 'int' } }
> -
> -##
> -# @MigrationStatus:
> -#
> -# An enumeration of migration status.
> -#
> -# @none: no migration has ever happened.
> -#
> -# @setup: migration process has been initiated.
> -#
> -# @cancelling: in the process of cancelli

Re: [Qemu-devel] [PATCH v2 09/16] qapi-schema: Collect migration stuff in qapi/migration.json

2017-08-28 Thread Markus Armbruster
"Dr. David Alan Gilbert"  writes:

> * Markus Armbruster (arm...@redhat.com) wrote:
>> Cc: Juan Quintela 
>> Cc: Dr. David Alan Gilbert 
>> Signed-off-by: Markus Armbruster 
>
>
> Two thoughts:
>   a) Do you actually want that as migration/migration.json?

I'd prefer to keep the QAPI schema together.  But that could be my
schema maintainer bias talking :)

>   b) I'd prefer StrOrNull to be somewhere more central; Migration may be
>   the only user, but it's not logically migration specific.

Makes sense.  I'll move it to common.json.

> Reviewed-by: Dr. David Alan Gilbert 

Thanks!



Re: [Qemu-devel] [PATCH v2 09/16] qapi-schema: Collect migration stuff in qapi/migration.json

2017-09-01 Thread Markus Armbruster
Markus Armbruster  writes:

> "Dr. David Alan Gilbert"  writes:
>
>> * Markus Armbruster (arm...@redhat.com) wrote:
>>> Cc: Juan Quintela 
>>> Cc: Dr. David Alan Gilbert 
>>> Signed-off-by: Markus Armbruster 
>>
>>
>> Two thoughts:
>>   a) Do you actually want that as migration/migration.json?
>
> I'd prefer to keep the QAPI schema together.  But that could be my
> schema maintainer bias talking :)
>
>>   b) I'd prefer StrOrNull to be somewhere more central; Migration may be
>>   the only user, but it's not logically migration specific.
>
> Makes sense.  I'll move it to common.json.

Err, this patch already moves it there.

>> Reviewed-by: Dr. David Alan Gilbert 
>
> Thanks!