All of lore.kernel.org
 help / color / mirror / Atom feed
From: Laszlo Ersek <lersek@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>
Cc: ehabkost@redhat.com, mst@redhat.com, ghammer@redhat.com,
	qemu-devel@nongnu.org, lcapitulino@redhat.com,
	pbonzini@redhat.com
Subject: Re: [Qemu-devel] [PATCH v17 0/9] Virtual Machine Generation ID
Date: Wed, 20 Jan 2016 15:20:12 +0100	[thread overview]
Message-ID: <569F979C.1050200@redhat.com> (raw)
In-Reply-To: <20160120101849.50ac5d36@nial.brq.redhat.com>

On 01/20/16 10:18, Igor Mammedov wrote:
> On Tue, 19 Jan 2016 17:49:30 +0100
> Laszlo Ersek <lersek@redhat.com> wrote:
> 
>> 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
> It should be ok to use _E00 per spec since it's GPE event.
> 
> Here is quote from spec to what you were referring in your patch:
> 
> '(A query response of 0 from the embedded controller is
> reserved for “no outstanding events.”)'
> 
> That limits 0 bit handler limitation only to 'embedded controller'
> which is handled by _QXX methods.

Okay.

My other remark / question is then, do you think that having *both* _L00
and _E00 is valid?

The section under

    5.6.4.1.1 Queuing the Matching Control Method for Execution

seems to suggest that it's either-or; you can have at most one kind of
handler (either _Exx for edge triggered, or _Lxx for level triggered).

_L00 is already present in the DSDT; see build_dsdt():

        aml_append(scope, aml_method("_L00", 0, AML_NOTSERIALIZED));

and this series adds _E00.

... Hm, wait, it's okay -- your "[PATCH v17 3/9] pc: add a Virtual
Machine Generation ID device" removes the _L00 method. Cool.

(I just wonder why the ASL diff you posted didn't show this... I guess
because that diff was for the SSDT only, and the _L00 method was removed
from the DSDT.)

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-20 14:20 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
2016-01-20  9:18     ` Igor Mammedov
2016-01-20 14:20       ` Laszlo Ersek [this message]
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=569F979C.1050200@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.