qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functi


From: Michael S. Tsirkin
Subject: Re: [Qemu-devel] [PATCH v2 0/2] acpi unit-test: rebuild aml files functionality
Date: Thu, 26 Dec 2013 17:41:03 +0200

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



reply via email to

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