qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH] ACPI DSDT: Make control method `IQCR` serialized
@ 2013-11-14 12:16 Michael S. Tsirkin
  2013-11-14 13:37 ` Marcel Apfelbaum
  2013-11-14 14:44 ` Laszlo Ersek
  0 siblings, 2 replies; 3+ messages in thread
From: Michael S. Tsirkin @ 2013-11-14 12:16 UTC (permalink / raw)
  To: Marcel Apfelbaum
  Cc: Hu Tao, qemu-devel, Gerd Hoffmann, Anthony Liguori,
	Kenji Kaneshige, Igor Mammedov, Laszlo Ersek, Paul Menzel

Forward-port the following commit from seabios:

commit 995bbeef78b338370f426bf8d0399038c3fa259c
Author: Paul Menzel <paulepanter@users.sourceforge.net>
Date:   Thu Oct 3 11:30:52 2013 +0200

    The ASL Optimizing Compiler version 20130823-32 [Sep 11 2013] issues the
    following warning.

            $ make
            […]
              Compiling IASL out/src/fw/acpi-dsdt.hex
            out/src/fw/acpi-dsdt.dsl.i    360:         Method(IQCR, 1, NotSerialized) {
            Remark   2120 -                                     ^ Control Method should be made Serialized (due to creation of named objects within)
            […]
            ASL Input:     out/src/fw/acpi-dsdt.dsl.i - 475 lines, 19181 bytes, 316 keywords
            AML Output:    out/src/fw/acpi-dsdt.aml - 4407 bytes, 159 named objects, 157 executable opcodes
            Listing File:  out/src/fw/acpi-dsdt.lst - 143715 bytes
            Hex Dump:      out/src/fw/acpi-dsdt.hex - 41661 bytes

            Compilation complete. 0 Errors, 0 Warnings, 1 Remarks, 246 Optimizations
            […]

    After changing the parameter from `NotSerialized` to `Serialized`, the
    remark is indeed gone and there is no size change.

    The remark was added in ACPICA version 20130517 [1] and gives the
    following explanation.

            If a thread blocks within the method for any reason, and another thread
            enters the method, the method will fail because an attempt will be
            made to create the same (named) object twice.

            In this case, issue a remark that the method should be marked
            serialized. ACPICA BZ 909.

    [1] https://github.com/acpica/acpica/commit/ba84d0fc18ba910a47a3f71c68a43543c06e6831

    Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net>

Reported-by: Marcel Apfelbaum <marcel.a@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
---
 hw/i386/acpi-dsdt.dsl               | 2 +-
 hw/i386/acpi-dsdt.hex.generated     | 4 ++--
 hw/i386/q35-acpi-dsdt.dsl           | 2 +-
 hw/i386/q35-acpi-dsdt.hex.generated | 4 ++--
 4 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/hw/i386/acpi-dsdt.dsl b/hw/i386/acpi-dsdt.dsl
index 90efce0..a377424 100644
--- a/hw/i386/acpi-dsdt.dsl
+++ b/hw/i386/acpi-dsdt.dsl
@@ -235,7 +235,7 @@ DefinitionBlock (
             }
             Return (0x0B)
         }
-        Method(IQCR, 1, NotSerialized) {
+        Method(IQCR, 1, Serialized) {
             // _CRS method - get current settings
             Name(PRR0, ResourceTemplate() {
                 Interrupt(, Level, ActiveHigh, Shared) { 0 }
diff --git a/hw/i386/acpi-dsdt.hex.generated b/hw/i386/acpi-dsdt.hex.generated
index 2c01107..f8bd4ea 100644
--- a/hw/i386/acpi-dsdt.hex.generated
+++ b/hw/i386/acpi-dsdt.hex.generated
@@ -8,7 +8,7 @@ static unsigned char AcpiDsdtAmlCode[] = {
 0x0,
 0x0,
 0x1,
-0xe0,
+0xd8,
 0x42,
 0x58,
 0x50,
@@ -3379,7 +3379,7 @@ static unsigned char AcpiDsdtAmlCode[] = {
 0x51,
 0x43,
 0x52,
-0x1,
+0x9,
 0x8,
 0x50,
 0x52,
diff --git a/hw/i386/q35-acpi-dsdt.dsl b/hw/i386/q35-acpi-dsdt.dsl
index 21c89b0..575c5d7 100644
--- a/hw/i386/q35-acpi-dsdt.dsl
+++ b/hw/i386/q35-acpi-dsdt.dsl
@@ -333,7 +333,7 @@ DefinitionBlock (
             }
             Return (0x0B)
         }
-        Method(IQCR, 1, NotSerialized) {
+        Method(IQCR, 1, Serialized) {
             // _CRS method - get current settings
             Name(PRR0, ResourceTemplate() {
                 Interrupt(, Level, ActiveHigh, Shared) { 0 }
diff --git a/hw/i386/q35-acpi-dsdt.hex.generated b/hw/i386/q35-acpi-dsdt.hex.generated
index 32c16ff..111ad3e 100644
--- a/hw/i386/q35-acpi-dsdt.hex.generated
+++ b/hw/i386/q35-acpi-dsdt.hex.generated
@@ -8,7 +8,7 @@ static unsigned char Q35AcpiDsdtAmlCode[] = {
 0x0,
 0x0,
 0x1,
-0x6,
+0xfe,
 0x42,
 0x58,
 0x50,
@@ -5338,7 +5338,7 @@ static unsigned char Q35AcpiDsdtAmlCode[] = {
 0x51,
 0x43,
 0x52,
-0x1,
+0x9,
 0x8,
 0x50,
 0x52,
-- 
MST

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH] ACPI DSDT: Make control method `IQCR` serialized
  2013-11-14 12:16 [Qemu-devel] [PATCH] ACPI DSDT: Make control method `IQCR` serialized Michael S. Tsirkin
@ 2013-11-14 13:37 ` Marcel Apfelbaum
  2013-11-14 14:44 ` Laszlo Ersek
  1 sibling, 0 replies; 3+ messages in thread
From: Marcel Apfelbaum @ 2013-11-14 13:37 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Hu Tao, qemu-devel, Gerd Hoffmann, Anthony Liguori,
	Kenji Kaneshige, Igor Mammedov, Laszlo Ersek, Paul Menzel

On Thu, 2013-11-14 at 14:16 +0200, Michael S. Tsirkin wrote:
> Forward-port the following commit from seabios:
> 
> commit 995bbeef78b338370f426bf8d0399038c3fa259c
> Author: Paul Menzel <paulepanter@users.sourceforge.net>
> Date:   Thu Oct 3 11:30:52 2013 +0200
> 
>     The ASL Optimizing Compiler version 20130823-32 [Sep 11 2013] issues the
>     following warning.
> 
>             $ make
>             […]
>               Compiling IASL out/src/fw/acpi-dsdt.hex
>             out/src/fw/acpi-dsdt.dsl.i    360:         Method(IQCR, 1, NotSerialized) {
>             Remark   2120 -                                     ^ Control Method should be made Serialized (due to creation of named objects within)
>             […]
>             ASL Input:     out/src/fw/acpi-dsdt.dsl.i - 475 lines, 19181 bytes, 316 keywords
>             AML Output:    out/src/fw/acpi-dsdt.aml - 4407 bytes, 159 named objects, 157 executable opcodes
>             Listing File:  out/src/fw/acpi-dsdt.lst - 143715 bytes
>             Hex Dump:      out/src/fw/acpi-dsdt.hex - 41661 bytes
> 
>             Compilation complete. 0 Errors, 0 Warnings, 1 Remarks, 246 Optimizations
>             […]
> 
>     After changing the parameter from `NotSerialized` to `Serialized`, the
>     remark is indeed gone and there is no size change.
> 
>     The remark was added in ACPICA version 20130517 [1] and gives the
>     following explanation.
> 
>             If a thread blocks within the method for any reason, and another thread
>             enters the method, the method will fail because an attempt will be
>             made to create the same (named) object twice.
> 
>             In this case, issue a remark that the method should be marked
>             serialized. ACPICA BZ 909.
> 
>     [1] https://github.com/acpica/acpica/commit/ba84d0fc18ba910a47a3f71c68a43543c06e6831
> 
>     Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net>
> 
> Reported-by: Marcel Apfelbaum <marcel.a@redhat.com>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

Dumped the acpi tables and verified  that is ok now. Thanks!
Tested-by: Marcel Apfelbaum <marcel.a@redhat.com>

> ---
>  hw/i386/acpi-dsdt.dsl               | 2 +-
>  hw/i386/acpi-dsdt.hex.generated     | 4 ++--
>  hw/i386/q35-acpi-dsdt.dsl           | 2 +-
>  hw/i386/q35-acpi-dsdt.hex.generated | 4 ++--
>  4 files changed, 6 insertions(+), 6 deletions(-)
> 
> diff --git a/hw/i386/acpi-dsdt.dsl b/hw/i386/acpi-dsdt.dsl
> index 90efce0..a377424 100644
> --- a/hw/i386/acpi-dsdt.dsl
> +++ b/hw/i386/acpi-dsdt.dsl
> @@ -235,7 +235,7 @@ DefinitionBlock (
>              }
>              Return (0x0B)
>          }
> -        Method(IQCR, 1, NotSerialized) {
> +        Method(IQCR, 1, Serialized) {
>              // _CRS method - get current settings
>              Name(PRR0, ResourceTemplate() {
>                  Interrupt(, Level, ActiveHigh, Shared) { 0 }
> diff --git a/hw/i386/acpi-dsdt.hex.generated b/hw/i386/acpi-dsdt.hex.generated
> index 2c01107..f8bd4ea 100644
> --- a/hw/i386/acpi-dsdt.hex.generated
> +++ b/hw/i386/acpi-dsdt.hex.generated
> @@ -8,7 +8,7 @@ static unsigned char AcpiDsdtAmlCode[] = {
>  0x0,
>  0x0,
>  0x1,
> -0xe0,
> +0xd8,
>  0x42,
>  0x58,
>  0x50,
> @@ -3379,7 +3379,7 @@ static unsigned char AcpiDsdtAmlCode[] = {
>  0x51,
>  0x43,
>  0x52,
> -0x1,
> +0x9,
>  0x8,
>  0x50,
>  0x52,
> diff --git a/hw/i386/q35-acpi-dsdt.dsl b/hw/i386/q35-acpi-dsdt.dsl
> index 21c89b0..575c5d7 100644
> --- a/hw/i386/q35-acpi-dsdt.dsl
> +++ b/hw/i386/q35-acpi-dsdt.dsl
> @@ -333,7 +333,7 @@ DefinitionBlock (
>              }
>              Return (0x0B)
>          }
> -        Method(IQCR, 1, NotSerialized) {
> +        Method(IQCR, 1, Serialized) {
>              // _CRS method - get current settings
>              Name(PRR0, ResourceTemplate() {
>                  Interrupt(, Level, ActiveHigh, Shared) { 0 }
> diff --git a/hw/i386/q35-acpi-dsdt.hex.generated b/hw/i386/q35-acpi-dsdt.hex.generated
> index 32c16ff..111ad3e 100644
> --- a/hw/i386/q35-acpi-dsdt.hex.generated
> +++ b/hw/i386/q35-acpi-dsdt.hex.generated
> @@ -8,7 +8,7 @@ static unsigned char Q35AcpiDsdtAmlCode[] = {
>  0x0,
>  0x0,
>  0x1,
> -0x6,
> +0xfe,
>  0x42,
>  0x58,
>  0x50,
> @@ -5338,7 +5338,7 @@ static unsigned char Q35AcpiDsdtAmlCode[] = {
>  0x51,
>  0x43,
>  0x52,
> -0x1,
> +0x9,
>  0x8,
>  0x50,
>  0x52,

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH] ACPI DSDT: Make control method `IQCR` serialized
  2013-11-14 12:16 [Qemu-devel] [PATCH] ACPI DSDT: Make control method `IQCR` serialized Michael S. Tsirkin
  2013-11-14 13:37 ` Marcel Apfelbaum
@ 2013-11-14 14:44 ` Laszlo Ersek
  1 sibling, 0 replies; 3+ messages in thread
From: Laszlo Ersek @ 2013-11-14 14:44 UTC (permalink / raw)
  To: Michael S. Tsirkin
  Cc: Marcel Apfelbaum, Hu Tao, qemu-devel, Gerd Hoffmann,
	Anthony Liguori, Kenji Kaneshige, Igor Mammedov, Paul Menzel

On 11/14/13 13:16, Michael S. Tsirkin wrote:
> Forward-port the following commit from seabios:
> 
> commit 995bbeef78b338370f426bf8d0399038c3fa259c
> Author: Paul Menzel <paulepanter@users.sourceforge.net>
> Date:   Thu Oct 3 11:30:52 2013 +0200
> 
>     The ASL Optimizing Compiler version 20130823-32 [Sep 11 2013] issues the
>     following warning.
> 
>             $ make
>             […]
>               Compiling IASL out/src/fw/acpi-dsdt.hex
>             out/src/fw/acpi-dsdt.dsl.i    360:         Method(IQCR, 1, NotSerialized) {
>             Remark   2120 -                                     ^ Control Method should be made Serialized (due to creation of named objects within)
>             […]
>             ASL Input:     out/src/fw/acpi-dsdt.dsl.i - 475 lines, 19181 bytes, 316 keywords
>             AML Output:    out/src/fw/acpi-dsdt.aml - 4407 bytes, 159 named objects, 157 executable opcodes
>             Listing File:  out/src/fw/acpi-dsdt.lst - 143715 bytes
>             Hex Dump:      out/src/fw/acpi-dsdt.hex - 41661 bytes
> 
>             Compilation complete. 0 Errors, 0 Warnings, 1 Remarks, 246 Optimizations
>             […]
> 
>     After changing the parameter from `NotSerialized` to `Serialized`, the
>     remark is indeed gone and there is no size change.
> 
>     The remark was added in ACPICA version 20130517 [1] and gives the
>     following explanation.
> 
>             If a thread blocks within the method for any reason, and another thread
>             enters the method, the method will fail because an attempt will be
>             made to create the same (named) object twice.
> 
>             In this case, issue a remark that the method should be marked
>             serialized. ACPICA BZ 909.
> 
>     [1] https://github.com/acpica/acpica/commit/ba84d0fc18ba910a47a3f71c68a43543c06e6831
> 
>     Signed-off-by: Paul Menzel <paulepanter@users.sourceforge.net>
> 
> Reported-by: Marcel Apfelbaum <marcel.a@redhat.com>
> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
> ---
>  hw/i386/acpi-dsdt.dsl               | 2 +-
>  hw/i386/acpi-dsdt.hex.generated     | 4 ++--
>  hw/i386/q35-acpi-dsdt.dsl           | 2 +-
>  hw/i386/q35-acpi-dsdt.hex.generated | 4 ++--
>  4 files changed, 6 insertions(+), 6 deletions(-)

The analysis / evolution of the iasl change
<https://bugs.acpica.org/show_bug.cgi?id=909> is instrumental.

The patch looks good to me (although you could sell me anything in the
binary part).

Reviewed-by: Laszlo Ersek <lersek@redhat.com>

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-11-14 14:42 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-11-14 12:16 [Qemu-devel] [PATCH] ACPI DSDT: Make control method `IQCR` serialized Michael S. Tsirkin
2013-11-14 13:37 ` Marcel Apfelbaum
2013-11-14 14:44 ` Laszlo Ersek

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).