diff mbox

[V15,1/5] docs: vm generation id device's description

Message ID 1430133591-6197-2-git-send-email-ghammer@redhat.com
State New
Headers show

Commit Message

Gal Hammer April 27, 2015, 11:19 a.m. UTC
Signed-off-by: Gal Hammer <ghammer@redhat.com>
---
 docs/specs/vmgenid.txt | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)
 create mode 100644 docs/specs/vmgenid.txt

Comments

Michael S. Tsirkin April 27, 2015, 1:42 p.m. UTC | #1
On Mon, Apr 27, 2015 at 02:19:47PM +0300, Gal Hammer wrote:
> Signed-off-by: Gal Hammer <ghammer@redhat.com>
> ---
>  docs/specs/vmgenid.txt | 35 +++++++++++++++++++++++++++++++++++
>  1 file changed, 35 insertions(+)
>  create mode 100644 docs/specs/vmgenid.txt
> 
> diff --git a/docs/specs/vmgenid.txt b/docs/specs/vmgenid.txt
> new file mode 100644
> index 0000000..86ce6ab
> --- /dev/null
> +++ b/docs/specs/vmgenid.txt
> @@ -0,0 +1,35 @@
> +VIRTUAL MACHINE GENERATION ID
> +=============================
> +
> +Copyright (C) 2014 Red Hat, Inc.
> +
> +This work is licensed under the terms of the GNU GPL, version 2 or later.
> +See the COPYING file in the top-level directory.
> +
> +===
> +
> +The VM generation ID (vmgenid) device is an emulated device which
> +exposes a 128-bit, cryptographically random, integer value identifier.
> +This allows management applications (e.g. libvirt) to notify the guest
> +operating system when the virtual machine is executed with a different
> +configuration (e.g. snapshot execution or creation from a template).
> +
> +This is specified on the web at: http://go.microsoft.com/fwlink/?LinkId=260709
> +
> +---
> +
> +The vmgenid device is a sysbus device with the following ACPI ID:
> +"QEMU0002".
> +
> +The device adds a "vmgenid.uuid" property, which can be modified using
> +the -global command line argument or the QMP interface.
> +
> +The device uses a fixed memory resource: 0xfedf0000-0xfedf000f to store
> +the GUID's buffer.
> +
> +According to the specification, any change to the GUID executes an
> +ACPI notification. The vmgenid device triggers the GPE._E00 which
> +executes the ACPI Notify operation.
> +
> +Although not specified in Microsoft's document, it is assumed that the
> +device is expected to use the little-endian system.

host? guest?
Please fix that. UUID is just a byte array, no need to
assume endian-ness anywhere.

> -- 
> 2.1.0
Michael S. Tsirkin April 27, 2015, 1:55 p.m. UTC | #2
On Mon, Apr 27, 2015 at 02:19:47PM +0300, Gal Hammer wrote:
> Signed-off-by: Gal Hammer <ghammer@redhat.com>
> ---
>  docs/specs/vmgenid.txt | 35 +++++++++++++++++++++++++++++++++++
>  1 file changed, 35 insertions(+)
>  create mode 100644 docs/specs/vmgenid.txt
> 
> diff --git a/docs/specs/vmgenid.txt b/docs/specs/vmgenid.txt
> new file mode 100644
> index 0000000..86ce6ab
> --- /dev/null
> +++ b/docs/specs/vmgenid.txt
> @@ -0,0 +1,35 @@
> +VIRTUAL MACHINE GENERATION ID
> +=============================
> +
> +Copyright (C) 2014 Red Hat, Inc.

It's 2015, isn't it?

> +
> +This work is licensed under the terms of the GNU GPL, version 2 or later.
> +See the COPYING file in the top-level directory.
> +
> +===
> +
> +The VM generation ID (vmgenid) device is an emulated device which
> +exposes a 128-bit, cryptographically random, integer value identifier.

The value is up to user, let's not claim it's cryptographically random.

> +This allows management applications (e.g. libvirt) to notify the guest
> +operating system when the virtual machine is executed with a different
> +configuration (e.g. snapshot execution or creation from a template).
> +
> +This is specified on the web at: http://go.microsoft.com/fwlink/?LinkId=260709
> +
> +---
> +
> +The vmgenid device is a sysbus device with the following ACPI ID:
> +"QEMU0002".

No one is expected to locate it using that ID, right?

> +
> +The device adds a "vmgenid.uuid" property, which can be modified using
> +the -global command line argument or the QMP interface.
> +
> +The device uses a fixed memory resource: 0xfedf0000-0xfedf000f to store
> +the GUID's buffer.
> +
> +According to the specification, any change to the GUID executes an
> +ACPI notification. The vmgenid device triggers the GPE._E00 which
> +executes the ACPI Notify operation.
> +
> +Although not specified in Microsoft's document, it is assumed that the
> +device is expected to use the little-endian system.
> -- 
> 2.1.0
Eric Blake April 27, 2015, 2:56 p.m. UTC | #3
On 04/27/2015 05:19 AM, Gal Hammer wrote:
> Signed-off-by: Gal Hammer <ghammer@redhat.com>
> ---
>  docs/specs/vmgenid.txt | 35 +++++++++++++++++++++++++++++++++++
>  1 file changed, 35 insertions(+)
>  create mode 100644 docs/specs/vmgenid.txt
> 
> diff --git a/docs/specs/vmgenid.txt b/docs/specs/vmgenid.txt
> new file mode 100644
> index 0000000..86ce6ab
> --- /dev/null
> +++ b/docs/specs/vmgenid.txt
> @@ -0,0 +1,35 @@
> +VIRTUAL MACHINE GENERATION ID
> +=============================
> +
> +Copyright (C) 2014 Red Hat, Inc.

Do you want to include 2015?

What you have is good.  But it might also be worth documenting how one
would set a new value via QMP (I assume it is a matter of finding the
right QOM path to the device, then using 'qom-set' on the property).
Can be done as a separate patch on top, so:

Reviewed-by: Eric Blake <eblake@redhat.com>
Gal Hammer April 28, 2015, 2:20 p.m. UTC | #4
On 27/04/2015 16:55, Michael S. Tsirkin wrote:
> On Mon, Apr 27, 2015 at 02:19:47PM +0300, Gal Hammer wrote:
>> Signed-off-by: Gal Hammer <ghammer@redhat.com>
>> ---
>>   docs/specs/vmgenid.txt | 35 +++++++++++++++++++++++++++++++++++
>>   1 file changed, 35 insertions(+)
>>   create mode 100644 docs/specs/vmgenid.txt
>>
>> diff --git a/docs/specs/vmgenid.txt b/docs/specs/vmgenid.txt
>> new file mode 100644
>> index 0000000..86ce6ab
>> --- /dev/null
>> +++ b/docs/specs/vmgenid.txt
>> @@ -0,0 +1,35 @@
>> +VIRTUAL MACHINE GENERATION ID
>> +=============================
>> +
>> +Copyright (C) 2014 Red Hat, Inc.
>
> It's 2015, isn't it?
>
>> +
>> +This work is licensed under the terms of the GNU GPL, version 2 or later.
>> +See the COPYING file in the top-level directory.
>> +
>> +===
>> +
>> +The VM generation ID (vmgenid) device is an emulated device which
>> +exposes a 128-bit, cryptographically random, integer value identifier.
>
> The value is up to user, let's not claim it's cryptographically random.

I'll add a sentence that clear this issue.

>
>> +This allows management applications (e.g. libvirt) to notify the guest
>> +operating system when the virtual machine is executed with a different
>> +configuration (e.g. snapshot execution or creation from a template).
>> +
>> +This is specified on the web at: http://go.microsoft.com/fwlink/?LinkId=260709
>> +
>> +---
>> +
>> +The vmgenid device is a sysbus device with the following ACPI ID:
>> +"QEMU0002".
>
> No one is expected to locate it using that ID, right?

Nope. According to the specs the device should be identified through its 
_CID and/or _DDN names.

>> +
>> +The device adds a "vmgenid.uuid" property, which can be modified using
>> +the -global command line argument or the QMP interface.
>> +
>> +The device uses a fixed memory resource: 0xfedf0000-0xfedf000f to store
>> +the GUID's buffer.
>> +
>> +According to the specification, any change to the GUID executes an
>> +ACPI notification. The vmgenid device triggers the GPE._E00 which
>> +executes the ACPI Notify operation.
>> +
>> +Although not specified in Microsoft's document, it is assumed that the
>> +device is expected to use the little-endian system.
>> --
>> 2.1.0
Gal Hammer April 28, 2015, 2:38 p.m. UTC | #5
On 27/04/2015 17:56, Eric Blake wrote:
> On 04/27/2015 05:19 AM, Gal Hammer wrote:
>> Signed-off-by: Gal Hammer <ghammer@redhat.com>
>> ---
>>   docs/specs/vmgenid.txt | 35 +++++++++++++++++++++++++++++++++++
>>   1 file changed, 35 insertions(+)
>>   create mode 100644 docs/specs/vmgenid.txt
>>
>> diff --git a/docs/specs/vmgenid.txt b/docs/specs/vmgenid.txt
>> new file mode 100644
>> index 0000000..86ce6ab
>> --- /dev/null
>> +++ b/docs/specs/vmgenid.txt
>> @@ -0,0 +1,35 @@
>> +VIRTUAL MACHINE GENERATION ID
>> +=============================
>> +
>> +Copyright (C) 2014 Red Hat, Inc.
>
> Do you want to include 2015?

Done.

> What you have is good.  But it might also be worth documenting how one
> would set a new value via QMP (I assume it is a matter of finding the
> right QOM path to the device, then using 'qom-set' on the property).
> Can be done as a separate patch on top, so:

Good idea. I'll add it.

> Reviewed-by: Eric Blake <eblake@redhat.com>

Thanks! :-)

     Gal.
diff mbox

Patch

diff --git a/docs/specs/vmgenid.txt b/docs/specs/vmgenid.txt
new file mode 100644
index 0000000..86ce6ab
--- /dev/null
+++ b/docs/specs/vmgenid.txt
@@ -0,0 +1,35 @@ 
+VIRTUAL MACHINE GENERATION ID
+=============================
+
+Copyright (C) 2014 Red Hat, Inc.
+
+This work is licensed under the terms of the GNU GPL, version 2 or later.
+See the COPYING file in the top-level directory.
+
+===
+
+The VM generation ID (vmgenid) device is an emulated device which
+exposes a 128-bit, cryptographically random, integer value identifier.
+This allows management applications (e.g. libvirt) to notify the guest
+operating system when the virtual machine is executed with a different
+configuration (e.g. snapshot execution or creation from a template).
+
+This is specified on the web at: http://go.microsoft.com/fwlink/?LinkId=260709
+
+---
+
+The vmgenid device is a sysbus device with the following ACPI ID:
+"QEMU0002".
+
+The device adds a "vmgenid.uuid" property, which can be modified using
+the -global command line argument or the QMP interface.
+
+The device uses a fixed memory resource: 0xfedf0000-0xfedf000f to store
+the GUID's buffer.
+
+According to the specification, any change to the GUID executes an
+ACPI notification. The vmgenid device triggers the GPE._E00 which
+executes the ACPI Notify operation.
+
+Although not specified in Microsoft's document, it is assumed that the
+device is expected to use the little-endian system.