qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Michael S. Tsirkin" <mst@redhat.com>
To: Ben Warren <ben@skyportsystems.com>
Cc: qemu-devel@nongnu.org, lersek@redhat.com, imammedo@redhat.com
Subject: Re: [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation ID support
Date: Mon, 6 Feb 2017 20:17:46 +0200	[thread overview]
Message-ID: <20170206201249-mutt-send-email-mst@kernel.org> (raw)
In-Reply-To: <769A787B-3A08-4A63-8521-9825C2DA0101@skyportsystems.com>

On Mon, Feb 06, 2017 at 09:59:55AM -0800, Ben Warren wrote:
>                +void vmgenid_add_fw_cfg(FWCfgState *s, GArray *guid)
>                +{
>                +    Object *obj = find_vmgenid_dev(NULL);
>                +    assert(obj);
>                +    VmGenIdState *vms = VMGENID(obj);
>                +
>                +    /* Create a read-only fw_cfg file for GUID */
>                +    fw_cfg_add_file(s, VMGENID_GUID_FW_CFG_FILE, guid->data,
>                +                    VMGENID_FW_CFG_SIZE);
>                +    /* Create a read-write fw_cfg file for Address */
>                +    fw_cfg_add_file_callback(s, VMGENID_ADDR_FW_CFG_FILE, NULL,
>         NULL,
> 
> 
>            Seems wrong. What if guest updates the address after command line
>            set it? You want a callback to copy guid there.
> 
> 
>         Sure, I can do that.  My understanding was that this is a read
>         callback, but if
>         it also is called upon a write, we should do what you suggest.
> 
> 
>     Hmm you are right. But we really need to call something
>     on write though - unlike read, it must be called after write.
>     Otherwise I don't see how it can work if you set gen id before
>     guest boots.
> 
>     I guess this means we need yet another callback per file.
>     FWCfgWriteCallback ?
> 
>     Can you implement this in hw/nvram/fw_cfg.c?
>     It's rather straight-forward to do.
> 
> 
> The reason it works is that we put the initial contents of the GUID (as
> supplied by command-line) into the GUID fw_cfg in the ‘vmgenid_build_acpi()’
> function, which is guaranteed to happen before the guest boots.  The only time
> QEMU needs to know VGIA is on later updates to the GUID (via monitor) or when
> restoring.  If you really think this extra complexity is needed, I can do so,
> but it seems to work very well as-is.

I see. So it's a race condition I think.  It works unless you change the
gen id after bios read the guid from the guid file but before it wrote
out the address.

Or do I miss something?

-- 
MST

  reply	other threads:[~2017-02-06 18:17 UTC|newest]

Thread overview: 70+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-05  9:11 [Qemu-devel] [PATCH v5 00/10] Add support for VM Generation ID ben
2017-02-05  9:11 ` [Qemu-devel] [PATCH v5 01/10] ACPI: Add a function for building named qword entries ben
2017-02-07 13:51   ` Igor Mammedov
2017-02-07 20:09     ` Laszlo Ersek
2017-02-08 10:43       ` Igor Mammedov
2017-02-08 10:53         ` Laszlo Ersek
2017-02-08 20:24           ` Ben Warren
2017-02-05  9:11 ` [Qemu-devel] [PATCH v5 02/10] linker-loader: Add new 'write pointer' command ben
2017-02-06 14:56   ` Michael S. Tsirkin
2017-02-06 17:16     ` Ben Warren
2017-02-06 17:31       ` Michael S. Tsirkin
2017-02-07 12:11         ` Igor Mammedov
2017-02-07 20:20           ` Laszlo Ersek
2017-02-05  9:11 ` [Qemu-devel] [PATCH v5 03/10] docs: VM Generation ID device description ben
2017-02-06 20:18   ` Eric Blake
2017-02-07 20:54   ` Laszlo Ersek
2017-02-10  0:55   ` Laszlo Ersek
2017-02-05  9:11 ` [Qemu-devel] [PATCH v5 04/10] ACPI: Add vmgenid storage entries to the build tables ben
2017-02-07 22:06   ` Laszlo Ersek
2017-02-05  9:12 ` [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation ID support ben
2017-02-06 16:15   ` Michael S. Tsirkin
2017-02-06 17:29     ` Ben Warren
2017-02-06 17:41       ` Michael S. Tsirkin
2017-02-06 17:59         ` Ben Warren
2017-02-06 18:17           ` Michael S. Tsirkin [this message]
2017-02-06 18:48             ` Ben Warren
2017-02-06 19:04               ` Michael S. Tsirkin
2017-02-06 19:44                 ` Ben Warren
2017-02-07 14:00         ` Igor Mammedov
2017-02-07 15:35           ` Michael S. Tsirkin
2017-02-07 16:04             ` Igor Mammedov
2017-02-07 16:22               ` Michael S. Tsirkin
2017-02-07 13:48   ` Igor Mammedov
2017-02-07 15:36     ` Michael S. Tsirkin
2017-02-08 20:19     ` Ben Warren
2017-02-09  9:59       ` Igor Mammedov
2017-02-08  0:48   ` Laszlo Ersek
2017-02-08 11:04     ` Igor Mammedov
2017-02-08 11:17       ` Laszlo Ersek
2017-02-08 12:00         ` Igor Mammedov
2017-02-08 22:34     ` Ben Warren
2017-02-08 23:43       ` Laszlo Ersek
2017-02-09 17:23     ` Igor Mammedov
2017-02-09 18:21       ` Michael S. Tsirkin
2017-02-09 19:27       ` Laszlo Ersek
2017-02-09 20:02         ` Ben Warren
2017-02-09 20:24           ` Laszlo Ersek
2017-02-09 20:39             ` Ben Warren
2017-02-10  8:54               ` Igor Mammedov
2017-02-09  0:37   ` Laszlo Ersek
2017-02-05  9:12 ` [Qemu-devel] [PATCH v5 06/10] qmp/hmp: add query-vm-generation-id and 'info vm-generation-id' commands ben
2017-02-05  9:12 ` [Qemu-devel] [PATCH v5 07/10] qmp/hmp: add set-vm-generation-id commands ben
2017-02-07 13:50   ` Igor Mammedov
2017-02-08 22:01   ` Laszlo Ersek
2017-02-05  9:12 ` [Qemu-devel] [PATCH v5 08/10] PC: Support dynamic sysbus on pc_i440fx ben
2017-02-06 16:31   ` Michael S. Tsirkin
2017-02-12 19:55     ` Marcel Apfelbaum
2017-02-13  0:32       ` Ben Warren
2017-02-07 14:05   ` Igor Mammedov
2017-02-05  9:12 ` [Qemu-devel] [PATCH v5 09/10] tests: Move reusable ACPI macros into a new header file ben
2017-02-05  9:12 ` [Qemu-devel] [PATCH v5 10/10] tests: Add unit tests for the VM Generation ID feature ben
2017-02-10 10:12 ` [Qemu-devel] [PATCH v5 00/10] Add support for VM Generation ID Laszlo Ersek
2017-02-10 10:28   ` Igor Mammedov
2017-02-10 15:31   ` Michael S. Tsirkin
2017-02-10 16:16     ` Igor Mammedov
2017-02-10 18:18       ` Andrew Jones
2017-02-10 18:27         ` Andreas Färber
2017-02-13 11:00           ` Igor Mammedov
2017-02-13 13:00             ` Michael S. Tsirkin
2017-02-13 13:40               ` Igor Mammedov

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=20170206201249-mutt-send-email-mst@kernel.org \
    --to=mst@redhat.com \
    --cc=ben@skyportsystems.com \
    --cc=imammedo@redhat.com \
    --cc=lersek@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).