From: Laszlo Ersek <lersek@redhat.com>
To: Eric Blake <eblake@redhat.com>, qemu-devel@nongnu.org
Cc: Gal Hammer <ghammer@redhat.com>,
Paolo Bonzini <pbonzini@redhat.com>,
Igor Mammedov <imammedo@redhat.com>,
"Michael S. Tsirkin" <mst@redhat.com>
Subject: Re: [Qemu-devel] [RFC] docs: describe QEMU's VMGenID design
Date: Wed, 2 Sep 2015 00:05:44 +0200 [thread overview]
Message-ID: <55E62138.1010209@redhat.com> (raw)
In-Reply-To: <55E600C5.9030505@redhat.com>
On 09/01/15 21:47, Eric Blake wrote:
> On 08/28/2015 02:18 PM, Laszlo Ersek wrote:
>> Cc: Paolo Bonzini <pbonzini@redhat.com>
>> Cc: Gal Hammer <ghammer@redhat.com>
>> Cc: Igor Mammedov <imammedo@redhat.com>
>> Cc: "Michael S. Tsirkin" <mst@redhat.com>
>> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
>> ---
>>
>> Notes:
>> This is based on the super long private email discussion we had two
>> months ago, plus on the IRL discussion between Michael and myself @ the
>> KVM Forum 2015.
>>
>> docs/specs/vmgenid.txt | 343 +++++++++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 343 insertions(+)
>> create mode 100644 docs/specs/vmgenid.txt
>>
>
> Grammar review; I may miss some technical details.
>
>> diff --git a/docs/specs/vmgenid.txt b/docs/specs/vmgenid.txt
>> new file mode 100644
>> index 0000000..d4bf132
>> --- /dev/null
>> +++ b/docs/specs/vmgenid.txt
>> @@ -0,0 +1,343 @@
>> +Virtual Machine Generation ID Device
>> +====================================
>
> Is it worth a preamble giving a specific copyright/license for this
> file? Without one, it inherits the default GPLv2+ from the top-level,
> and there are some people (although I'm not one) that worry that an
> independent implementation of a GPL'd spec must itself be GPL (that is,
> specifically choosing a looser license for the spec may make it more
> amenable to the OVMF folks).
(1) Like you, I don't believe that the copyright license covering a
specification would automatically cover the source code written based on
the specification.
(2) If necessary I (wearing my red fedora) could just relicense this
stuff on the spot, as copyright holder, if the greater edk2 community
had concerns. But, OVMF patches will not be necessary at all, because...
see (3).
(3) I couldn't decide if this text file should go under docs/, or
docs/specs. The tricky fact about this specific vmgenid design is that
the guest will "know" about it, but no *specific* guest code needs to be
written for it.
First, the ACPI linker/loader clients in both SeaBIOS and OVMF should
"just work" (without any changes). In that sense the *specific* design
here is not guest ABI. The ACPI linker/loader is guest ABI instead; this
design is just a "clever" application of the ACPI linker/loader. (I can
call it clever, it's only in part my idea. :))
Second, guest operating systems will need drivers for this device
(obviously), but those drivers are ACPI based, and will have to consult
the Microsoft spec only, not this file.
Given the above two (ie. neither guest firmare developers nor guest OS
developers need read this text file), I'd say this is not guest ABI. It
is (detailed) documentation / specification for some QEMU internals.
Do you think the file should go under docs/, not docs/specs?
>
>> +
>> +The Microsoft specification entitled "Virtual Machine Generation ID",
>> +maintained at <http://go.microsoft.com/fwlink/?LinkId=260709>, defines an ACPI
>> +feature that allows the guest OSPM to recognize when it has been returned "to
>> +an earlier point in time", eg. by restoral from snapshot, or by incoming
>
> s/eg./e.g./
Good catch!
> s/restoral/restoring/
Okay.
>
>> +migration. Quoting the spec,
>
> [I'm not sure that incoming migration is necessarily returning to an
> earlier point in time; although I can certainly see that being the case
> when repeatedly doing incoming migration from the same file]
Yeah, I thought the same. The MS spec uses the word "replay" or some
such IIRC. I kinda accepted that this part wasn't going to be 100%
precise. :)
>
>> +
>> + The virtual machine generation ID is a feature whereby the virtual machines
>
> s/machines/machine's/ [oh wait, you're quoting Microsoft's poor grammar]
Yep :) I noticed that. I resisted the urge to fix it. :)
>
>> + BIOS will expose a new ID. This is a 128-bit, cryptographically random
>> + integer value identifier that will be different every time the virtual
>> + machine executes from a different configuration file-such as executing from
>> + a recovered snapshot, or executing after restoring from backup. [...]
>> +
>> +The document you are reading now extracts the requirements set forth by the
>> +VMGenID spec for hypervisors that intend to provide the feature, and describes
>> +QEMU's implementation. The design below targets both SeaBIOS and OVMF as
>> +compatible guest firmwares, without any changes to either of them.
>> +
>
> Otherwise, I didn't spot any obvious wording problems.
Thanks for the review!
Laszlo
>
next prev parent reply other threads:[~2015-09-01 22:05 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-28 20:18 [Qemu-devel] [RFC] docs: describe QEMU's VMGenID design Laszlo Ersek
2015-09-01 19:47 ` Eric Blake
2015-09-01 22:05 ` Laszlo Ersek [this message]
2015-09-01 22:22 ` Eric Blake
2015-09-07 16:30 ` Paolo Bonzini
2015-09-03 13:49 ` Michael S. Tsirkin
2015-09-03 14:24 ` Laszlo Ersek
2015-09-13 11:56 ` [Qemu-devel] Windows does not support DataTableRegion at all [was: docs: describe QEMU's VMGenID design] Laszlo Ersek
2015-09-13 12:34 ` Michael S. Tsirkin
2015-09-13 12:57 ` Laszlo Ersek
2015-09-14 8:24 ` Igor Mammedov
2015-09-14 10:24 ` Laszlo Ersek
2015-09-14 16:53 ` [Qemu-devel] [edk2] " Bill Paul
2015-09-14 17:14 ` Moore, Robert
2015-09-14 17:23 ` Walz, Michael C
2015-09-14 18:04 ` Moore, Robert
2015-09-14 18:24 ` Laszlo Ersek
2015-09-15 10:49 ` Laszlo Ersek
2015-09-14 18:20 ` Laszlo Ersek
2015-09-14 21:12 ` Bill Paul
2015-09-15 10:49 ` Laszlo Ersek
2015-09-15 13:45 ` Moore, Robert
2015-09-15 14:29 ` Laszlo Ersek
2015-09-13 12:43 ` [Qemu-devel] [PATCH FYI 00/13] ACPI stuff for the DataTableRegion()-based VMGenID Laszlo Ersek
2015-09-13 12:43 ` [Qemu-devel] [PATCH FYI 01/13] docs: describe QEMU's VMGenID design Laszlo Ersek
2015-09-13 12:43 ` [Qemu-devel] [PATCH FYI 02/13] hw/acpi: add i386 callbacks for injecting GPE 04 when the VMGENID changes Laszlo Ersek
2015-09-13 12:43 ` [Qemu-devel] [PATCH FYI 03/13] hw/acpi: rename "AcpiBuildTables.table_data" to "main_blob" Laszlo Ersek
2015-09-13 12:43 ` [Qemu-devel] [PATCH FYI 04/13] hw/acpi: allow RSDT entries to be relocated to various fw_cfg blobs Laszlo Ersek
2015-09-13 12:43 ` [Qemu-devel] [PATCH FYI 05/13] hw/acpi: add more flexible acpi_add_table() and build_header() variants Laszlo Ersek
2015-09-13 12:43 ` [Qemu-devel] [PATCH FYI 06/13] hw/acpi: introduce ACPI_BUILD_QEMUPARAM_FILE Laszlo Ersek
2015-09-13 12:43 ` [Qemu-devel] [PATCH FYI 07/13] hw/acpi: introduce the AcpiQemuParamTable structure Laszlo Ersek
2015-09-13 12:43 ` [Qemu-devel] [PATCH FYI 08/13] hw/i386: build UEFI ACPI Data Table for VMGENID in the dedicated blob (WIP) Laszlo Ersek
2015-09-13 12:43 ` [Qemu-devel] [PATCH FYI 09/13] hw/acpi: expose more parameters for aml_method() Laszlo Ersek
2015-09-13 12:43 ` [Qemu-devel] [PATCH FYI 10/13] hw/acpi: add AML generator function for DataTableRegion() Laszlo Ersek
2015-09-13 12:43 ` [Qemu-devel] [PATCH FYI 11/13] hw/acpi: add AML generator function for AccessAs() Laszlo Ersek
2015-09-13 12:43 ` [Qemu-devel] [PATCH FYI 12/13] hw/acpi: add AML generator function for CreateQWordField() Laszlo Ersek
2015-09-13 12:43 ` [Qemu-devel] [PATCH FYI 13/13] hw/i386: generate AML for the VMGENID device (WIP) Laszlo Ersek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=55E62138.1010209@redhat.com \
--to=lersek@redhat.com \
--cc=eblake@redhat.com \
--cc=ghammer@redhat.com \
--cc=imammedo@redhat.com \
--cc=mst@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).