qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v17 0/9] Virtual Machine Generation ID


From: Igor Mammedov
Subject: Re: [Qemu-devel] [PATCH v17 0/9] Virtual Machine Generation ID
Date: Tue, 19 Jan 2016 15:48:30 +0100

Here is SSDT ASL diff with vmgenid device present that
Laszlo's asked for:

@@ -135,6 +135,11 @@ DefinitionBlock ("tests/acpi-test-data/pc/SSDT.aml", 
"SSDT", 1, "BOCHS ", "BXPCS
         })
     }
 
+    Method (\_GPE._E00, 0, NotSerialized)  // _Exx: Edge-Triggered GPE
+    {
+        Notify (\_SB.PCI0.VGEN, 0x80) // Status Change
+    }
+
     Scope (\_SB)
     {
         Device (PCI0.PRES)
@@ -703,6 +708,28 @@ DefinitionBlock ("tests/acpi-test-data/pc/SSDT.aml", 
"SSDT", 1, "BOCHS ", "BXPCS
                 DVNT (PCIU, One)
                 DVNT (PCID, 0x03)
             }
+
+            Device (VGEN)
+            {
+                Name (_HID, "QEMU0003")  // _HID: Hardware ID
+                Name (_CID, "VM_Gen_Counter")  // _CID: Compatible ID
+                Name (_DDN, "VM_Gen_Counter")  // _DDN: DOS Device Name
+                Name (ADDR, Package (0x02)
+                {
+                    0xFEBF0000, 
+                    Zero
+                })
+                Name (_CRS, ResourceTemplate ()  // _CRS: Current Resource 
Settings
+                {
+                    QWordMemory (ResourceProducer, PosDecode, MinFixed, 
MaxFixed, Cacheable, ReadWrite,
+                        0x0000000000000000, // Granularity
+                        0x00000000FEBF0000, // Range Minimum
+                        0x00000000FEBF0FFF, // Range Maximum
+                        0x0000000000000000, // Translation Offset
+                        0x0000000000001000, // Length
+                        ,, , AddressRangeMemory, TypeStatic)
+                })
+            }
         }
     }
 }


'make V=1 check' doesn't show it since I've forgot to extend
bios-tables-test with vmgenid variant, but it should be
a separate patch anyway and I'd prefer to do it after
I merge DSDT with SSDT, which will reduce number of
test blobs we keep in tree along with other benefits.

On Tue, 19 Jan 2016 14:06:20 +0100
Igor Mammedov <address@hidden> wrote:

> It's respin of v14* series which uses a PCI BAR to map
> VGID page in guest AS.
> 
> Changes since v14:
>   - statically reserve used BAR resources in SSDT, so
>     that Windows won't claim them during PCI rebalancing
>   - support VGID page in high mem in addition to low mem
>   - add QMP/HMP interfaces to get/set VM Generation ID
>   - do not consume a PCI slot by default and attach
>     vmgenid device as a function of multifuction
>     ISA bridge.
>   - allow only one vmgenid device instance
> 
> 
> Tested with WS2012R2x64.
> Git tree for testing:
> https://github.com/imammedo/qemu.git vmgenid_v17
> 
> * v14, https://lists.gnu.org/archive/html/qemu-devel/2015-03/msg00530.html
> 
> Gal Hammer (1):
>   docs: vm generation id device's description
> 
> Igor Mammedov (8):
>   acpi: extend ACPI interface to provide access to ACPI registers and
>     SCI irq
>   pc: add a Virtual Machine Generation ID device
>   tests: add a unit test for the vmgenid device.
>   qmp/hmp: add query-vm-generation-id and 'info vm-generation-id'
>     commands
>   qmp/hmp: add set-vm-generation-id commands
>   add MachineClass->default_props for setting default device properties
>   pc: put PIIX3 in slot 1 explicitly and cleanup functions assignment
>   pc/q53: by default put vmgenid device as an function of ISA bridge
> 
>  default-configs/i386-softmmu.mak     |   1 +
>  default-configs/x86_64-softmmu.mak   |   1 +
>  docs/specs/pci-ids.txt               |   1 +
>  docs/specs/vmgenid.txt               |  36 +++++++
>  hmp-commands-info.hx                 |  13 +++
>  hmp-commands.hx                      |  13 +++
>  hmp.c                                |  21 ++++
>  hmp.h                                |   2 +
>  hw/acpi/piix4.c                      |  17 ++++
>  hw/i386/acpi-build.c                 |  56 ++++++++++-
>  hw/i386/pc_piix.c                    |  29 ++++--
>  hw/i386/pc_q35.c                     |  12 +++
>  hw/isa/lpc_ich9.c                    |  16 +++
>  hw/isa/vt82c686.c                    |  19 ++++
>  hw/misc/Makefile.objs                |   1 +
>  hw/misc/vmgenid.c                    | 183 
> +++++++++++++++++++++++++++++++++++
>  hw/pci-host/piix.c                   |   9 +-
>  include/hw/acpi/acpi.h               |   1 +
>  include/hw/acpi/acpi_dev_interface.h |   9 ++
>  include/hw/boards.h                  |   1 +
>  include/hw/i386/ich9.h               |   3 +-
>  include/hw/i386/pc.h                 |   9 +-
>  include/hw/misc/vmgenid.h            |  27 ++++++
>  include/hw/pci/pci.h                 |   1 +
>  qapi-schema.json                     |  18 ++++
>  qmp-commands.hx                      |  41 ++++++++
>  stubs/Makefile.objs                  |   1 +
>  stubs/vmgenid.c                      |  13 +++
>  tests/Makefile                       |   2 +
>  tests/vmgenid-test.c                 |  92 ++++++++++++++++++
>  vl.c                                 |   4 +
>  31 files changed, 636 insertions(+), 16 deletions(-)
>  create mode 100644 docs/specs/vmgenid.txt
>  create mode 100644 hw/misc/vmgenid.c
>  create mode 100644 include/hw/misc/vmgenid.h
>  create mode 100644 stubs/vmgenid.c
>  create mode 100644 tests/vmgenid-test.c
> 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]