All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality
@ 2013-12-26 12:19 Marcel Apfelbaum
  2013-12-26 12:19 ` [Qemu-devel] [PATCH v2 1/2] acpi unit-test: added script to rebuild the expected aml files Marcel Apfelbaum
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Marcel Apfelbaum @ 2013-12-26 12:19 UTC (permalink / raw
  To: qemu-devel; +Cc: mst

Acpi unit-test will fail every time the acpi tables change.

The series adds a script that rebuilds the expected aml files, so the test
will pass. It also validates the modifications.

The acpi unit test will rebuild the aml tables if TEST_ACPI_REBUILD_AML
environment variable is set.

v1 -> v2:
Addressed Michael S. Tsirkin's comments:
 - added TEST_ prefix to the environment variable
 - some rephrases

Marcel Apfelbaum (2):
  acpi unit-test: added script to rebuild the expected aml files
  acpi unit-test: hook to rebuild expected aml files

 tests/acpi-test-data/rebuild-expected-aml.sh | 36 ++++++++++++++++++++++++++++
 tests/acpi-test.c                            | 30 +++++++++++++++++++----
 2 files changed, 61 insertions(+), 5 deletions(-)
 create mode 100755 tests/acpi-test-data/rebuild-expected-aml.sh

-- 
1.8.3.1

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

* [Qemu-devel] [PATCH v2 1/2] acpi unit-test: added script to rebuild the expected aml files
  2013-12-26 12:19 [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality Marcel Apfelbaum
@ 2013-12-26 12:19 ` Marcel Apfelbaum
  2013-12-26 13:54   ` Michael S. Tsirkin
  2013-12-26 12:19 ` [Qemu-devel] [PATCH v2 2/2] acpi unit-test: hook to rebuild " Marcel Apfelbaum
  2013-12-26 12:46 ` [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality Michael S. Tsirkin
  2 siblings, 1 reply; 16+ messages in thread
From: Marcel Apfelbaum @ 2013-12-26 12:19 UTC (permalink / raw
  To: qemu-devel; +Cc: mst

Acpi unit-test will fail every time the acpi tables change.
This script rebuild the expected aml files, so the test
will pass. It also validates the modifications.

Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
---
v1 -> v2:
Addressed Michael S. Tsirkin's comments:
 - added TEST_ prefix to the environment variable
 - some rephrases

tests/acpi-test-data/rebuild-expected-aml.sh | 36 ++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)
 create mode 100755 tests/acpi-test-data/rebuild-expected-aml.sh

diff --git a/tests/acpi-test-data/rebuild-expected-aml.sh b/tests/acpi-test-data/rebuild-expected-aml.sh
new file mode 100755
index 0000000..6753469
--- /dev/null
+++ b/tests/acpi-test-data/rebuild-expected-aml.sh
@@ -0,0 +1,36 @@
+#! /bin/bash
+
+#
+# Rebuild expected AML files for acpi unit-test 
+#
+# Copyright (c) 2013 Red Hat Inc.
+#
+# Authors:
+#  Marcel Apfelbaum <marcel.a@redhat.com>
+#
+# This work is licensed under the terms of the GNU GPLv2.
+# See the COPYING.LIB file in the top-level directory.
+
+qemu=
+
+if [ -e x86_64-softmmu/qemu-system-x86_64 ]; then
+    qemu="x86_64-softmmu/qemu-system-x86_64"
+elif [ -e i386-softmmu/qemu-system-i386 ]; then
+    qemu="i386-softmmu/qemu-system-i386"
+else
+    echo "Run 'make' to build the qemu exectutable!"
+    echo "Run this script from the build directory."
+    exit 1;
+fi
+
+if [ ! -e "tests/acpi-test" ]; then
+    echo "Test: acpi-test is required! Run make check before this script."
+    echo "Run this script from the build directory."
+    exit 1;
+fi
+
+TEST_ACPI_REBUILD_AML=y QTEST_QEMU_BINARY=$qemu tests/acpi-test
+
+echo "The files were rebuilt and can be added to git."
+echo "However, if new files were created, please copy them manually" \
+     "to tests/acpi-test-data/pc/ or tests/acpi-test-data/q35/ ."
-- 
1.8.3.1

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

* [Qemu-devel] [PATCH v2 2/2] acpi unit-test: hook to rebuild expected aml files
  2013-12-26 12:19 [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality Marcel Apfelbaum
  2013-12-26 12:19 ` [Qemu-devel] [PATCH v2 1/2] acpi unit-test: added script to rebuild the expected aml files Marcel Apfelbaum
@ 2013-12-26 12:19 ` Marcel Apfelbaum
  2013-12-26 12:46 ` [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality Michael S. Tsirkin
  2 siblings, 0 replies; 16+ messages in thread
From: Marcel Apfelbaum @ 2013-12-26 12:19 UTC (permalink / raw
  To: qemu-devel; +Cc: mst

When running the test with TEST_ACPI_REBUILD_AML=y environment
variable, the test will rebuild and validate the expected aml
files.

Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
---
v1 -> v2:
Addressed Michael S. Tsirkin's comments:
 - added TEST_ prefix to the environment variable

  tests/acpi-test.c | 30 +++++++++++++++++++++++++-----
 1 file changed, 25 insertions(+), 5 deletions(-)

diff --git a/tests/acpi-test.c b/tests/acpi-test.c
index 954d9b9..2f9f9a8 100644
--- a/tests/acpi-test.c
+++ b/tests/acpi-test.c
@@ -13,6 +13,7 @@
 #include <string.h>
 #include <stdio.h>
 #include <glib.h>
+#include <glib/gstdio.h>
 #include "qemu-common.h"
 #include "libqtest.h"
 #include "qemu/compiler.h"
@@ -21,6 +22,8 @@
 #define MACHINE_PC "pc"
 #define MACHINE_Q35 "q35"
 
+#define ACPI_REBUILD_EXPECTED_AML "TEST_ACPI_REBUILD_AML"
+
 /* DSDT and SSDTs format */
 typedef struct {
     AcpiTableHeader header;
@@ -363,10 +366,11 @@ static void test_acpi_ssdt_tables(test_data *data)
     }
 }
 
-static void dump_aml_files(test_data *data)
+static void dump_aml_files(test_data *data, bool rebuild)
 {
     AcpiSdtTable *sdt;
     GError *error = NULL;
+    gchar *aml_file = NULL;
     gint fd;
     int i;
 
@@ -374,12 +378,24 @@ static void dump_aml_files(test_data *data)
         sdt = &g_array_index(data->ssdt_tables, AcpiSdtTable, i);
         g_assert(sdt->aml);
 
-        fd = g_file_open_tmp("aml-XXXXXX", &sdt->aml_file, &error);
-        g_assert_no_error(error);
+        if (rebuild) {
+            aml_file = g_strdup_printf("%s/%s/%.4s", data_dir, data->machine,
+                                       (gchar *)&sdt->header.signature);
+            fd = g_open(aml_file, O_WRONLY|O_TRUNC|O_CREAT,
+                        S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH);
+        } else {
+            fd = g_file_open_tmp("aml-XXXXXX", &sdt->aml_file, &error);
+            g_assert_no_error(error);
+        }
+        g_assert(fd >= 0);
 
         write(fd, sdt, sizeof(AcpiTableHeader));
         write(fd, sdt->aml, sdt->aml_len);
         close(fd);
+
+        if (aml_file) {
+            g_free(aml_file);
+        }
     }
 }
 
@@ -487,7 +503,7 @@ static void test_acpi_asl(test_data *data)
 
     memset(&exp_data, 0, sizeof(exp_data));
     exp_data.ssdt_tables = load_expected_aml(data);
-    dump_aml_files(data);
+    dump_aml_files(data, false);
     for (i = 0; i < data->ssdt_tables->len; ++i) {
         GString *asl, *exp_asl;
 
@@ -553,7 +569,11 @@ static void test_acpi_one(const char *params, test_data *data)
     test_acpi_ssdt_tables(data);
 
     if (iasl) {
-        test_acpi_asl(data);
+        if (getenv(ACPI_REBUILD_EXPECTED_AML)) {
+            dump_aml_files(data, true);
+        } else {
+            test_acpi_asl(data);
+        }
     }
 
     qtest_quit(global_qtest);
-- 
1.8.3.1

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

* Re: [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality
  2013-12-26 12:19 [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality Marcel Apfelbaum
  2013-12-26 12:19 ` [Qemu-devel] [PATCH v2 1/2] acpi unit-test: added script to rebuild the expected aml files Marcel Apfelbaum
  2013-12-26 12:19 ` [Qemu-devel] [PATCH v2 2/2] acpi unit-test: hook to rebuild " Marcel Apfelbaum
@ 2013-12-26 12:46 ` Michael S. Tsirkin
  2013-12-26 13:24   ` Marcel Apfelbaum
  2 siblings, 1 reply; 16+ messages in thread
From: Michael S. Tsirkin @ 2013-12-26 12:46 UTC (permalink / raw
  To: Marcel Apfelbaum; +Cc: qemu-devel

On Thu, Dec 26, 2013 at 02:19:48PM +0200, Marcel Apfelbaum wrote:
> Acpi unit-test will fail every time the acpi tables change.
> 
> The series adds a script that rebuilds the expected aml files, so the test
> will pass. It also validates the modifications.
> 
> The acpi unit test will rebuild the aml tables if TEST_ACPI_REBUILD_AML
> environment variable is set.

OK I had to fix some trailing whitespace, otherwise
looks good.
I applied it all, pls check the pci branch.

> v1 -> v2:
> Addressed Michael S. Tsirkin's comments:
>  - added TEST_ prefix to the environment variable
>  - some rephrases
> 
> Marcel Apfelbaum (2):
>   acpi unit-test: added script to rebuild the expected aml files
>   acpi unit-test: hook to rebuild expected aml files
> 
>  tests/acpi-test-data/rebuild-expected-aml.sh | 36 ++++++++++++++++++++++++++++
>  tests/acpi-test.c                            | 30 +++++++++++++++++++----
>  2 files changed, 61 insertions(+), 5 deletions(-)
>  create mode 100755 tests/acpi-test-data/rebuild-expected-aml.sh
> 
> -- 
> 1.8.3.1

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

* Re: [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality
  2013-12-26 12:46 ` [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality Michael S. Tsirkin
@ 2013-12-26 13:24   ` Marcel Apfelbaum
  2013-12-26 13:53     ` Michael S. Tsirkin
  0 siblings, 1 reply; 16+ messages in thread
From: Marcel Apfelbaum @ 2013-12-26 13:24 UTC (permalink / raw
  To: Michael S. Tsirkin; +Cc: qemu-devel

On Thu, 2013-12-26 at 14:46 +0200, Michael S. Tsirkin wrote:
> On Thu, Dec 26, 2013 at 02:19:48PM +0200, Marcel Apfelbaum wrote:
> > Acpi unit-test will fail every time the acpi tables change.
> > 
> > The series adds a script that rebuilds the expected aml files, so the test
> > will pass. It also validates the modifications.
> > 
> > The acpi unit test will rebuild the aml tables if TEST_ACPI_REBUILD_AML
> > environment variable is set.
> 
> OK I had to fix some trailing whitespace, otherwise
> looks good.
> I applied it all, pls check the pci branch.
Thanks!
I pulled the pci branch, but I did not see the patches yet. 
I used git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git,
pci branch.

Thanks,
Marcel

> > v1 -> v2:
> > Addressed Michael S. Tsirkin's comments:
> >  - added TEST_ prefix to the environment variable
> >  - some rephrases
> > 
> > Marcel Apfelbaum (2):
> >   acpi unit-test: added script to rebuild the expected aml files
> >   acpi unit-test: hook to rebuild expected aml files
> > 
> >  tests/acpi-test-data/rebuild-expected-aml.sh | 36 ++++++++++++++++++++++++++++
> >  tests/acpi-test.c                            | 30 +++++++++++++++++++----
> >  2 files changed, 61 insertions(+), 5 deletions(-)
> >  create mode 100755 tests/acpi-test-data/rebuild-expected-aml.sh
> > 
> > -- 
> > 1.8.3.1
> 

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

* Re: [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality
  2013-12-26 13:24   ` Marcel Apfelbaum
@ 2013-12-26 13:53     ` Michael S. Tsirkin
  2013-12-26 14:09       ` Marcel Apfelbaum
  0 siblings, 1 reply; 16+ messages in thread
From: Michael S. Tsirkin @ 2013-12-26 13:53 UTC (permalink / raw
  To: Marcel Apfelbaum; +Cc: qemu-devel

On Thu, Dec 26, 2013 at 03:24:28PM +0200, Marcel Apfelbaum wrote:
> On Thu, 2013-12-26 at 14:46 +0200, Michael S. Tsirkin wrote:
> > On Thu, Dec 26, 2013 at 02:19:48PM +0200, Marcel Apfelbaum wrote:
> > > Acpi unit-test will fail every time the acpi tables change.
> > > 
> > > The series adds a script that rebuilds the expected aml files, so the test
> > > will pass. It also validates the modifications.
> > > 
> > > The acpi unit test will rebuild the aml tables if TEST_ACPI_REBUILD_AML
> > > environment variable is set.
> > 
> > OK I had to fix some trailing whitespace, otherwise
> > looks good.
> > I applied it all, pls check the pci branch.
> Thanks!
> I pulled the pci branch, but I did not see the patches yet. 
> I used git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git,
> pci branch.
> 
> Thanks,
> Marcel


Actually had to revert. Build fails with recent gcc:

ests/acpi-test.c: In function ‘dump_aml_files’:
tests/acpi-test.c:392:14: error: ignoring return value of ‘write’,
declared with attribute warn_unused_result [-Werror=unused-result]
         write(fd, sdt, sizeof(AcpiTableHeader));
              ^
tests/acpi-test.c:393:14: error: ignoring return value of ‘write’,
declared with attribute warn_unused_result [-Werror=unused-result]
         write(fd, sdt->aml, sdt->aml_len);
              ^
cc1: all warnings being treated as errors
make: *** [tests/acpi-test.o] Error 1

and it's true: you need to wrap write in a loop as it can
write less than requested number of bytes.
See qemu_write_full - can it be used it tests?

> > > v1 -> v2:
> > > Addressed Michael S. Tsirkin's comments:
> > >  - added TEST_ prefix to the environment variable
> > >  - some rephrases
> > > 
> > > Marcel Apfelbaum (2):
> > >   acpi unit-test: added script to rebuild the expected aml files
> > >   acpi unit-test: hook to rebuild expected aml files
> > > 
> > >  tests/acpi-test-data/rebuild-expected-aml.sh | 36 ++++++++++++++++++++++++++++
> > >  tests/acpi-test.c                            | 30 +++++++++++++++++++----
> > >  2 files changed, 61 insertions(+), 5 deletions(-)
> > >  create mode 100755 tests/acpi-test-data/rebuild-expected-aml.sh
> > > 
> > > -- 
> > > 1.8.3.1
> > 
> 
> 

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

* Re: [Qemu-devel] [PATCH v2 1/2] acpi unit-test: added script to rebuild the expected aml files
  2013-12-26 12:19 ` [Qemu-devel] [PATCH v2 1/2] acpi unit-test: added script to rebuild the expected aml files Marcel Apfelbaum
@ 2013-12-26 13:54   ` Michael S. Tsirkin
  0 siblings, 0 replies; 16+ messages in thread
From: Michael S. Tsirkin @ 2013-12-26 13:54 UTC (permalink / raw
  To: Marcel Apfelbaum; +Cc: qemu-devel

On Thu, Dec 26, 2013 at 02:19:49PM +0200, Marcel Apfelbaum wrote:
> Acpi unit-test will fail every time the acpi tables change.
> This script rebuild the expected aml files, so the test
> will pass. It also validates the modifications.
> 
> Signed-off-by: Marcel Apfelbaum <marcel.a@redhat.com>
> ---
> v1 -> v2:
> Addressed Michael S. Tsirkin's comments:
>  - added TEST_ prefix to the environment variable
>  - some rephrases
> 
> tests/acpi-test-data/rebuild-expected-aml.sh | 36 ++++++++++++++++++++++++++++
>  1 file changed, 36 insertions(+)
>  create mode 100755 tests/acpi-test-data/rebuild-expected-aml.sh
> 
> diff --git a/tests/acpi-test-data/rebuild-expected-aml.sh b/tests/acpi-test-data/rebuild-expected-aml.sh
> new file mode 100755
> index 0000000..6753469
> --- /dev/null
> +++ b/tests/acpi-test-data/rebuild-expected-aml.sh
> @@ -0,0 +1,36 @@
> +#! /bin/bash
> +
> +#
> +# Rebuild expected AML files for acpi unit-test 

trailing space here

> +#
> +# Copyright (c) 2013 Red Hat Inc.
> +#
> +# Authors:
> +#  Marcel Apfelbaum <marcel.a@redhat.com>
> +#
> +# This work is licensed under the terms of the GNU GPLv2.
> +# See the COPYING.LIB file in the top-level directory.
> +
> +qemu=
> +
> +if [ -e x86_64-softmmu/qemu-system-x86_64 ]; then
> +    qemu="x86_64-softmmu/qemu-system-x86_64"
> +elif [ -e i386-softmmu/qemu-system-i386 ]; then
> +    qemu="i386-softmmu/qemu-system-i386"
> +else
> +    echo "Run 'make' to build the qemu exectutable!"
> +    echo "Run this script from the build directory."
> +    exit 1;
> +fi
> +
> +if [ ! -e "tests/acpi-test" ]; then
> +    echo "Test: acpi-test is required! Run make check before this script."
> +    echo "Run this script from the build directory."
> +    exit 1;
> +fi
> +
> +TEST_ACPI_REBUILD_AML=y QTEST_QEMU_BINARY=$qemu tests/acpi-test
> +
> +echo "The files were rebuilt and can be added to git."
> +echo "However, if new files were created, please copy them manually" \
> +     "to tests/acpi-test-data/pc/ or tests/acpi-test-data/q35/ ."
> -- 
> 1.8.3.1

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

* Re: [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality
  2013-12-26 13:53     ` Michael S. Tsirkin
@ 2013-12-26 14:09       ` Marcel Apfelbaum
  2013-12-26 15:41         ` Michael S. Tsirkin
  0 siblings, 1 reply; 16+ messages in thread
From: Marcel Apfelbaum @ 2013-12-26 14:09 UTC (permalink / raw
  To: Michael S. Tsirkin; +Cc: qemu-devel

On Thu, 2013-12-26 at 15:53 +0200, Michael S. Tsirkin wrote:
> On Thu, Dec 26, 2013 at 03:24:28PM +0200, Marcel Apfelbaum wrote:
> > On Thu, 2013-12-26 at 14:46 +0200, Michael S. Tsirkin wrote:
> > > On Thu, Dec 26, 2013 at 02:19:48PM +0200, Marcel Apfelbaum wrote:
> > > > Acpi unit-test will fail every time the acpi tables change.
> > > > 
> > > > The series adds a script that rebuilds the expected aml files, so the test
> > > > will pass. It also validates the modifications.
> > > > 
> > > > The acpi unit test will rebuild the aml tables if TEST_ACPI_REBUILD_AML
> > > > environment variable is set.
> > > 
> > > OK I had to fix some trailing whitespace, otherwise
> > > looks good.
> > > I applied it all, pls check the pci branch.
> > Thanks!
> > I pulled the pci branch, but I did not see the patches yet. 
> > I used git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git,
> > pci branch.
> > 
> > Thanks,
> > Marcel
> 
> 
> Actually had to revert. Build fails with recent gcc:
Strange, I update the gcc to the Fedora's latest 4.8.2 and
it still doesn't happen.
Anyway, I use qemu_write_full as advised and resent.

Thanks,
Marcel

> 
> ests/acpi-test.c: In function ‘dump_aml_files’:
> tests/acpi-test.c:392:14: error: ignoring return value of ‘write’,
> declared with attribute warn_unused_result [-Werror=unused-result]
>          write(fd, sdt, sizeof(AcpiTableHeader));
>               ^
> tests/acpi-test.c:393:14: error: ignoring return value of ‘write’,
> declared with attribute warn_unused_result [-Werror=unused-result]
>          write(fd, sdt->aml, sdt->aml_len);
>               ^
> cc1: all warnings being treated as errors
> make: *** [tests/acpi-test.o] Error 1
> 
> and it's true: you need to wrap write in a loop as it can
> write less than requested number of bytes.
> See qemu_write_full - can it be used it tests?
> 
> > > > v1 -> v2:
> > > > Addressed Michael S. Tsirkin's comments:
> > > >  - added TEST_ prefix to the environment variable
> > > >  - some rephrases
> > > > 
> > > > Marcel Apfelbaum (2):
> > > >   acpi unit-test: added script to rebuild the expected aml files
> > > >   acpi unit-test: hook to rebuild expected aml files
> > > > 
> > > >  tests/acpi-test-data/rebuild-expected-aml.sh | 36 ++++++++++++++++++++++++++++
> > > >  tests/acpi-test.c                            | 30 +++++++++++++++++++----
> > > >  2 files changed, 61 insertions(+), 5 deletions(-)
> > > >  create mode 100755 tests/acpi-test-data/rebuild-expected-aml.sh
> > > > 
> > > > -- 
> > > > 1.8.3.1
> > > 
> > 
> > 

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

* Re: [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality
  2013-12-26 14:09       ` Marcel Apfelbaum
@ 2013-12-26 15:41         ` Michael S. Tsirkin
  2013-12-26 15:58           ` Marcel Apfelbaum
  0 siblings, 1 reply; 16+ messages in thread
From: Michael S. Tsirkin @ 2013-12-26 15:41 UTC (permalink / raw
  To: Marcel Apfelbaum; +Cc: qemu-devel

On Thu, Dec 26, 2013 at 04:09:58PM +0200, Marcel Apfelbaum wrote:
> On Thu, 2013-12-26 at 15:53 +0200, Michael S. Tsirkin wrote:
> > On Thu, Dec 26, 2013 at 03:24:28PM +0200, Marcel Apfelbaum wrote:
> > > On Thu, 2013-12-26 at 14:46 +0200, Michael S. Tsirkin wrote:
> > > > On Thu, Dec 26, 2013 at 02:19:48PM +0200, Marcel Apfelbaum wrote:
> > > > > Acpi unit-test will fail every time the acpi tables change.
> > > > > 
> > > > > The series adds a script that rebuilds the expected aml files, so the test
> > > > > will pass. It also validates the modifications.
> > > > > 
> > > > > The acpi unit test will rebuild the aml tables if TEST_ACPI_REBUILD_AML
> > > > > environment variable is set.
> > > > 
> > > > OK I had to fix some trailing whitespace, otherwise
> > > > looks good.
> > > > I applied it all, pls check the pci branch.
> > > Thanks!
> > > I pulled the pci branch, but I did not see the patches yet. 
> > > I used git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git,
> > > pci branch.
> > > 
> > > Thanks,
> > > Marcel
> > 
> > 
> > Actually had to revert. Build fails with recent gcc:
> Strange, I update the gcc to the Fedora's latest 4.8.2 and
> it still doesn't happen.
> Anyway, I use qemu_write_full as advised and resent.
> 
> Thanks,
> Marcel

OK I applied this for now but I see an issue: iasl crashes below.
I think this happens when we run it on a file
it does not understand.
It's an iasl bug but would be nice to work around
it in some way (and it would be nice to report to
robert moore)


*** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x0881bc98 ***
======= Backtrace: =========
/lib/libc.so.6[0x46205d12]
/usr/bin/iasl[0x80a5a66]
/usr/bin/iasl[0x80a2717]
/usr/bin/iasl[0x80a284b]
/usr/bin/iasl[0x805bf32]
/usr/bin/iasl[0x8072352]
/usr/bin/iasl[0x80726c1]
/usr/bin/iasl[0x80725f5]
/usr/bin/iasl[0x80491a9]
/lib/libc.so.6(__libc_start_main+0xf3)[0x461a9963]
/usr/bin/iasl[0x80491fd]
======= Memory map: ========
08047000-0810d000 r-xp 00000000 08:06 48242      /usr/bin/iasl
0810d000-0810e000 r--p 000c5000 08:06 48242      /usr/bin/iasl
0810e000-0810f000 rw-p 000c6000 08:06 48242      /usr/bin/iasl
0810f000-08113000 rw-p 00000000 00:00 0 
087f7000-08839000 rw-p 00000000 00:00 0          [heap]
4616d000-4618c000 r-xp 00000000 08:06 4415       /usr/lib/ld-2.17.so
4618c000-4618d000 r--p 0001e000 08:06 4415       /usr/lib/ld-2.17.so
4618d000-4618e000 rw-p 0001f000 08:06 4415       /usr/lib/ld-2.17.so
46190000-46348000 r-xp 00000000 08:06 4643       /usr/lib/libc-2.17.so
46348000-46349000 ---p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
46349000-4634b000 r--p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
4634b000-4634c000 rw-p 001ba000 08:06 4643       /usr/lib/libc-2.17.so
4634c000-4634f000 rw-p 00000000 00:00 0 
463d2000-463ed000 r-xp 00000000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
463ed000-463ee000 r--p 0001a000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
463ee000-463ef000 rw-p 0001b000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
b7741000-b7742000 rw-p 00000000 00:00 0 
b776c000-b776f000 rw-p 00000000 00:00 0 
b776f000-b7770000 r-xp 00000000 00:00 0          [vdso]
bfc6f000-bfc91000 rw-p 00000000 00:00 0          [stack]
*** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x09286cd8 ***
======= Backtrace: =========
/lib/libc.so.6[0x46205d12]
/usr/bin/iasl[0x80a5a66]
/usr/bin/iasl[0x80a2717]
/usr/bin/iasl[0x80a284b]
/usr/bin/iasl[0x805bf32]
/usr/bin/iasl[0x8072352]
/usr/bin/iasl[0x80726c1]
/usr/bin/iasl[0x80725f5]
/usr/bin/iasl[0x80491a9]
/lib/libc.so.6(__libc_start_main+0xf3)[0x461a9963]
/usr/bin/iasl[0x80491fd]
======= Memory map: ========
08047000-0810d000 r-xp 00000000 08:06 48242      /usr/bin/iasl
0810d000-0810e000 r--p 000c5000 08:06 48242      /usr/bin/iasl
0810e000-0810f000 rw-p 000c6000 08:06 48242      /usr/bin/iasl
0810f000-08113000 rw-p 00000000 00:00 0 
09262000-092a4000 rw-p 00000000 00:00 0          [heap]
4616d000-4618c000 r-xp 00000000 08:06 4415       /usr/lib/ld-2.17.so
4618c000-4618d000 r--p 0001e000 08:06 4415       /usr/lib/ld-2.17.so
4618d000-4618e000 rw-p 0001f000 08:06 4415       /usr/lib/ld-2.17.so
46190000-46348000 r-xp 00000000 08:06 4643       /usr/lib/libc-2.17.so
46348000-46349000 ---p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
46349000-4634b000 r--p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
4634b000-4634c000 rw-p 001ba000 08:06 4643       /usr/lib/libc-2.17.so
4634c000-4634f000 rw-p 00000000 00:00 0 
463d2000-463ed000 r-xp 00000000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
463ed000-463ee000 r--p 0001a000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
463ee000-463ef000 rw-p 0001b000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
b774b000-b774c000 rw-p 00000000 00:00 0 
b7776000-b7779000 rw-p 00000000 00:00 0 
b7779000-b777a000 r-xp 00000000 00:00 0          [vdso]
bfd37000-bfd59000 rw-p 00000000 00:00 0          [stack]
*** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x09587c58 ***
======= Backtrace: =========
/lib/libc.so.6[0x46205d12]
/usr/bin/iasl[0x80a5a66]
/usr/bin/iasl[0x80a2717]
/usr/bin/iasl[0x80a284b]
/usr/bin/iasl[0x805bf32]
/usr/bin/iasl[0x8072352]
/usr/bin/iasl[0x80726c1]
/usr/bin/iasl[0x80725f5]
/usr/bin/iasl[0x80491a9]
/lib/libc.so.6(__libc_start_main+0xf3)[0x461a9963]
/usr/bin/iasl[0x80491fd]
======= Memory map: ========
08047000-0810d000 r-xp 00000000 08:06 48242      /usr/bin/iasl
0810d000-0810e000 r--p 000c5000 08:06 48242      /usr/bin/iasl
0810e000-0810f000 rw-p 000c6000 08:06 48242      /usr/bin/iasl
0810f000-08113000 rw-p 00000000 00:00 0 
09563000-095a5000 rw-p 00000000 00:00 0          [heap]
4616d000-4618c000 r-xp 00000000 08:06 4415       /usr/lib/ld-2.17.so
4618c000-4618d000 r--p 0001e000 08:06 4415       /usr/lib/ld-2.17.so
4618d000-4618e000 rw-p 0001f000 08:06 4415       /usr/lib/ld-2.17.so
46190000-46348000 r-xp 00000000 08:06 4643       /usr/lib/libc-2.17.so
46348000-46349000 ---p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
46349000-4634b000 r--p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
4634b000-4634c000 rw-p 001ba000 08:06 4643       /usr/lib/libc-2.17.so
4634c000-4634f000 rw-p 00000000 00:00 0 
463d2000-463ed000 r-xp 00000000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
463ed000-463ee000 r--p 0001a000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
463ee000-463ef000 rw-p 0001b000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
b77af000-b77b0000 rw-p 00000000 00:00 0 
b77da000-b77dd000 rw-p 00000000 00:00 0 
b77dd000-b77de000 r-xp 00000000 00:00 0          [vdso]
bfe96000-bfeb8000 rw-p 00000000 00:00 0          [stack]
*** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x096c7c98 ***
======= Backtrace: =========
/lib/libc.so.6[0x46205d12]
/usr/bin/iasl[0x80a5a66]
/usr/bin/iasl[0x80a2717]
/usr/bin/iasl[0x80a284b]
/usr/bin/iasl[0x805bf32]
/usr/bin/iasl[0x8072352]
/usr/bin/iasl[0x80726c1]
/usr/bin/iasl[0x80725f5]
/usr/bin/iasl[0x80491a9]
/lib/libc.so.6(__libc_start_main+0xf3)[0x461a9963]
/usr/bin/iasl[0x80491fd]
======= Memory map: ========
08047000-0810d000 r-xp 00000000 08:06 48242      /usr/bin/iasl
0810d000-0810e000 r--p 000c5000 08:06 48242      /usr/bin/iasl
0810e000-0810f000 rw-p 000c6000 08:06 48242      /usr/bin/iasl
0810f000-08113000 rw-p 00000000 00:00 0 
096a3000-096e5000 rw-p 00000000 00:00 0          [heap]
4616d000-4618c000 r-xp 00000000 08:06 4415       /usr/lib/ld-2.17.so
4618c000-4618d000 r--p 0001e000 08:06 4415       /usr/lib/ld-2.17.so
4618d000-4618e000 rw-p 0001f000 08:06 4415       /usr/lib/ld-2.17.so
46190000-46348000 r-xp 00000000 08:06 4643       /usr/lib/libc-2.17.so
46348000-46349000 ---p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
46349000-4634b000 r--p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
4634b000-4634c000 rw-p 001ba000 08:06 4643       /usr/lib/libc-2.17.so
4634c000-4634f000 rw-p 00000000 00:00 0 
463d2000-463ed000 r-xp 00000000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
463ed000-463ee000 r--p 0001a000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
463ee000-463ef000 rw-p 0001b000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
b7714000-b7715000 rw-p 00000000 00:00 0 
b773f000-b7742000 rw-p 00000000 00:00 0 
b7742000-b7743000 r-xp 00000000 00:00 0          [vdso]
bfc43000-bfc65000 rw-p 00000000 00:00 0          [stack]
qemu: terminating on signal 15 from pid 8740
main-loop: WARNING: I/O thread spun for 1000 iterations
*** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x09e5c3d0 ***
======= Backtrace: =========
/lib/libc.so.6[0x46205d12]
/usr/bin/iasl[0x80a5a66]
/usr/bin/iasl[0x80a2717]
/usr/bin/iasl[0x80a284b]
/usr/bin/iasl[0x805bf32]
/usr/bin/iasl[0x8072352]
/usr/bin/iasl[0x80726c1]
/usr/bin/iasl[0x80725f5]
/usr/bin/iasl[0x80491a9]
/lib/libc.so.6(__libc_start_main+0xf3)[0x461a9963]
/usr/bin/iasl[0x80491fd]
======= Memory map: ========
08047000-0810d000 r-xp 00000000 08:06 48242      /usr/bin/iasl
0810d000-0810e000 r--p 000c5000 08:06 48242      /usr/bin/iasl
0810e000-0810f000 rw-p 000c6000 08:06 48242      /usr/bin/iasl
0810f000-08113000 rw-p 00000000 00:00 0 
09e3c000-09e7e000 rw-p 00000000 00:00 0          [heap]
4616d000-4618c000 r-xp 00000000 08:06 4415       /usr/lib/ld-2.17.so
4618c000-4618d000 r--p 0001e000 08:06 4415       /usr/lib/ld-2.17.so
4618d000-4618e000 rw-p 0001f000 08:06 4415       /usr/lib/ld-2.17.so
46190000-46348000 r-xp 00000000 08:06 4643       /usr/lib/libc-2.17.so
46348000-46349000 ---p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
46349000-4634b000 r--p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
4634b000-4634c000 rw-p 001ba000 08:06 4643       /usr/lib/libc-2.17.so
4634c000-4634f000 rw-p 00000000 00:00 0 
463d2000-463ed000 r-xp 00000000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
463ed000-463ee000 r--p 0001a000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
463ee000-463ef000 rw-p 0001b000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
b777d000-b777e000 rw-p 00000000 00:00 0 
b77a8000-b77ab000 rw-p 00000000 00:00 0 
b77ab000-b77ac000 r-xp 00000000 00:00 0          [vdso]
bfbb1000-bfbd3000 rw-p 00000000 00:00 0          [stack]
*** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x0926c410 ***



> > 
> > ests/acpi-test.c: In function ‘dump_aml_files’:
> > tests/acpi-test.c:392:14: error: ignoring return value of ‘write’,
> > declared with attribute warn_unused_result [-Werror=unused-result]
> >          write(fd, sdt, sizeof(AcpiTableHeader));
> >               ^
> > tests/acpi-test.c:393:14: error: ignoring return value of ‘write’,
> > declared with attribute warn_unused_result [-Werror=unused-result]
> >          write(fd, sdt->aml, sdt->aml_len);
> >               ^
> > cc1: all warnings being treated as errors
> > make: *** [tests/acpi-test.o] Error 1
> > 
> > and it's true: you need to wrap write in a loop as it can
> > write less than requested number of bytes.
> > See qemu_write_full - can it be used it tests?
> > 
> > > > > v1 -> v2:
> > > > > Addressed Michael S. Tsirkin's comments:
> > > > >  - added TEST_ prefix to the environment variable
> > > > >  - some rephrases
> > > > > 
> > > > > Marcel Apfelbaum (2):
> > > > >   acpi unit-test: added script to rebuild the expected aml files
> > > > >   acpi unit-test: hook to rebuild expected aml files
> > > > > 
> > > > >  tests/acpi-test-data/rebuild-expected-aml.sh | 36 ++++++++++++++++++++++++++++
> > > > >  tests/acpi-test.c                            | 30 +++++++++++++++++++----
> > > > >  2 files changed, 61 insertions(+), 5 deletions(-)
> > > > >  create mode 100755 tests/acpi-test-data/rebuild-expected-aml.sh
> > > > > 
> > > > > -- 
> > > > > 1.8.3.1
> > > > 
> > > 
> > > 
> 
> 

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

* Re: [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality
  2013-12-26 15:41         ` Michael S. Tsirkin
@ 2013-12-26 15:58           ` Marcel Apfelbaum
  2013-12-26 16:12             ` Michael S. Tsirkin
  0 siblings, 1 reply; 16+ messages in thread
From: Marcel Apfelbaum @ 2013-12-26 15:58 UTC (permalink / raw
  To: Michael S. Tsirkin; +Cc: qemu-devel

On Thu, 2013-12-26 at 17:41 +0200, Michael S. Tsirkin wrote:
> On Thu, Dec 26, 2013 at 04:09:58PM +0200, Marcel Apfelbaum wrote:
> > On Thu, 2013-12-26 at 15:53 +0200, Michael S. Tsirkin wrote:
> > > On Thu, Dec 26, 2013 at 03:24:28PM +0200, Marcel Apfelbaum wrote:
> > > > On Thu, 2013-12-26 at 14:46 +0200, Michael S. Tsirkin wrote:
> > > > > On Thu, Dec 26, 2013 at 02:19:48PM +0200, Marcel Apfelbaum wrote:
> > > > > > Acpi unit-test will fail every time the acpi tables change.
> > > > > > 
> > > > > > The series adds a script that rebuilds the expected aml files, so the test
> > > > > > will pass. It also validates the modifications.
> > > > > > 
> > > > > > The acpi unit test will rebuild the aml tables if TEST_ACPI_REBUILD_AML
> > > > > > environment variable is set.
> > > > > 
> > > > > OK I had to fix some trailing whitespace, otherwise
> > > > > looks good.
> > > > > I applied it all, pls check the pci branch.
> > > > Thanks!
> > > > I pulled the pci branch, but I did not see the patches yet. 
> > > > I used git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git,
> > > > pci branch.
> > > > 
> > > > Thanks,
> > > > Marcel
> > > 
> > > 
> > > Actually had to revert. Build fails with recent gcc:
> > Strange, I update the gcc to the Fedora's latest 4.8.2 and
> > it still doesn't happen.
> > Anyway, I use qemu_write_full as advised and resent.
> > 
> > Thanks,
> > Marcel
> 
> OK I applied this for now but I see an issue: iasl crashes below.
Thanks!
By the way, I resend the whole series, I hope you used it.

> I think this happens when we run it on a file
> it does not understand.
> It's an iasl bug but would be nice to work around
> it in some way (and it would be nice to report to
> robert moore)

I cannot reproduce it, I'll try anyway. 
By the way, the test checks if iasl exits with error,
so it should handle this gracefully. (I hope!)

Regarding the IASL project, I'll see if I can open a bug,
(if I can reproduce it, otherwise I risk they'll ask some
questions I cannot answer...)

Thanks,
Marcel

> 
> 
> *** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x0881bc98 ***
> ======= Backtrace: =========
> /lib/libc.so.6[0x46205d12]
> /usr/bin/iasl[0x80a5a66]
> /usr/bin/iasl[0x80a2717]
> /usr/bin/iasl[0x80a284b]
> /usr/bin/iasl[0x805bf32]
> /usr/bin/iasl[0x8072352]
> /usr/bin/iasl[0x80726c1]
> /usr/bin/iasl[0x80725f5]
> /usr/bin/iasl[0x80491a9]
> /lib/libc.so.6(__libc_start_main+0xf3)[0x461a9963]
> /usr/bin/iasl[0x80491fd]
> ======= Memory map: ========
> 08047000-0810d000 r-xp 00000000 08:06 48242      /usr/bin/iasl
> 0810d000-0810e000 r--p 000c5000 08:06 48242      /usr/bin/iasl
> 0810e000-0810f000 rw-p 000c6000 08:06 48242      /usr/bin/iasl
> 0810f000-08113000 rw-p 00000000 00:00 0 
> 087f7000-08839000 rw-p 00000000 00:00 0          [heap]
> 4616d000-4618c000 r-xp 00000000 08:06 4415       /usr/lib/ld-2.17.so
> 4618c000-4618d000 r--p 0001e000 08:06 4415       /usr/lib/ld-2.17.so
> 4618d000-4618e000 rw-p 0001f000 08:06 4415       /usr/lib/ld-2.17.so
> 46190000-46348000 r-xp 00000000 08:06 4643       /usr/lib/libc-2.17.so
> 46348000-46349000 ---p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> 46349000-4634b000 r--p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> 4634b000-4634c000 rw-p 001ba000 08:06 4643       /usr/lib/libc-2.17.so
> 4634c000-4634f000 rw-p 00000000 00:00 0 
> 463d2000-463ed000 r-xp 00000000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> 463ed000-463ee000 r--p 0001a000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> 463ee000-463ef000 rw-p 0001b000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> b7741000-b7742000 rw-p 00000000 00:00 0 
> b776c000-b776f000 rw-p 00000000 00:00 0 
> b776f000-b7770000 r-xp 00000000 00:00 0          [vdso]
> bfc6f000-bfc91000 rw-p 00000000 00:00 0          [stack]
> *** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x09286cd8 ***
> ======= Backtrace: =========
> /lib/libc.so.6[0x46205d12]
> /usr/bin/iasl[0x80a5a66]
> /usr/bin/iasl[0x80a2717]
> /usr/bin/iasl[0x80a284b]
> /usr/bin/iasl[0x805bf32]
> /usr/bin/iasl[0x8072352]
> /usr/bin/iasl[0x80726c1]
> /usr/bin/iasl[0x80725f5]
> /usr/bin/iasl[0x80491a9]
> /lib/libc.so.6(__libc_start_main+0xf3)[0x461a9963]
> /usr/bin/iasl[0x80491fd]
> ======= Memory map: ========
> 08047000-0810d000 r-xp 00000000 08:06 48242      /usr/bin/iasl
> 0810d000-0810e000 r--p 000c5000 08:06 48242      /usr/bin/iasl
> 0810e000-0810f000 rw-p 000c6000 08:06 48242      /usr/bin/iasl
> 0810f000-08113000 rw-p 00000000 00:00 0 
> 09262000-092a4000 rw-p 00000000 00:00 0          [heap]
> 4616d000-4618c000 r-xp 00000000 08:06 4415       /usr/lib/ld-2.17.so
> 4618c000-4618d000 r--p 0001e000 08:06 4415       /usr/lib/ld-2.17.so
> 4618d000-4618e000 rw-p 0001f000 08:06 4415       /usr/lib/ld-2.17.so
> 46190000-46348000 r-xp 00000000 08:06 4643       /usr/lib/libc-2.17.so
> 46348000-46349000 ---p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> 46349000-4634b000 r--p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> 4634b000-4634c000 rw-p 001ba000 08:06 4643       /usr/lib/libc-2.17.so
> 4634c000-4634f000 rw-p 00000000 00:00 0 
> 463d2000-463ed000 r-xp 00000000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> 463ed000-463ee000 r--p 0001a000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> 463ee000-463ef000 rw-p 0001b000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> b774b000-b774c000 rw-p 00000000 00:00 0 
> b7776000-b7779000 rw-p 00000000 00:00 0 
> b7779000-b777a000 r-xp 00000000 00:00 0          [vdso]
> bfd37000-bfd59000 rw-p 00000000 00:00 0          [stack]
> *** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x09587c58 ***
> ======= Backtrace: =========
> /lib/libc.so.6[0x46205d12]
> /usr/bin/iasl[0x80a5a66]
> /usr/bin/iasl[0x80a2717]
> /usr/bin/iasl[0x80a284b]
> /usr/bin/iasl[0x805bf32]
> /usr/bin/iasl[0x8072352]
> /usr/bin/iasl[0x80726c1]
> /usr/bin/iasl[0x80725f5]
> /usr/bin/iasl[0x80491a9]
> /lib/libc.so.6(__libc_start_main+0xf3)[0x461a9963]
> /usr/bin/iasl[0x80491fd]
> ======= Memory map: ========
> 08047000-0810d000 r-xp 00000000 08:06 48242      /usr/bin/iasl
> 0810d000-0810e000 r--p 000c5000 08:06 48242      /usr/bin/iasl
> 0810e000-0810f000 rw-p 000c6000 08:06 48242      /usr/bin/iasl
> 0810f000-08113000 rw-p 00000000 00:00 0 
> 09563000-095a5000 rw-p 00000000 00:00 0          [heap]
> 4616d000-4618c000 r-xp 00000000 08:06 4415       /usr/lib/ld-2.17.so
> 4618c000-4618d000 r--p 0001e000 08:06 4415       /usr/lib/ld-2.17.so
> 4618d000-4618e000 rw-p 0001f000 08:06 4415       /usr/lib/ld-2.17.so
> 46190000-46348000 r-xp 00000000 08:06 4643       /usr/lib/libc-2.17.so
> 46348000-46349000 ---p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> 46349000-4634b000 r--p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> 4634b000-4634c000 rw-p 001ba000 08:06 4643       /usr/lib/libc-2.17.so
> 4634c000-4634f000 rw-p 00000000 00:00 0 
> 463d2000-463ed000 r-xp 00000000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> 463ed000-463ee000 r--p 0001a000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> 463ee000-463ef000 rw-p 0001b000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> b77af000-b77b0000 rw-p 00000000 00:00 0 
> b77da000-b77dd000 rw-p 00000000 00:00 0 
> b77dd000-b77de000 r-xp 00000000 00:00 0          [vdso]
> bfe96000-bfeb8000 rw-p 00000000 00:00 0          [stack]
> *** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x096c7c98 ***
> ======= Backtrace: =========
> /lib/libc.so.6[0x46205d12]
> /usr/bin/iasl[0x80a5a66]
> /usr/bin/iasl[0x80a2717]
> /usr/bin/iasl[0x80a284b]
> /usr/bin/iasl[0x805bf32]
> /usr/bin/iasl[0x8072352]
> /usr/bin/iasl[0x80726c1]
> /usr/bin/iasl[0x80725f5]
> /usr/bin/iasl[0x80491a9]
> /lib/libc.so.6(__libc_start_main+0xf3)[0x461a9963]
> /usr/bin/iasl[0x80491fd]
> ======= Memory map: ========
> 08047000-0810d000 r-xp 00000000 08:06 48242      /usr/bin/iasl
> 0810d000-0810e000 r--p 000c5000 08:06 48242      /usr/bin/iasl
> 0810e000-0810f000 rw-p 000c6000 08:06 48242      /usr/bin/iasl
> 0810f000-08113000 rw-p 00000000 00:00 0 
> 096a3000-096e5000 rw-p 00000000 00:00 0          [heap]
> 4616d000-4618c000 r-xp 00000000 08:06 4415       /usr/lib/ld-2.17.so
> 4618c000-4618d000 r--p 0001e000 08:06 4415       /usr/lib/ld-2.17.so
> 4618d000-4618e000 rw-p 0001f000 08:06 4415       /usr/lib/ld-2.17.so
> 46190000-46348000 r-xp 00000000 08:06 4643       /usr/lib/libc-2.17.so
> 46348000-46349000 ---p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> 46349000-4634b000 r--p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> 4634b000-4634c000 rw-p 001ba000 08:06 4643       /usr/lib/libc-2.17.so
> 4634c000-4634f000 rw-p 00000000 00:00 0 
> 463d2000-463ed000 r-xp 00000000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> 463ed000-463ee000 r--p 0001a000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> 463ee000-463ef000 rw-p 0001b000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> b7714000-b7715000 rw-p 00000000 00:00 0 
> b773f000-b7742000 rw-p 00000000 00:00 0 
> b7742000-b7743000 r-xp 00000000 00:00 0          [vdso]
> bfc43000-bfc65000 rw-p 00000000 00:00 0          [stack]
> qemu: terminating on signal 15 from pid 8740
> main-loop: WARNING: I/O thread spun for 1000 iterations
> *** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x09e5c3d0 ***
> ======= Backtrace: =========
> /lib/libc.so.6[0x46205d12]
> /usr/bin/iasl[0x80a5a66]
> /usr/bin/iasl[0x80a2717]
> /usr/bin/iasl[0x80a284b]
> /usr/bin/iasl[0x805bf32]
> /usr/bin/iasl[0x8072352]
> /usr/bin/iasl[0x80726c1]
> /usr/bin/iasl[0x80725f5]
> /usr/bin/iasl[0x80491a9]
> /lib/libc.so.6(__libc_start_main+0xf3)[0x461a9963]
> /usr/bin/iasl[0x80491fd]
> ======= Memory map: ========
> 08047000-0810d000 r-xp 00000000 08:06 48242      /usr/bin/iasl
> 0810d000-0810e000 r--p 000c5000 08:06 48242      /usr/bin/iasl
> 0810e000-0810f000 rw-p 000c6000 08:06 48242      /usr/bin/iasl
> 0810f000-08113000 rw-p 00000000 00:00 0 
> 09e3c000-09e7e000 rw-p 00000000 00:00 0          [heap]
> 4616d000-4618c000 r-xp 00000000 08:06 4415       /usr/lib/ld-2.17.so
> 4618c000-4618d000 r--p 0001e000 08:06 4415       /usr/lib/ld-2.17.so
> 4618d000-4618e000 rw-p 0001f000 08:06 4415       /usr/lib/ld-2.17.so
> 46190000-46348000 r-xp 00000000 08:06 4643       /usr/lib/libc-2.17.so
> 46348000-46349000 ---p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> 46349000-4634b000 r--p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> 4634b000-4634c000 rw-p 001ba000 08:06 4643       /usr/lib/libc-2.17.so
> 4634c000-4634f000 rw-p 00000000 00:00 0 
> 463d2000-463ed000 r-xp 00000000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> 463ed000-463ee000 r--p 0001a000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> 463ee000-463ef000 rw-p 0001b000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> b777d000-b777e000 rw-p 00000000 00:00 0 
> b77a8000-b77ab000 rw-p 00000000 00:00 0 
> b77ab000-b77ac000 r-xp 00000000 00:00 0          [vdso]
> bfbb1000-bfbd3000 rw-p 00000000 00:00 0          [stack]
> *** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x0926c410 ***
> 
> 
> 
> > > 
> > > ests/acpi-test.c: In function ‘dump_aml_files’:
> > > tests/acpi-test.c:392:14: error: ignoring return value of ‘write’,
> > > declared with attribute warn_unused_result [-Werror=unused-result]
> > >          write(fd, sdt, sizeof(AcpiTableHeader));
> > >               ^
> > > tests/acpi-test.c:393:14: error: ignoring return value of ‘write’,
> > > declared with attribute warn_unused_result [-Werror=unused-result]
> > >          write(fd, sdt->aml, sdt->aml_len);
> > >               ^
> > > cc1: all warnings being treated as errors
> > > make: *** [tests/acpi-test.o] Error 1
> > > 
> > > and it's true: you need to wrap write in a loop as it can
> > > write less than requested number of bytes.
> > > See qemu_write_full - can it be used it tests?
> > > 
> > > > > > v1 -> v2:
> > > > > > Addressed Michael S. Tsirkin's comments:
> > > > > >  - added TEST_ prefix to the environment variable
> > > > > >  - some rephrases
> > > > > > 
> > > > > > Marcel Apfelbaum (2):
> > > > > >   acpi unit-test: added script to rebuild the expected aml files
> > > > > >   acpi unit-test: hook to rebuild expected aml files
> > > > > > 
> > > > > >  tests/acpi-test-data/rebuild-expected-aml.sh | 36 ++++++++++++++++++++++++++++
> > > > > >  tests/acpi-test.c                            | 30 +++++++++++++++++++----
> > > > > >  2 files changed, 61 insertions(+), 5 deletions(-)
> > > > > >  create mode 100755 tests/acpi-test-data/rebuild-expected-aml.sh
> > > > > > 
> > > > > > -- 
> > > > > > 1.8.3.1
> > > > > 
> > > > 
> > > > 
> > 
> > 

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

* Re: [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality
  2013-12-26 15:58           ` Marcel Apfelbaum
@ 2013-12-26 16:12             ` Michael S. Tsirkin
  2013-12-26 16:51               ` Michael S. Tsirkin
  0 siblings, 1 reply; 16+ messages in thread
From: Michael S. Tsirkin @ 2013-12-26 16:12 UTC (permalink / raw
  To: Marcel Apfelbaum; +Cc: qemu-devel

On Thu, Dec 26, 2013 at 05:58:09PM +0200, Marcel Apfelbaum wrote:
> On Thu, 2013-12-26 at 17:41 +0200, Michael S. Tsirkin wrote:
> > On Thu, Dec 26, 2013 at 04:09:58PM +0200, Marcel Apfelbaum wrote:
> > > On Thu, 2013-12-26 at 15:53 +0200, Michael S. Tsirkin wrote:
> > > > On Thu, Dec 26, 2013 at 03:24:28PM +0200, Marcel Apfelbaum wrote:
> > > > > On Thu, 2013-12-26 at 14:46 +0200, Michael S. Tsirkin wrote:
> > > > > > On Thu, Dec 26, 2013 at 02:19:48PM +0200, Marcel Apfelbaum wrote:
> > > > > > > Acpi unit-test will fail every time the acpi tables change.
> > > > > > > 
> > > > > > > The series adds a script that rebuilds the expected aml files, so the test
> > > > > > > will pass. It also validates the modifications.
> > > > > > > 
> > > > > > > The acpi unit test will rebuild the aml tables if TEST_ACPI_REBUILD_AML
> > > > > > > environment variable is set.
> > > > > > 
> > > > > > OK I had to fix some trailing whitespace, otherwise
> > > > > > looks good.
> > > > > > I applied it all, pls check the pci branch.
> > > > > Thanks!
> > > > > I pulled the pci branch, but I did not see the patches yet. 
> > > > > I used git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git,
> > > > > pci branch.
> > > > > 
> > > > > Thanks,
> > > > > Marcel
> > > > 
> > > > 
> > > > Actually had to revert. Build fails with recent gcc:
> > > Strange, I update the gcc to the Fedora's latest 4.8.2 and
> > > it still doesn't happen.
> > > Anyway, I use qemu_write_full as advised and resent.
> > > 
> > > Thanks,
> > > Marcel
> > 
> > OK I applied this for now but I see an issue: iasl crashes below.
> Thanks!
> By the way, I resend the whole series, I hope you used it.

yes pushed, take a look

> > I think this happens when we run it on a file
> > it does not understand.
> > It's an iasl bug but would be nice to work around
> > it in some way (and it would be nice to report to
> > robert moore)
> 
> I cannot reproduce it, I'll try anyway. 
> By the way, the test checks if iasl exits with error,
> so it should handle this gracefully. (I hope!)
> 
> Regarding the IASL project, I'll see if I can open a bug,

no, just send mail.

> (if I can reproduce it, otherwise I risk they'll ask some
> questions I cannot answer...)
> 
> Thanks,
> Marcel

This is on fedora 19, 32 bit.

> > 
> > 
> > *** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x0881bc98 ***
> > ======= Backtrace: =========
> > /lib/libc.so.6[0x46205d12]
> > /usr/bin/iasl[0x80a5a66]
> > /usr/bin/iasl[0x80a2717]
> > /usr/bin/iasl[0x80a284b]
> > /usr/bin/iasl[0x805bf32]
> > /usr/bin/iasl[0x8072352]
> > /usr/bin/iasl[0x80726c1]
> > /usr/bin/iasl[0x80725f5]
> > /usr/bin/iasl[0x80491a9]
> > /lib/libc.so.6(__libc_start_main+0xf3)[0x461a9963]
> > /usr/bin/iasl[0x80491fd]
> > ======= Memory map: ========
> > 08047000-0810d000 r-xp 00000000 08:06 48242      /usr/bin/iasl
> > 0810d000-0810e000 r--p 000c5000 08:06 48242      /usr/bin/iasl
> > 0810e000-0810f000 rw-p 000c6000 08:06 48242      /usr/bin/iasl
> > 0810f000-08113000 rw-p 00000000 00:00 0 
> > 087f7000-08839000 rw-p 00000000 00:00 0          [heap]
> > 4616d000-4618c000 r-xp 00000000 08:06 4415       /usr/lib/ld-2.17.so
> > 4618c000-4618d000 r--p 0001e000 08:06 4415       /usr/lib/ld-2.17.so
> > 4618d000-4618e000 rw-p 0001f000 08:06 4415       /usr/lib/ld-2.17.so
> > 46190000-46348000 r-xp 00000000 08:06 4643       /usr/lib/libc-2.17.so
> > 46348000-46349000 ---p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> > 46349000-4634b000 r--p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> > 4634b000-4634c000 rw-p 001ba000 08:06 4643       /usr/lib/libc-2.17.so
> > 4634c000-4634f000 rw-p 00000000 00:00 0 
> > 463d2000-463ed000 r-xp 00000000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> > 463ed000-463ee000 r--p 0001a000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> > 463ee000-463ef000 rw-p 0001b000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> > b7741000-b7742000 rw-p 00000000 00:00 0 
> > b776c000-b776f000 rw-p 00000000 00:00 0 
> > b776f000-b7770000 r-xp 00000000 00:00 0          [vdso]
> > bfc6f000-bfc91000 rw-p 00000000 00:00 0          [stack]
> > *** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x09286cd8 ***
> > ======= Backtrace: =========
> > /lib/libc.so.6[0x46205d12]
> > /usr/bin/iasl[0x80a5a66]
> > /usr/bin/iasl[0x80a2717]
> > /usr/bin/iasl[0x80a284b]
> > /usr/bin/iasl[0x805bf32]
> > /usr/bin/iasl[0x8072352]
> > /usr/bin/iasl[0x80726c1]
> > /usr/bin/iasl[0x80725f5]
> > /usr/bin/iasl[0x80491a9]
> > /lib/libc.so.6(__libc_start_main+0xf3)[0x461a9963]
> > /usr/bin/iasl[0x80491fd]
> > ======= Memory map: ========
> > 08047000-0810d000 r-xp 00000000 08:06 48242      /usr/bin/iasl
> > 0810d000-0810e000 r--p 000c5000 08:06 48242      /usr/bin/iasl
> > 0810e000-0810f000 rw-p 000c6000 08:06 48242      /usr/bin/iasl
> > 0810f000-08113000 rw-p 00000000 00:00 0 
> > 09262000-092a4000 rw-p 00000000 00:00 0          [heap]
> > 4616d000-4618c000 r-xp 00000000 08:06 4415       /usr/lib/ld-2.17.so
> > 4618c000-4618d000 r--p 0001e000 08:06 4415       /usr/lib/ld-2.17.so
> > 4618d000-4618e000 rw-p 0001f000 08:06 4415       /usr/lib/ld-2.17.so
> > 46190000-46348000 r-xp 00000000 08:06 4643       /usr/lib/libc-2.17.so
> > 46348000-46349000 ---p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> > 46349000-4634b000 r--p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> > 4634b000-4634c000 rw-p 001ba000 08:06 4643       /usr/lib/libc-2.17.so
> > 4634c000-4634f000 rw-p 00000000 00:00 0 
> > 463d2000-463ed000 r-xp 00000000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> > 463ed000-463ee000 r--p 0001a000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> > 463ee000-463ef000 rw-p 0001b000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> > b774b000-b774c000 rw-p 00000000 00:00 0 
> > b7776000-b7779000 rw-p 00000000 00:00 0 
> > b7779000-b777a000 r-xp 00000000 00:00 0          [vdso]
> > bfd37000-bfd59000 rw-p 00000000 00:00 0          [stack]
> > *** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x09587c58 ***
> > ======= Backtrace: =========
> > /lib/libc.so.6[0x46205d12]
> > /usr/bin/iasl[0x80a5a66]
> > /usr/bin/iasl[0x80a2717]
> > /usr/bin/iasl[0x80a284b]
> > /usr/bin/iasl[0x805bf32]
> > /usr/bin/iasl[0x8072352]
> > /usr/bin/iasl[0x80726c1]
> > /usr/bin/iasl[0x80725f5]
> > /usr/bin/iasl[0x80491a9]
> > /lib/libc.so.6(__libc_start_main+0xf3)[0x461a9963]
> > /usr/bin/iasl[0x80491fd]
> > ======= Memory map: ========
> > 08047000-0810d000 r-xp 00000000 08:06 48242      /usr/bin/iasl
> > 0810d000-0810e000 r--p 000c5000 08:06 48242      /usr/bin/iasl
> > 0810e000-0810f000 rw-p 000c6000 08:06 48242      /usr/bin/iasl
> > 0810f000-08113000 rw-p 00000000 00:00 0 
> > 09563000-095a5000 rw-p 00000000 00:00 0          [heap]
> > 4616d000-4618c000 r-xp 00000000 08:06 4415       /usr/lib/ld-2.17.so
> > 4618c000-4618d000 r--p 0001e000 08:06 4415       /usr/lib/ld-2.17.so
> > 4618d000-4618e000 rw-p 0001f000 08:06 4415       /usr/lib/ld-2.17.so
> > 46190000-46348000 r-xp 00000000 08:06 4643       /usr/lib/libc-2.17.so
> > 46348000-46349000 ---p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> > 46349000-4634b000 r--p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> > 4634b000-4634c000 rw-p 001ba000 08:06 4643       /usr/lib/libc-2.17.so
> > 4634c000-4634f000 rw-p 00000000 00:00 0 
> > 463d2000-463ed000 r-xp 00000000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> > 463ed000-463ee000 r--p 0001a000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> > 463ee000-463ef000 rw-p 0001b000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> > b77af000-b77b0000 rw-p 00000000 00:00 0 
> > b77da000-b77dd000 rw-p 00000000 00:00 0 
> > b77dd000-b77de000 r-xp 00000000 00:00 0          [vdso]
> > bfe96000-bfeb8000 rw-p 00000000 00:00 0          [stack]
> > *** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x096c7c98 ***
> > ======= Backtrace: =========
> > /lib/libc.so.6[0x46205d12]
> > /usr/bin/iasl[0x80a5a66]
> > /usr/bin/iasl[0x80a2717]
> > /usr/bin/iasl[0x80a284b]
> > /usr/bin/iasl[0x805bf32]
> > /usr/bin/iasl[0x8072352]
> > /usr/bin/iasl[0x80726c1]
> > /usr/bin/iasl[0x80725f5]
> > /usr/bin/iasl[0x80491a9]
> > /lib/libc.so.6(__libc_start_main+0xf3)[0x461a9963]
> > /usr/bin/iasl[0x80491fd]
> > ======= Memory map: ========
> > 08047000-0810d000 r-xp 00000000 08:06 48242      /usr/bin/iasl
> > 0810d000-0810e000 r--p 000c5000 08:06 48242      /usr/bin/iasl
> > 0810e000-0810f000 rw-p 000c6000 08:06 48242      /usr/bin/iasl
> > 0810f000-08113000 rw-p 00000000 00:00 0 
> > 096a3000-096e5000 rw-p 00000000 00:00 0          [heap]
> > 4616d000-4618c000 r-xp 00000000 08:06 4415       /usr/lib/ld-2.17.so
> > 4618c000-4618d000 r--p 0001e000 08:06 4415       /usr/lib/ld-2.17.so
> > 4618d000-4618e000 rw-p 0001f000 08:06 4415       /usr/lib/ld-2.17.so
> > 46190000-46348000 r-xp 00000000 08:06 4643       /usr/lib/libc-2.17.so
> > 46348000-46349000 ---p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> > 46349000-4634b000 r--p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> > 4634b000-4634c000 rw-p 001ba000 08:06 4643       /usr/lib/libc-2.17.so
> > 4634c000-4634f000 rw-p 00000000 00:00 0 
> > 463d2000-463ed000 r-xp 00000000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> > 463ed000-463ee000 r--p 0001a000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> > 463ee000-463ef000 rw-p 0001b000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> > b7714000-b7715000 rw-p 00000000 00:00 0 
> > b773f000-b7742000 rw-p 00000000 00:00 0 
> > b7742000-b7743000 r-xp 00000000 00:00 0          [vdso]
> > bfc43000-bfc65000 rw-p 00000000 00:00 0          [stack]
> > qemu: terminating on signal 15 from pid 8740
> > main-loop: WARNING: I/O thread spun for 1000 iterations
> > *** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x09e5c3d0 ***
> > ======= Backtrace: =========
> > /lib/libc.so.6[0x46205d12]
> > /usr/bin/iasl[0x80a5a66]
> > /usr/bin/iasl[0x80a2717]
> > /usr/bin/iasl[0x80a284b]
> > /usr/bin/iasl[0x805bf32]
> > /usr/bin/iasl[0x8072352]
> > /usr/bin/iasl[0x80726c1]
> > /usr/bin/iasl[0x80725f5]
> > /usr/bin/iasl[0x80491a9]
> > /lib/libc.so.6(__libc_start_main+0xf3)[0x461a9963]
> > /usr/bin/iasl[0x80491fd]
> > ======= Memory map: ========
> > 08047000-0810d000 r-xp 00000000 08:06 48242      /usr/bin/iasl
> > 0810d000-0810e000 r--p 000c5000 08:06 48242      /usr/bin/iasl
> > 0810e000-0810f000 rw-p 000c6000 08:06 48242      /usr/bin/iasl
> > 0810f000-08113000 rw-p 00000000 00:00 0 
> > 09e3c000-09e7e000 rw-p 00000000 00:00 0          [heap]
> > 4616d000-4618c000 r-xp 00000000 08:06 4415       /usr/lib/ld-2.17.so
> > 4618c000-4618d000 r--p 0001e000 08:06 4415       /usr/lib/ld-2.17.so
> > 4618d000-4618e000 rw-p 0001f000 08:06 4415       /usr/lib/ld-2.17.so
> > 46190000-46348000 r-xp 00000000 08:06 4643       /usr/lib/libc-2.17.so
> > 46348000-46349000 ---p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> > 46349000-4634b000 r--p 001b8000 08:06 4643       /usr/lib/libc-2.17.so
> > 4634b000-4634c000 rw-p 001ba000 08:06 4643       /usr/lib/libc-2.17.so
> > 4634c000-4634f000 rw-p 00000000 00:00 0 
> > 463d2000-463ed000 r-xp 00000000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> > 463ed000-463ee000 r--p 0001a000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> > 463ee000-463ef000 rw-p 0001b000 08:06 51367      /usr/lib/libgcc_s-4.8.2-20131212.so.1
> > b777d000-b777e000 rw-p 00000000 00:00 0 
> > b77a8000-b77ab000 rw-p 00000000 00:00 0 
> > b77ab000-b77ac000 r-xp 00000000 00:00 0          [vdso]
> > bfbb1000-bfbd3000 rw-p 00000000 00:00 0          [stack]
> > *** Error in `/usr/bin/iasl': double free or corruption (!prev): 0x0926c410 ***
> > 
> > 
> > 
> > > > 
> > > > ests/acpi-test.c: In function ‘dump_aml_files’:
> > > > tests/acpi-test.c:392:14: error: ignoring return value of ‘write’,
> > > > declared with attribute warn_unused_result [-Werror=unused-result]
> > > >          write(fd, sdt, sizeof(AcpiTableHeader));
> > > >               ^
> > > > tests/acpi-test.c:393:14: error: ignoring return value of ‘write’,
> > > > declared with attribute warn_unused_result [-Werror=unused-result]
> > > >          write(fd, sdt->aml, sdt->aml_len);
> > > >               ^
> > > > cc1: all warnings being treated as errors
> > > > make: *** [tests/acpi-test.o] Error 1
> > > > 
> > > > and it's true: you need to wrap write in a loop as it can
> > > > write less than requested number of bytes.
> > > > See qemu_write_full - can it be used it tests?
> > > > 
> > > > > > > v1 -> v2:
> > > > > > > Addressed Michael S. Tsirkin's comments:
> > > > > > >  - added TEST_ prefix to the environment variable
> > > > > > >  - some rephrases
> > > > > > > 
> > > > > > > Marcel Apfelbaum (2):
> > > > > > >   acpi unit-test: added script to rebuild the expected aml files
> > > > > > >   acpi unit-test: hook to rebuild expected aml files
> > > > > > > 
> > > > > > >  tests/acpi-test-data/rebuild-expected-aml.sh | 36 ++++++++++++++++++++++++++++
> > > > > > >  tests/acpi-test.c                            | 30 +++++++++++++++++++----
> > > > > > >  2 files changed, 61 insertions(+), 5 deletions(-)
> > > > > > >  create mode 100755 tests/acpi-test-data/rebuild-expected-aml.sh
> > > > > > > 
> > > > > > > -- 
> > > > > > > 1.8.3.1
> > > > > > 
> > > > > 
> > > > > 
> > > 
> > > 
> 
> 

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

* Re: [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality
  2013-12-26 16:12             ` Michael S. Tsirkin
@ 2013-12-26 16:51               ` Michael S. Tsirkin
  2013-12-26 17:15                 ` Marcel Apfelbaum
  0 siblings, 1 reply; 16+ messages in thread
From: Michael S. Tsirkin @ 2013-12-26 16:51 UTC (permalink / raw
  To: Marcel Apfelbaum; +Cc: qemu-devel

On Thu, Dec 26, 2013 at 06:12:25PM +0200, Michael S. Tsirkin wrote:
> On Thu, Dec 26, 2013 at 05:58:09PM +0200, Marcel Apfelbaum wrote:
> > On Thu, 2013-12-26 at 17:41 +0200, Michael S. Tsirkin wrote:
> > > On Thu, Dec 26, 2013 at 04:09:58PM +0200, Marcel Apfelbaum wrote:
> > > > On Thu, 2013-12-26 at 15:53 +0200, Michael S. Tsirkin wrote:
> > > > > On Thu, Dec 26, 2013 at 03:24:28PM +0200, Marcel Apfelbaum wrote:
> > > > > > On Thu, 2013-12-26 at 14:46 +0200, Michael S. Tsirkin wrote:
> > > > > > > On Thu, Dec 26, 2013 at 02:19:48PM +0200, Marcel Apfelbaum wrote:
> > > > > > > > Acpi unit-test will fail every time the acpi tables change.
> > > > > > > > 
> > > > > > > > The series adds a script that rebuilds the expected aml files, so the test
> > > > > > > > will pass. It also validates the modifications.
> > > > > > > > 
> > > > > > > > The acpi unit test will rebuild the aml tables if TEST_ACPI_REBUILD_AML
> > > > > > > > environment variable is set.
> > > > > > > 
> > > > > > > OK I had to fix some trailing whitespace, otherwise
> > > > > > > looks good.
> > > > > > > I applied it all, pls check the pci branch.
> > > > > > Thanks!
> > > > > > I pulled the pci branch, but I did not see the patches yet. 
> > > > > > I used git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git,
> > > > > > pci branch.
> > > > > > 
> > > > > > Thanks,
> > > > > > Marcel
> > > > > 
> > > > > 
> > > > > Actually had to revert. Build fails with recent gcc:
> > > > Strange, I update the gcc to the Fedora's latest 4.8.2 and
> > > > it still doesn't happen.
> > > > Anyway, I use qemu_write_full as advised and resent.
> > > > 
> > > > Thanks,
> > > > Marcel
> > > 
> > > OK I applied this for now but I see an issue: iasl crashes below.
> > Thanks!
> > By the way, I resend the whole series, I hope you used it.
> 
> yes pushed, take a look
> 
> > > I think this happens when we run it on a file
> > > it does not understand.
> > > It's an iasl bug but would be nice to work around
> > > it in some way (and it would be nice to report to
> > > robert moore)
> > 
> > I cannot reproduce it, I'll try anyway. 
> > By the way, the test checks if iasl exits with error,
> > so it should handle this gracefully. (I hope!)
> > 
> > Regarding the IASL project, I'll see if I can open a bug,
> 
> no, just send mail.
> 
> > (if I can reproduce it, otherwise I risk they'll ask some
> > questions I cannot answer...)
> > 
> > Thanks,
> > Marcel
> 
> This is on fedora 19, 32 bit.

I see that the issue is with HPET table.

iasl -e DSDT -e SSDT -d HPET

crashes for me

iasl -d HPET

does not crash

I think that only DSDT and SSDT need -e.

Just skip -e for anything that is not an SSDT
and not a DSDT.

-- 
MST

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

* Re: [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality
  2013-12-26 16:51               ` Michael S. Tsirkin
@ 2013-12-26 17:15                 ` Marcel Apfelbaum
  2013-12-26 18:19                   ` Michael S. Tsirkin
  0 siblings, 1 reply; 16+ messages in thread
From: Marcel Apfelbaum @ 2013-12-26 17:15 UTC (permalink / raw
  To: Michael S. Tsirkin; +Cc: qemu-devel

On Thu, 2013-12-26 at 18:51 +0200, Michael S. Tsirkin wrote:
> On Thu, Dec 26, 2013 at 06:12:25PM +0200, Michael S. Tsirkin wrote:
> > On Thu, Dec 26, 2013 at 05:58:09PM +0200, Marcel Apfelbaum wrote:
> > > On Thu, 2013-12-26 at 17:41 +0200, Michael S. Tsirkin wrote:
> > > > On Thu, Dec 26, 2013 at 04:09:58PM +0200, Marcel Apfelbaum wrote:
> > > > > On Thu, 2013-12-26 at 15:53 +0200, Michael S. Tsirkin wrote:
> > > > > > On Thu, Dec 26, 2013 at 03:24:28PM +0200, Marcel Apfelbaum wrote:
> > > > > > > On Thu, 2013-12-26 at 14:46 +0200, Michael S. Tsirkin wrote:
> > > > > > > > On Thu, Dec 26, 2013 at 02:19:48PM +0200, Marcel Apfelbaum wrote:
> > > > > > > > > Acpi unit-test will fail every time the acpi tables change.
> > > > > > > > > 
> > > > > > > > > The series adds a script that rebuilds the expected aml files, so the test
> > > > > > > > > will pass. It also validates the modifications.
> > > > > > > > > 
> > > > > > > > > The acpi unit test will rebuild the aml tables if TEST_ACPI_REBUILD_AML
> > > > > > > > > environment variable is set.
> > > > > > > > 
> > > > > > > > OK I had to fix some trailing whitespace, otherwise
> > > > > > > > looks good.
> > > > > > > > I applied it all, pls check the pci branch.
> > > > > > > Thanks!
> > > > > > > I pulled the pci branch, but I did not see the patches yet. 
> > > > > > > I used git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git,
> > > > > > > pci branch.
> > > > > > > 
> > > > > > > Thanks,
> > > > > > > Marcel
> > > > > > 
> > > > > > 
> > > > > > Actually had to revert. Build fails with recent gcc:
> > > > > Strange, I update the gcc to the Fedora's latest 4.8.2 and
> > > > > it still doesn't happen.
> > > > > Anyway, I use qemu_write_full as advised and resent.
> > > > > 
> > > > > Thanks,
> > > > > Marcel
> > > > 
> > > > OK I applied this for now but I see an issue: iasl crashes below.
> > > Thanks!
> > > By the way, I resend the whole series, I hope you used it.
> > 
> > yes pushed, take a look
> > 
> > > > I think this happens when we run it on a file
> > > > it does not understand.
> > > > It's an iasl bug but would be nice to work around
> > > > it in some way (and it would be nice to report to
> > > > robert moore)
> > > 
> > > I cannot reproduce it, I'll try anyway. 
> > > By the way, the test checks if iasl exits with error,
> > > so it should handle this gracefully. (I hope!)
> > > 
> > > Regarding the IASL project, I'll see if I can open a bug,
> > 
> > no, just send mail.
> > 
> > > (if I can reproduce it, otherwise I risk they'll ask some
> > > questions I cannot answer...)
> > > 
> > > Thanks,
> > > Marcel
> > 
> > This is on fedora 19, 32 bit.
> 
> I see that the issue is with HPET table.
> 
> iasl -e DSDT -e SSDT -d HPET
> 
> crashes for me
> 
> iasl -d HPET
> 
> does not crash
> 
> I think that only DSDT and SSDT need -e.
> 
> Just skip -e for anything that is not an SSDT
> and not a DSDT.
Thanks for the tip. I'll send a fix soon.
Marcel

> 

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

* Re: [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality
  2013-12-26 17:15                 ` Marcel Apfelbaum
@ 2013-12-26 18:19                   ` Michael S. Tsirkin
  2013-12-26 22:01                     ` Marcel Apfelbaum
  0 siblings, 1 reply; 16+ messages in thread
From: Michael S. Tsirkin @ 2013-12-26 18:19 UTC (permalink / raw
  To: Marcel Apfelbaum; +Cc: qemu-devel

On Thu, Dec 26, 2013 at 07:15:00PM +0200, Marcel Apfelbaum wrote:
> On Thu, 2013-12-26 at 18:51 +0200, Michael S. Tsirkin wrote:
> > On Thu, Dec 26, 2013 at 06:12:25PM +0200, Michael S. Tsirkin wrote:
> > > On Thu, Dec 26, 2013 at 05:58:09PM +0200, Marcel Apfelbaum wrote:
> > > > On Thu, 2013-12-26 at 17:41 +0200, Michael S. Tsirkin wrote:
> > > > > On Thu, Dec 26, 2013 at 04:09:58PM +0200, Marcel Apfelbaum wrote:
> > > > > > On Thu, 2013-12-26 at 15:53 +0200, Michael S. Tsirkin wrote:
> > > > > > > On Thu, Dec 26, 2013 at 03:24:28PM +0200, Marcel Apfelbaum wrote:
> > > > > > > > On Thu, 2013-12-26 at 14:46 +0200, Michael S. Tsirkin wrote:
> > > > > > > > > On Thu, Dec 26, 2013 at 02:19:48PM +0200, Marcel Apfelbaum wrote:
> > > > > > > > > > Acpi unit-test will fail every time the acpi tables change.
> > > > > > > > > > 
> > > > > > > > > > The series adds a script that rebuilds the expected aml files, so the test
> > > > > > > > > > will pass. It also validates the modifications.
> > > > > > > > > > 
> > > > > > > > > > The acpi unit test will rebuild the aml tables if TEST_ACPI_REBUILD_AML
> > > > > > > > > > environment variable is set.
> > > > > > > > > 
> > > > > > > > > OK I had to fix some trailing whitespace, otherwise
> > > > > > > > > looks good.
> > > > > > > > > I applied it all, pls check the pci branch.
> > > > > > > > Thanks!
> > > > > > > > I pulled the pci branch, but I did not see the patches yet. 
> > > > > > > > I used git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git,
> > > > > > > > pci branch.
> > > > > > > > 
> > > > > > > > Thanks,
> > > > > > > > Marcel
> > > > > > > 
> > > > > > > 
> > > > > > > Actually had to revert. Build fails with recent gcc:
> > > > > > Strange, I update the gcc to the Fedora's latest 4.8.2 and
> > > > > > it still doesn't happen.
> > > > > > Anyway, I use qemu_write_full as advised and resent.
> > > > > > 
> > > > > > Thanks,
> > > > > > Marcel
> > > > > 
> > > > > OK I applied this for now but I see an issue: iasl crashes below.
> > > > Thanks!
> > > > By the way, I resend the whole series, I hope you used it.
> > > 
> > > yes pushed, take a look
> > > 
> > > > > I think this happens when we run it on a file
> > > > > it does not understand.
> > > > > It's an iasl bug but would be nice to work around
> > > > > it in some way (and it would be nice to report to
> > > > > robert moore)
> > > > 
> > > > I cannot reproduce it, I'll try anyway. 
> > > > By the way, the test checks if iasl exits with error,
> > > > so it should handle this gracefully. (I hope!)
> > > > 
> > > > Regarding the IASL project, I'll see if I can open a bug,
> > > 
> > > no, just send mail.
> > > 
> > > > (if I can reproduce it, otherwise I risk they'll ask some
> > > > questions I cannot answer...)
> > > > 
> > > > Thanks,
> > > > Marcel
> > > 
> > > This is on fedora 19, 32 bit.
> > 
> > I see that the issue is with HPET table.
> > 
> > iasl -e DSDT -e SSDT -d HPET
> > 
> > crashes for me
> > 
> > iasl -d HPET
> > 
> > does not crash
> > 
> > I think that only DSDT and SSDT need -e.
> > 
> > Just skip -e for anything that is not an SSDT
> > and not a DSDT.
> Thanks for the tip. I'll send a fix soon.
> Marcel
> 
> > 
> 
> 

also I see you still do

           aml_file = g_strdup_printf("%s/%s/%.4s", data_dir,
data->machine,
                                       (gchar *)&sdt->header.signature);


this will not work if we have > 1 SSDT.

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

* Re: [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality
  2013-12-26 18:19                   ` Michael S. Tsirkin
@ 2013-12-26 22:01                     ` Marcel Apfelbaum
  2013-12-29 12:45                       ` Marcel Apfelbaum
  0 siblings, 1 reply; 16+ messages in thread
From: Marcel Apfelbaum @ 2013-12-26 22:01 UTC (permalink / raw
  To: Michael S. Tsirkin; +Cc: qemu-devel

On Thu, 2013-12-26 at 20:19 +0200, Michael S. Tsirkin wrote:
> On Thu, Dec 26, 2013 at 07:15:00PM +0200, Marcel Apfelbaum wrote:
> > On Thu, 2013-12-26 at 18:51 +0200, Michael S. Tsirkin wrote:
> > > On Thu, Dec 26, 2013 at 06:12:25PM +0200, Michael S. Tsirkin wrote:
> > > > On Thu, Dec 26, 2013 at 05:58:09PM +0200, Marcel Apfelbaum wrote:
> > > > > On Thu, 2013-12-26 at 17:41 +0200, Michael S. Tsirkin wrote:
> > > > > > On Thu, Dec 26, 2013 at 04:09:58PM +0200, Marcel Apfelbaum wrote:
> > > > > > > On Thu, 2013-12-26 at 15:53 +0200, Michael S. Tsirkin wrote:
> > > > > > > > On Thu, Dec 26, 2013 at 03:24:28PM +0200, Marcel Apfelbaum wrote:
> > > > > > > > > On Thu, 2013-12-26 at 14:46 +0200, Michael S. Tsirkin wrote:
> > > > > > > > > > On Thu, Dec 26, 2013 at 02:19:48PM +0200, Marcel Apfelbaum wrote:
> > > > > > > > > > > Acpi unit-test will fail every time the acpi tables change.
> > > > > > > > > > > 
> > > > > > > > > > > The series adds a script that rebuilds the expected aml files, so the test
> > > > > > > > > > > will pass. It also validates the modifications.
> > > > > > > > > > > 
> > > > > > > > > > > The acpi unit test will rebuild the aml tables if TEST_ACPI_REBUILD_AML
> > > > > > > > > > > environment variable is set.
> > > > > > > > > > 
> > > > > > > > > > OK I had to fix some trailing whitespace, otherwise
> > > > > > > > > > looks good.
> > > > > > > > > > I applied it all, pls check the pci branch.
> > > > > > > > > Thanks!
> > > > > > > > > I pulled the pci branch, but I did not see the patches yet. 
> > > > > > > > > I used git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git,
> > > > > > > > > pci branch.
> > > > > > > > > 
> > > > > > > > > Thanks,
> > > > > > > > > Marcel
> > > > > > > > 
> > > > > > > > 
> > > > > > > > Actually had to revert. Build fails with recent gcc:
> > > > > > > Strange, I update the gcc to the Fedora's latest 4.8.2 and
> > > > > > > it still doesn't happen.
> > > > > > > Anyway, I use qemu_write_full as advised and resent.
> > > > > > > 
> > > > > > > Thanks,
> > > > > > > Marcel
> > > > > > 
> > > > > > OK I applied this for now but I see an issue: iasl crashes below.
> > > > > Thanks!
> > > > > By the way, I resend the whole series, I hope you used it.
> > > > 
> > > > yes pushed, take a look
> > > > 
> > > > > > I think this happens when we run it on a file
> > > > > > it does not understand.
> > > > > > It's an iasl bug but would be nice to work around
> > > > > > it in some way (and it would be nice to report to
> > > > > > robert moore)
> > > > > 
> > > > > I cannot reproduce it, I'll try anyway. 
> > > > > By the way, the test checks if iasl exits with error,
> > > > > so it should handle this gracefully. (I hope!)
> > > > > 
> > > > > Regarding the IASL project, I'll see if I can open a bug,
> > > > 
> > > > no, just send mail.
> > > > 
> > > > > (if I can reproduce it, otherwise I risk they'll ask some
> > > > > questions I cannot answer...)
> > > > > 
> > > > > Thanks,
> > > > > Marcel
> > > > 
> > > > This is on fedora 19, 32 bit.
> > > 
> > > I see that the issue is with HPET table.
> > > 
> > > iasl -e DSDT -e SSDT -d HPET
> > > 
> > > crashes for me
> > > 
> > > iasl -d HPET
> > > 
> > > does not crash
> > > 
> > > I think that only DSDT and SSDT need -e.
> > > 
> > > Just skip -e for anything that is not an SSDT
> > > and not a DSDT.
> > Thanks for the tip. I'll send a fix soon.
> > Marcel
> > 
> > > 
> > 
> > 
> 
> also I see you still do
> 
>            aml_file = g_strdup_printf("%s/%s/%.4s", data_dir,
> data->machine,
>                                        (gchar *)&sdt->header.signature);
> 
> 
> this will not work if we have > 1 SSDT.
As I stated in a prev thread:
>From what I understand there is only one ssdt table named SSDT,
all others are named differently: "APIC" "HPET".
I think multiple SSDTS have different signatures, even in my laptop
they are called: SSDT1, SSDT2, SSDT3,...

So, even if the SPEC allows it, for qemu we can use different signatures
for ssdt tables (it is allowed). (otherwise it will complicate the code unnecessary)

Thanks,
Marcel
> 

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

* Re: [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality
  2013-12-26 22:01                     ` Marcel Apfelbaum
@ 2013-12-29 12:45                       ` Marcel Apfelbaum
  0 siblings, 0 replies; 16+ messages in thread
From: Marcel Apfelbaum @ 2013-12-29 12:45 UTC (permalink / raw
  To: Michael S. Tsirkin; +Cc: qemu-devel

On Fri, 2013-12-27 at 00:01 +0200, Marcel Apfelbaum wrote:
> On Thu, 2013-12-26 at 20:19 +0200, Michael S. Tsirkin wrote:
> > On Thu, Dec 26, 2013 at 07:15:00PM +0200, Marcel Apfelbaum wrote:
> > > On Thu, 2013-12-26 at 18:51 +0200, Michael S. Tsirkin wrote:
> > > > On Thu, Dec 26, 2013 at 06:12:25PM +0200, Michael S. Tsirkin wrote:
> > > > > On Thu, Dec 26, 2013 at 05:58:09PM +0200, Marcel Apfelbaum wrote:
> > > > > > On Thu, 2013-12-26 at 17:41 +0200, Michael S. Tsirkin wrote:
> > > > > > > On Thu, Dec 26, 2013 at 04:09:58PM +0200, Marcel Apfelbaum wrote:
> > > > > > > > On Thu, 2013-12-26 at 15:53 +0200, Michael S. Tsirkin wrote:
> > > > > > > > > On Thu, Dec 26, 2013 at 03:24:28PM +0200, Marcel Apfelbaum wrote:
> > > > > > > > > > On Thu, 2013-12-26 at 14:46 +0200, Michael S. Tsirkin wrote:
> > > > > > > > > > > On Thu, Dec 26, 2013 at 02:19:48PM +0200, Marcel Apfelbaum wrote:
> > > > > > > > > > > > Acpi unit-test will fail every time the acpi tables change.
> > > > > > > > > > > > 
> > > > > > > > > > > > The series adds a script that rebuilds the expected aml files, so the test
> > > > > > > > > > > > will pass. It also validates the modifications.
> > > > > > > > > > > > 
> > > > > > > > > > > > The acpi unit test will rebuild the aml tables if TEST_ACPI_REBUILD_AML
> > > > > > > > > > > > environment variable is set.
> > > > > > > > > > > 
> > > > > > > > > > > OK I had to fix some trailing whitespace, otherwise
> > > > > > > > > > > looks good.
> > > > > > > > > > > I applied it all, pls check the pci branch.
> > > > > > > > > > Thanks!
> > > > > > > > > > I pulled the pci branch, but I did not see the patches yet. 
> > > > > > > > > > I used git://git.kernel.org/pub/scm/virt/kvm/mst/qemu.git,
> > > > > > > > > > pci branch.
> > > > > > > > > > 
> > > > > > > > > > Thanks,
> > > > > > > > > > Marcel
> > > > > > > > > 
> > > > > > > > > 
> > > > > > > > > Actually had to revert. Build fails with recent gcc:
> > > > > > > > Strange, I update the gcc to the Fedora's latest 4.8.2 and
> > > > > > > > it still doesn't happen.
> > > > > > > > Anyway, I use qemu_write_full as advised and resent.
> > > > > > > > 
> > > > > > > > Thanks,
> > > > > > > > Marcel
> > > > > > > 
> > > > > > > OK I applied this for now but I see an issue: iasl crashes below.
> > > > > > Thanks!
> > > > > > By the way, I resend the whole series, I hope you used it.
> > > > > 
> > > > > yes pushed, take a look
> > > > > 
> > > > > > > I think this happens when we run it on a file
> > > > > > > it does not understand.
> > > > > > > It's an iasl bug but would be nice to work around
> > > > > > > it in some way (and it would be nice to report to
> > > > > > > robert moore)
> > > > > > 
> > > > > > I cannot reproduce it, I'll try anyway. 
> > > > > > By the way, the test checks if iasl exits with error,
> > > > > > so it should handle this gracefully. (I hope!)
> > > > > > 
> > > > > > Regarding the IASL project, I'll see if I can open a bug,
> > > > > 
> > > > > no, just send mail.
> > > > > 
> > > > > > (if I can reproduce it, otherwise I risk they'll ask some
> > > > > > questions I cannot answer...)
> > > > > > 
> > > > > > Thanks,
> > > > > > Marcel
> > > > > 
> > > > > This is on fedora 19, 32 bit.
> > > > 
> > > > I see that the issue is with HPET table.
> > > > 
> > > > iasl -e DSDT -e SSDT -d HPET
> > > > 
> > > > crashes for me
> > > > 
> > > > iasl -d HPET
> > > > 
> > > > does not crash
> > > > 
> > > > I think that only DSDT and SSDT need -e.
> > > > 
> > > > Just skip -e for anything that is not an SSDT
> > > > and not a DSDT.
> > > Thanks for the tip. I'll send a fix soon.
> > > Marcel
> > > 
> > > > 
> > > 
> > > 
> > 
> > also I see you still do
> > 
> >            aml_file = g_strdup_printf("%s/%s/%.4s", data_dir,
> > data->machine,
> >                                        (gchar *)&sdt->header.signature);
> > 
> > 
> > this will not work if we have > 1 SSDT.
> As I stated in a prev thread:
> From what I understand there is only one ssdt table named SSDT,
> all others are named differently: "APIC" "HPET".
> I think multiple SSDTS have different signatures, even in my laptop
> they are called: SSDT1, SSDT2, SSDT3,...
I disassembled the SSDTx tables in my laptop and I saw that actually
they have the same "SSDT" signature.
I still believe what  I wrote before:
  1. There is only one ssdt table named SSDT in Qemu, all the others
     are named differently: "APIC" "HPET".
  2. Even if the SPEC allows to use the same signature, qemu we can use
     different signatures for ssdt tables (it is allowed). Otherwise it
     will complicate the code unnecessary.

Thanks,
 Marcel

 
> 
> 
> 
> 

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

end of thread, other threads:[~2013-12-29 12:46 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-12-26 12:19 [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality Marcel Apfelbaum
2013-12-26 12:19 ` [Qemu-devel] [PATCH v2 1/2] acpi unit-test: added script to rebuild the expected aml files Marcel Apfelbaum
2013-12-26 13:54   ` Michael S. Tsirkin
2013-12-26 12:19 ` [Qemu-devel] [PATCH v2 2/2] acpi unit-test: hook to rebuild " Marcel Apfelbaum
2013-12-26 12:46 ` [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality Michael S. Tsirkin
2013-12-26 13:24   ` Marcel Apfelbaum
2013-12-26 13:53     ` Michael S. Tsirkin
2013-12-26 14:09       ` Marcel Apfelbaum
2013-12-26 15:41         ` Michael S. Tsirkin
2013-12-26 15:58           ` Marcel Apfelbaum
2013-12-26 16:12             ` Michael S. Tsirkin
2013-12-26 16:51               ` Michael S. Tsirkin
2013-12-26 17:15                 ` Marcel Apfelbaum
2013-12-26 18:19                   ` Michael S. Tsirkin
2013-12-26 22:01                     ` Marcel Apfelbaum
2013-12-29 12:45                       ` Marcel Apfelbaum

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.