[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation I
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation ID support |
Date: |
Mon, 6 Feb 2017 20:17:46 +0200 |
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
- [Qemu-devel] [PATCH v5 04/10] ACPI: Add vmgenid storage entries to the build tables, (continued)
- [Qemu-devel] [PATCH v5 04/10] ACPI: Add vmgenid storage entries to the build tables, ben, 2017/02/05
- [Qemu-devel] [PATCH v5 03/10] docs: VM Generation ID device description, ben, 2017/02/05
- [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation ID support, ben, 2017/02/05
- Re: [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation ID support, Michael S. Tsirkin, 2017/02/06
- Re: [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation ID support, Ben Warren, 2017/02/06
- Re: [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation ID support, Michael S. Tsirkin, 2017/02/06
- Re: [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation ID support, Ben Warren, 2017/02/06
- Re: [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation ID support,
Michael S. Tsirkin <=
- Re: [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation ID support, Ben Warren, 2017/02/06
- Re: [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation ID support, Michael S. Tsirkin, 2017/02/06
- Re: [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation ID support, Ben Warren, 2017/02/06
- Re: [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation ID support, Igor Mammedov, 2017/02/07
- Re: [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation ID support, Michael S. Tsirkin, 2017/02/07
- Re: [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation ID support, Igor Mammedov, 2017/02/07
- Re: [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation ID support, Michael S. Tsirkin, 2017/02/07
Re: [Qemu-devel] [PATCH v5 05/10] ACPI: Add Virtual Machine Generation ID support, Igor Mammedov, 2017/02/07