mbox

[PULL,v2,00/22] QOM CPUState patch queue 2015-07-07

Message ID 1436289389-5403-1-git-send-email-afaerber@suse.de
State New
Headers show

Pull-request

git://github.com/afaerber/qemu-cpu.git tags/qom-cpu-for-peter

Message

Andreas Färber July 7, 2015, 5:16 p.m. UTC
Hello Peter,

This is my QOM CPU patch queue. Please pull.

Note: For time reasons I did not give this queue as much testing as usual,
in particular BSD and non-x86 KVM hosts were not covered.

Regards,
Andreas

Cc: Peter Maydell <peter.maydell@linaro.org>

Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Peter Crosthwaite <peter.crosthwaite@xilinx.com>

The following changes since commit f2562fbb7ac54d597cfe05f613d30296d1850d1b:

  Merge remote-tracking branch 'remotes/stefanha/tags/net-pull-request' into staging (2015-07-07 15:48:49 +0100)

are available in the git repository at:

  git://github.com/afaerber/qemu-cpu.git tags/qom-cpu-for-peter

for you to fetch changes up to cf6f1442257d53cf617545dd150efe26771ec31c:

  disas: cris: QOMify target specific disas setup (2015-07-07 18:35:39 +0200)

----------------------------------------------------------------
QOM CPUState and X86CPU

* Further QOM'ification of CPU initialization
* Propagation of CPUState arguments and elimination of ENV_GET_CPU() usage
* cpu_set_pc() abstraction
* CPUClass::disas_set_info() hook

----------------------------------------------------------------
Bharata B Rao (3):
      cpu: Add Error argument to cpu_exec_init()
      cpu: Convert cpu_index into a bitmap
      target-ppc: Move cpu_exec_init() call to realize function

Eduardo Habkost (3):
      cpu: No need to zero-initialize CPUState::numa_node
      cpu: Initialize breakpoint/watchpoint lists in cpu_common_initfn()
      cpu: Reorder cpu->as, cpu->thread_id, cpu->memory_dispatch init

Peter Crosthwaite (16):
      translate-all: Change tb_flush() env argument to cpu
      gdbstub: Change gdbserver_fork() to accept cpu instead of env
      cpu: Change tcg_cpu_exec() arg to cpu, not env
      cpu: Change cpu_exec_init() arg to cpu, not env
      cpu-exec: Purge all uses of ENV_GET_CPU()
      cpu: Add wrapper for the set_pc() hook
      gdbstub: Use cpu_set_pc() helper
      hw/arm/boot: Use cpu_set_pc()
      microblaze: boot: Use cpu_set_pc()
      disas: Add print_insn to disassemble info
      disas: QOMify target specific setup
      disas: arm-a64: Make printfer and stream variable
      disas: arm: QOMify target specific disas setup
      disas: microblaze: QOMify target specific disas setup
      disas: cris: Fix 0 buffer length case
      disas: cris: QOMify target specific disas setup

 bsd-user/main.c             |   6 ++-
 cpu-exec.c                  |  28 +++++------
 cpus.c                      |   8 ++-
 disas.c                     | 119 ++++++++++++++++----------------------------
 disas/arm-a64.cc            |  22 ++++++--
 disas/cris.c                |   6 +--
 exec.c                      |  71 ++++++++++++++++++++------
 gdbstub.c                   |  14 ++----
 hw/arm/boot.c               |  24 ++++-----
 hw/microblaze/boot.c        |   5 +-
 include/disas/bfd.h         |   6 +++
 include/exec/exec-all.h     |   4 +-
 include/exec/gdbstub.h      |   2 +-
 include/qom/cpu.h           |  19 +++++++
 linux-user/main.c           |  30 +++++------
 linux-user/signal.c         |   2 +-
 qom/cpu.c                   |   9 ++++
 target-alpha/cpu.c          |   2 +-
 target-alpha/cpu.h          |   2 +-
 target-alpha/sys_helper.c   |   2 +-
 target-arm/cpu.c            |  37 +++++++++++++-
 target-arm/cpu.h            |   2 +-
 target-cris/cpu.c           |  18 ++++++-
 target-cris/cpu.h           |   2 +-
 target-i386/cpu.c           |   2 +-
 target-i386/cpu.h           |   2 +-
 target-i386/translate.c     |   2 +-
 target-lm32/cpu.c           |   2 +-
 target-lm32/cpu.h           |   2 +-
 target-m68k/cpu.c           |   2 +-
 target-m68k/cpu.h           |   2 +-
 target-microblaze/cpu.c     |  10 +++-
 target-microblaze/cpu.h     |   2 +-
 target-mips/cpu.c           |   2 +-
 target-mips/cpu.h           |   2 +-
 target-moxie/cpu.c          |   2 +-
 target-moxie/cpu.h          |   2 +-
 target-openrisc/cpu.c       |   2 +-
 target-openrisc/cpu.h       |   2 +-
 target-ppc/cpu.h            |   2 +-
 target-ppc/translate_init.c |   9 +++-
 target-s390x/cpu.c          |   2 +-
 target-s390x/cpu.h          |   2 +-
 target-sh4/cpu.c            |   2 +-
 target-sh4/cpu.h            |   2 +-
 target-sparc/cpu.c          |   2 +-
 target-sparc/cpu.h          |   2 +-
 target-tricore/cpu.c        |   2 +-
 target-tricore/cpu.h        |   2 +-
 target-unicore32/cpu.c      |   2 +-
 target-unicore32/cpu.h      |   3 +-
 target-xtensa/cpu.c         |   2 +-
 target-xtensa/cpu.h         |   2 +-
 translate-all.c             |   6 +--
 54 files changed, 315 insertions(+), 205 deletions(-)

Comments

Peter Maydell July 8, 2015, 11:33 a.m. UTC | #1
On 7 July 2015 at 18:16, Andreas Färber <afaerber@suse.de> wrote:
> Hello Peter,
>
> This is my QOM CPU patch queue. Please pull.
>
> Note: For time reasons I did not give this queue as much testing as usual,
> in particular BSD and non-x86 KVM hosts were not covered.
>
> Regards,
> Andreas
>
> Cc: Peter Maydell <peter.maydell@linaro.org>
>
> Cc: Eduardo Habkost <ehabkost@redhat.com>
> Cc: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>
> The following changes since commit f2562fbb7ac54d597cfe05f613d30296d1850d1b:
>
>   Merge remote-tracking branch 'remotes/stefanha/tags/net-pull-request' into staging (2015-07-07 15:48:49 +0100)
>
> are available in the git repository at:
>
>   git://github.com/afaerber/qemu-cpu.git tags/qom-cpu-for-peter
>
> for you to fetch changes up to cf6f1442257d53cf617545dd150efe26771ec31c:
>
>   disas: cris: QOMify target specific disas setup (2015-07-07 18:35:39 +0200)
>
> ----------------------------------------------------------------
> QOM CPUState and X86CPU
>
> * Further QOM'ification of CPU initialization
> * Propagation of CPUState arguments and elimination of ENV_GET_CPU() usage
> * cpu_set_pc() abstraction
> * CPUClass::disas_set_info() hook

I'm afraid this seems to break ppc linux-user somehow:

e104462:trusty:linux-user-test-0.3$ gdb --args
/home/petmay01/linaro/qemu-for-merges/build/all-linux-static/ppc-linux-user/qemu-ppc
-L ./gnemul/qemu-ppc ppc/ls -l dummyfile
GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
Copyright (C) 2014 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from
/home/petmay01/linaro/qemu-for-merges/build/all-linux-static/ppc-linux-user/qemu-ppc...done.
(gdb) handle SIGUSR1 pass noprint nostop
Signal        Stop      Print   Pass to program Description
SIGUSR1       No        No      Yes             User defined signal 1
(gdb) r
Starting program:
/home/petmay01/linaro/qemu-for-merges/build/all-linux-static/ppc-linux-user/qemu-ppc
-L ./gnemul/qemu-ppc ppc/ls -l dummyfile
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff7ffc700 (LWP 22653)]

Program received signal SIGSEGV, Segmentation fault.
0x000000006060dd85 in static_code_gen_buffer ()
(gdb) bt
#0  0x000000006060dd85 in static_code_gen_buffer ()
#1  0x00000000600065e3 in cpu_tb_exec (cpu=0x6268ceb0,
    tb_ptr=0x6060dd50 <static_code_gen_buffer+2992>
"A\213n\374\205\355\017\205", <incomplete sequence \307>)
    at /home/petmay01/linaro/qemu-for-merges/cpu-exec.c:200
#2  0x0000000060006fbc in cpu_ppc_exec (cpu=0x6268ceb0) at
/home/petmay01/linaro/qemu-for-merges/cpu-exec.c:518
#3  0x0000000060049dc2 in cpu_loop (env=0x62695100) at
/home/petmay01/linaro/qemu-for-merges/linux-user/main.c:1568
#4  0x000000006004cac5 in main (argc=6, argv=0x7fffffffe3f8,
envp=0x7fffffffe430)
    at /home/petmay01/linaro/qemu-for-merges/linux-user/main.c:4408

(this is with the test stuff from the linux-user-test tarball
on the wiki).

-- PMM
Andreas Färber July 8, 2015, 5:39 p.m. UTC | #2
Am 08.07.2015 um 13:33 schrieb Peter Maydell:
> On 7 July 2015 at 18:16, Andreas Färber <afaerber@suse.de> wrote:
>> Hello Peter,
>>
>> This is my QOM CPU patch queue. Please pull.
>>
>> Note: For time reasons I did not give this queue as much testing as usual,
>> in particular BSD and non-x86 KVM hosts were not covered.
>>
>> Regards,
>> Andreas
>>
>> Cc: Peter Maydell <peter.maydell@linaro.org>
>>
>> Cc: Eduardo Habkost <ehabkost@redhat.com>
>> Cc: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>>
>> The following changes since commit f2562fbb7ac54d597cfe05f613d30296d1850d1b:
>>
>>   Merge remote-tracking branch 'remotes/stefanha/tags/net-pull-request' into staging (2015-07-07 15:48:49 +0100)
>>
>> are available in the git repository at:
>>
>>   git://github.com/afaerber/qemu-cpu.git tags/qom-cpu-for-peter
>>
>> for you to fetch changes up to cf6f1442257d53cf617545dd150efe26771ec31c:
>>
>>   disas: cris: QOMify target specific disas setup (2015-07-07 18:35:39 +0200)
>>
>> ----------------------------------------------------------------
>> QOM CPUState and X86CPU
>>
>> * Further QOM'ification of CPU initialization
>> * Propagation of CPUState arguments and elimination of ENV_GET_CPU() usage
>> * cpu_set_pc() abstraction
>> * CPUClass::disas_set_info() hook
> 
> I'm afraid this seems to break ppc linux-user somehow:
> 
> e104462:trusty:linux-user-test-0.3$ gdb --args
> /home/petmay01/linaro/qemu-for-merges/build/all-linux-static/ppc-linux-user/qemu-ppc
> -L ./gnemul/qemu-ppc ppc/ls -l dummyfile
> GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
> Copyright (C) 2014 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-linux-gnu".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
> <http://www.gnu.org/software/gdb/documentation/>.
> For help, type "help".
> Type "apropos word" to search for commands related to "word"...
> Reading symbols from
> /home/petmay01/linaro/qemu-for-merges/build/all-linux-static/ppc-linux-user/qemu-ppc...done.
> (gdb) handle SIGUSR1 pass noprint nostop
> Signal        Stop      Print   Pass to program Description
> SIGUSR1       No        No      Yes             User defined signal 1
> (gdb) r
> Starting program:
> /home/petmay01/linaro/qemu-for-merges/build/all-linux-static/ppc-linux-user/qemu-ppc
> -L ./gnemul/qemu-ppc ppc/ls -l dummyfile
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> [New Thread 0x7ffff7ffc700 (LWP 22653)]
> 
> Program received signal SIGSEGV, Segmentation fault.
> 0x000000006060dd85 in static_code_gen_buffer ()
> (gdb) bt
> #0  0x000000006060dd85 in static_code_gen_buffer ()
> #1  0x00000000600065e3 in cpu_tb_exec (cpu=0x6268ceb0,
>     tb_ptr=0x6060dd50 <static_code_gen_buffer+2992>
> "A\213n\374\205\355\017\205", <incomplete sequence \307>)
>     at /home/petmay01/linaro/qemu-for-merges/cpu-exec.c:200
> #2  0x0000000060006fbc in cpu_ppc_exec (cpu=0x6268ceb0) at
> /home/petmay01/linaro/qemu-for-merges/cpu-exec.c:518
> #3  0x0000000060049dc2 in cpu_loop (env=0x62695100) at
> /home/petmay01/linaro/qemu-for-merges/linux-user/main.c:1568
> #4  0x000000006004cac5 in main (argc=6, argv=0x7fffffffe3f8,
> envp=0x7fffffffe430)
>     at /home/petmay01/linaro/qemu-for-merges/linux-user/main.c:4408

a7bebe297accafc0fa75a5f76767e6b856e6d5eb is the first bad commit
commit a7bebe297accafc0fa75a5f76767e6b856e6d5eb
Author: Bharata B Rao <bharata@linux.vnet.ibm.com>
Date:   Tue Jun 23 19:31:14 2015 -0700

    target-ppc: Move cpu_exec_init() call to realize function

    Move cpu_exec_init() call from instance_init to realize. This allows
    any failures from cpu_exec_init() to be handled appropriately.
    Also add corresponding cpu_exec_exit() call from unrealize.

    cpu_dt_id assignment from instance_init is no longer needed since
    correct assignment for cpu_dt_id is already present in realizefn.

    Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com>
    Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
    Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
    Acked-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
    Signed-off-by: Andreas Färber <afaerber@suse.de>

:040000 040000 9f5a59e2b3237877cb8940f744beeb5a304a5620
171e8f34622f032c8d36c98eb3ee1f513ec6d5ef M	target-ppc

Patch is fairly small, but I don't spot anything immediately.

Regards,
Andreas
Peter Maydell July 8, 2015, 6:50 p.m. UTC | #3
On 8 July 2015 at 18:39, Andreas Färber <afaerber@suse.de> wrote:
> Am 08.07.2015 um 13:33 schrieb Peter Maydell:
>> On 7 July 2015 at 18:16, Andreas Färber <afaerber@suse.de> wrote:
>>> Hello Peter,
>>>
>>> This is my QOM CPU patch queue. Please pull.
>>>
>>> Note: For time reasons I did not give this queue as much testing as usual,
>>> in particular BSD and non-x86 KVM hosts were not covered.
>>>
>>> Regards,
>>> Andreas
>>>
>>> Cc: Peter Maydell <peter.maydell@linaro.org>
>>>
>>> Cc: Eduardo Habkost <ehabkost@redhat.com>
>>> Cc: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>>>
>>> The following changes since commit f2562fbb7ac54d597cfe05f613d30296d1850d1b:
>>>
>>>   Merge remote-tracking branch 'remotes/stefanha/tags/net-pull-request' into staging (2015-07-07 15:48:49 +0100)
>>>
>>> are available in the git repository at:
>>>
>>>   git://github.com/afaerber/qemu-cpu.git tags/qom-cpu-for-peter
>>>
>>> for you to fetch changes up to cf6f1442257d53cf617545dd150efe26771ec31c:
>>>
>>>   disas: cris: QOMify target specific disas setup (2015-07-07 18:35:39 +0200)
>>>
>>> ----------------------------------------------------------------
>>> QOM CPUState and X86CPU
>>>
>>> * Further QOM'ification of CPU initialization
>>> * Propagation of CPUState arguments and elimination of ENV_GET_CPU() usage
>>> * cpu_set_pc() abstraction
>>> * CPUClass::disas_set_info() hook
>>
>> I'm afraid this seems to break ppc linux-user somehow:
>>
>> e104462:trusty:linux-user-test-0.3$ gdb --args
>> /home/petmay01/linaro/qemu-for-merges/build/all-linux-static/ppc-linux-user/qemu-ppc
>> -L ./gnemul/qemu-ppc ppc/ls -l dummyfile
>> GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
>> Copyright (C) 2014 Free Software Foundation, Inc.
>> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
>> This is free software: you are free to change and redistribute it.
>> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
>> and "show warranty" for details.
>> This GDB was configured as "x86_64-linux-gnu".
>> Type "show configuration" for configuration details.
>> For bug reporting instructions, please see:
>> <http://www.gnu.org/software/gdb/bugs/>.
>> Find the GDB manual and other documentation resources online at:
>> <http://www.gnu.org/software/gdb/documentation/>.
>> For help, type "help".
>> Type "apropos word" to search for commands related to "word"...
>> Reading symbols from
>> /home/petmay01/linaro/qemu-for-merges/build/all-linux-static/ppc-linux-user/qemu-ppc...done.
>> (gdb) handle SIGUSR1 pass noprint nostop
>> Signal        Stop      Print   Pass to program Description
>> SIGUSR1       No        No      Yes             User defined signal 1
>> (gdb) r
>> Starting program:
>> /home/petmay01/linaro/qemu-for-merges/build/all-linux-static/ppc-linux-user/qemu-ppc
>> -L ./gnemul/qemu-ppc ppc/ls -l dummyfile
>> [Thread debugging using libthread_db enabled]
>> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
>> [New Thread 0x7ffff7ffc700 (LWP 22653)]
>>
>> Program received signal SIGSEGV, Segmentation fault.
>> 0x000000006060dd85 in static_code_gen_buffer ()
>> (gdb) bt
>> #0  0x000000006060dd85 in static_code_gen_buffer ()
>> #1  0x00000000600065e3 in cpu_tb_exec (cpu=0x6268ceb0,
>>     tb_ptr=0x6060dd50 <static_code_gen_buffer+2992>
>> "A\213n\374\205\355\017\205", <incomplete sequence \307>)
>>     at /home/petmay01/linaro/qemu-for-merges/cpu-exec.c:200
>> #2  0x0000000060006fbc in cpu_ppc_exec (cpu=0x6268ceb0) at
>> /home/petmay01/linaro/qemu-for-merges/cpu-exec.c:518
>> #3  0x0000000060049dc2 in cpu_loop (env=0x62695100) at
>> /home/petmay01/linaro/qemu-for-merges/linux-user/main.c:1568
>> #4  0x000000006004cac5 in main (argc=6, argv=0x7fffffffe3f8,
>> envp=0x7fffffffe430)
>>     at /home/petmay01/linaro/qemu-for-merges/linux-user/main.c:4408
>
> a7bebe297accafc0fa75a5f76767e6b856e6d5eb is the first bad commit
> commit a7bebe297accafc0fa75a5f76767e6b856e6d5eb
> Author: Bharata B Rao <bharata@linux.vnet.ibm.com>
> Date:   Tue Jun 23 19:31:14 2015 -0700
>
>     target-ppc: Move cpu_exec_init() call to realize function
>
>     Move cpu_exec_init() call from instance_init to realize. This allows
>     any failures from cpu_exec_init() to be handled appropriately.
>     Also add corresponding cpu_exec_exit() call from unrealize.
>
>     cpu_dt_id assignment from instance_init is no longer needed since
>     correct assignment for cpu_dt_id is already present in realizefn.
>
>     Signed-off-by: Bharata B Rao <bharata@linux.vnet.ibm.com>
>     Reviewed-by: David Gibson <david@gibson.dropbear.id.au>
>     Reviewed-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>     Acked-by: Paolo Bonzini <pbonzini@redhat.com>
>     Signed-off-by: Peter Crosthwaite <crosthwaite.peter@gmail.com>
>     Signed-off-by: Andreas Färber <afaerber@suse.de>
>
> :040000 040000 9f5a59e2b3237877cb8940f744beeb5a304a5620
> 171e8f34622f032c8d36c98eb3ee1f513ec6d5ef M      target-ppc
>
> Patch is fairly small, but I don't spot anything immediately.

The call to cpu_exec_init() appears to have been
moved to inside an #if !defined(CONFIG_USER_ONLY) block...

-- PMM
Peter Crosthwaite July 8, 2015, 7:01 p.m. UTC | #4
On Wed, Jul 8, 2015 at 4:33 AM, Peter Maydell <peter.maydell@linaro.org> wrote:
> On 7 July 2015 at 18:16, Andreas Färber <afaerber@suse.de> wrote:
>> Hello Peter,
>>
>> This is my QOM CPU patch queue. Please pull.
>>
>> Note: For time reasons I did not give this queue as much testing as usual,
>> in particular BSD and non-x86 KVM hosts were not covered.
>>
>> Regards,
>> Andreas
>>
>> Cc: Peter Maydell <peter.maydell@linaro.org>
>>
>> Cc: Eduardo Habkost <ehabkost@redhat.com>
>> Cc: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>>
>> The following changes since commit f2562fbb7ac54d597cfe05f613d30296d1850d1b:
>>
>>   Merge remote-tracking branch 'remotes/stefanha/tags/net-pull-request' into staging (2015-07-07 15:48:49 +0100)
>>
>> are available in the git repository at:
>>
>>   git://github.com/afaerber/qemu-cpu.git tags/qom-cpu-for-peter
>>
>> for you to fetch changes up to cf6f1442257d53cf617545dd150efe26771ec31c:
>>
>>   disas: cris: QOMify target specific disas setup (2015-07-07 18:35:39 +0200)
>>
>> ----------------------------------------------------------------
>> QOM CPUState and X86CPU
>>
>> * Further QOM'ification of CPU initialization
>> * Propagation of CPUState arguments and elimination of ENV_GET_CPU() usage
>> * cpu_set_pc() abstraction
>> * CPUClass::disas_set_info() hook
>
> I'm afraid this seems to break ppc linux-user somehow:
>

So you have caught about 10 broken PULLs in the last 48h :) I'm
guessing you have something heavily scripted, is the test system
available? Id like to run as much as I can over the multi-arch work in
total as that has widespread change.

Regards,
Peter

> e104462:trusty:linux-user-test-0.3$ gdb --args
> /home/petmay01/linaro/qemu-for-merges/build/all-linux-static/ppc-linux-user/qemu-ppc
> -L ./gnemul/qemu-ppc ppc/ls -l dummyfile
> GNU gdb (Ubuntu 7.7.1-0ubuntu5~14.04.2) 7.7.1
> Copyright (C) 2014 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
> and "show warranty" for details.
> This GDB was configured as "x86_64-linux-gnu".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
> <http://www.gnu.org/software/gdb/documentation/>.
> For help, type "help".
> Type "apropos word" to search for commands related to "word"...
> Reading symbols from
> /home/petmay01/linaro/qemu-for-merges/build/all-linux-static/ppc-linux-user/qemu-ppc...done.
> (gdb) handle SIGUSR1 pass noprint nostop
> Signal        Stop      Print   Pass to program Description
> SIGUSR1       No        No      Yes             User defined signal 1
> (gdb) r
> Starting program:
> /home/petmay01/linaro/qemu-for-merges/build/all-linux-static/ppc-linux-user/qemu-ppc
> -L ./gnemul/qemu-ppc ppc/ls -l dummyfile
> [Thread debugging using libthread_db enabled]
> Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
> [New Thread 0x7ffff7ffc700 (LWP 22653)]
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x000000006060dd85 in static_code_gen_buffer ()
> (gdb) bt
> #0  0x000000006060dd85 in static_code_gen_buffer ()
> #1  0x00000000600065e3 in cpu_tb_exec (cpu=0x6268ceb0,
>     tb_ptr=0x6060dd50 <static_code_gen_buffer+2992>
> "A\213n\374\205\355\017\205", <incomplete sequence \307>)
>     at /home/petmay01/linaro/qemu-for-merges/cpu-exec.c:200
> #2  0x0000000060006fbc in cpu_ppc_exec (cpu=0x6268ceb0) at
> /home/petmay01/linaro/qemu-for-merges/cpu-exec.c:518
> #3  0x0000000060049dc2 in cpu_loop (env=0x62695100) at
> /home/petmay01/linaro/qemu-for-merges/linux-user/main.c:1568
> #4  0x000000006004cac5 in main (argc=6, argv=0x7fffffffe3f8,
> envp=0x7fffffffe430)
>     at /home/petmay01/linaro/qemu-for-merges/linux-user/main.c:4408
>
> (this is with the test stuff from the linux-user-test tarball
> on the wiki).
>
> -- PMM
>
Peter Maydell July 8, 2015, 7:23 p.m. UTC | #5
On 8 July 2015 at 20:01, Peter Crosthwaite <peter.crosthwaite@xilinx.com> wrote:
> So you have caught about 10 broken PULLs in the last 48h :) I'm
> guessing you have something heavily scripted, is the test system
> available? Id like to run as much as I can over the multi-arch work in
> total as that has widespread change.

My scripts are at
https://git.linaro.org/people/peter.maydell/misc-scripts.git/tree
(in particular pull-buildtest does the testing and
remake-merge-builds tells you the configure runes for them).
But I'm really not doing anything particularly exciting here:
it's just running 'make && make check' for a bunch of
different configs on an x86 box (plus doing it on an
ARM 32-bit Linux box and on OSX). (And the linux-user
tests from the wiki tarball. I ought to do something
with the local tweaks I did to that makefile I guess.)

Most of the things I find with the pull buildtests
are just "this doesn't build in this compile
environment".

The main problem with the last 48h has been everybody
assuming they can put a pull request in at the last
moment. This is simply not physically possible given
that it takes over an hour to process each one, and
it's pretty risky given the chances of there turning
out to be a "doesn't build" failure...

thanks
-- PMM