qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Laszlo Ersek <lersek@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>, qemu-devel@nongnu.org
Cc: ghammer@redhat.com, pbonzini@redhat.com, lcapitulino@redhat.com,
	ehabkost@redhat.com, mst@redhat.com
Subject: Re: [Qemu-devel] [PATCH v17 0/9] Virtual Machine Generation ID
Date: Tue, 19 Jan 2016 17:49:30 +0100	[thread overview]
Message-ID: <569E691A.3030500@redhat.com> (raw)
In-Reply-To: <20160119154830.251d2510@nial.brq.redhat.com>

On 01/19/16 15:48, Igor Mammedov wrote:
> 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
> +    }
> +

Thanks a lot! I have one comment for this: I think _E00 cannot be used.
Please see the argument in my earlier (now obsolete) patch:

  [PATCH FYI 02/13] hw/acpi: add i386 callbacks for injecting GPE 04
                    when the VMGENID changes

  http://thread.gmane.org/gmane.comp.emulators.qemu/357940/focus=361705

Thanks!
Laszlo


>      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 <imammedo@redhat.com> 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	other threads:[~2016-01-19 16:49 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-19 13:06 [Qemu-devel] [PATCH v17 0/9] Virtual Machine Generation ID Igor Mammedov
2016-01-19 13:06 ` [Qemu-devel] [PATCH v17 1/9] acpi: extend ACPI interface to provide access to ACPI registers and SCI irq Igor Mammedov
2016-01-19 13:06 ` [Qemu-devel] [PATCH v17 2/9] docs: vm generation id device's description Igor Mammedov
2016-01-20 16:40   ` Eric Blake
2016-01-21 12:43     ` Igor Mammedov
2016-01-19 13:06 ` [Qemu-devel] [PATCH v17 3/9] pc: add a Virtual Machine Generation ID device Igor Mammedov
2016-01-19 13:06 ` [Qemu-devel] [PATCH v17 4/9] tests: add a unit test for the vmgenid device Igor Mammedov
2016-01-19 13:06 ` [Qemu-devel] [PATCH v17 5/9] qmp/hmp: add query-vm-generation-id and 'info vm-generation-id' commands Igor Mammedov
2016-01-20 16:44   ` Eric Blake
2016-01-19 13:06 ` [Qemu-devel] [PATCH v17 6/9] qmp/hmp: add set-vm-generation-id commands Igor Mammedov
2016-01-20 16:48   ` Eric Blake
2016-01-21 12:46     ` Igor Mammedov
2016-01-19 13:06 ` [Qemu-devel] [PATCH v17 7/9] add MachineClass->default_props for setting default device properties Igor Mammedov
2016-01-23 14:59   ` Eduardo Habkost
2016-01-26 10:28     ` Igor Mammedov
2016-01-26 14:12       ` Eduardo Habkost
2016-01-19 13:06 ` [Qemu-devel] [PATCH v17 8/9] pc: put PIIX3 in slot 1 explicitly and cleanup functions assignment Igor Mammedov
2016-01-19 13:06 ` [Qemu-devel] [PATCH v17 9/9] pc/q53: by default put vmgenid device as an function of ISA bridge Igor Mammedov
2016-01-19 14:48 ` [Qemu-devel] [PATCH v17 0/9] Virtual Machine Generation ID Igor Mammedov
2016-01-19 16:49   ` Laszlo Ersek [this message]
2016-01-20  9:18     ` Igor Mammedov
2016-01-20 14:20       ` Laszlo Ersek
2016-01-21 13:08         ` 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=569E691A.3030500@redhat.com \
    --to=lersek@redhat.com \
    --cc=ehabkost@redhat.com \
    --cc=ghammer@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=lcapitulino@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).