[Qemu-devel] [PATCH v4 00/16] gdbstub: support for the multiprocess extension

Luc Michel posted 16 patches 6 years, 12 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20181106110548.4209-1-luc.michel@greensocs.com
Test docker-clang@ubuntu passed
Test checkpatch failed
Test asan passed
Test docker-mingw@fedora passed
Test docker-quick@centos7 passed
There is a newer version of this series
include/hw/arm/xlnx-zynqmp.h |   3 +
include/hw/cpu/cluster.h     |  38 +++
gdbstub.c                    | 632 ++++++++++++++++++++++++++++++-----
hw/arm/xlnx-zynqmp.c         |  21 +-
hw/cpu/cluster.c             |  59 ++++
hw/cpu/Makefile.objs         |   2 +-
6 files changed, 674 insertions(+), 81 deletions(-)
create mode 100644 include/hw/cpu/cluster.h
create mode 100644 hw/cpu/cluster.c
[Qemu-devel] [PATCH v4 00/16] gdbstub: support for the multiprocess extension
Posted by Luc Michel 6 years, 12 months ago
changes since v3:
  - patch 1    cpu_cluster.h: remove QEMU_ from the multiple includes
               guard #ifdef/#define [Alistair]

  - patch 1    cpu_cluster.c: include osdep.h first [Alistair]

  - patch 1    use uint64_t for cluster ID for prosperity :) [Philippe]

  - patch 1    auto-assign a cluster ID to newly created clusters [Philippe]

  - patch 2    fix mid-code variable declaration [Alistair]

  - patch 3    add a comment in gdb_get_cpu_pid() when retrieving CPU
               parent canonical path [Alistair]

  - patch 14   fix a typo in the commit message [Alistair]

changes since v2:
  - patch 1    introducing the cpu-cluster type. I didn't opt for an
               Interface, but I can add one if you think it's necessary.
               For now this class inherits from Device and has a
               cluster-id property, used by the GDB stub to compute a
               PID.

  - patch 2    removed GDB group related code as it has been replaced
               with CPU clusters

  - patch 2/8  moved GDBProcess target_xml field introduction into patch
               8 [Philippe]

  - patch 3    gdb_get_cpu_pid() now search for CPU being a child of a
               cpu-cluster object. Use the cluster-id to compute the PID.

  - patch 4    gdb_get_process() does not rely on s->processes array
               indices anymore as PIDs can now be sparse. Instead, iterate
               over the array to find the process.

  - patch 3/4  removed Reviewed-by tags because of substantial changes.

  - patch 4/7  read_thread_id() hardening [Philippe]

  - patch 12   safer vAttach packet parsing [Phillipe]

  - patch 16   put APUs and RPUs in different clusters instead of GDB
               groups

changes since v1:
  - rename qemu_get_thread_id() to gdb_fmt_thread_id() [Philippe]
  - check qemu_strtoul() return value for 'D' packets [Philippe]


This series adds support for the multiprocess extension of the GDB
remote protocol in the QEMU GDB stub.

This extension is useful to split QEMU emulated CPUs in different
processes from the point of view of the GDB client. It adds the
possibility to debug different kind of processors (e.g. an AArch64 and
an ARMv7 CPU) at the same time (it is not possible otherwise since GDB
expects an SMP view at the thread granularity.

CPUs are grouped using specially named QOM containers. CPUs that are
children of such a container are grouped under the same GDB process.

The last patch groups the CPUs of different model in the zynqmp machines
into separate processes.

To test this patchset, you can use the following commands:

(Note that this requires a recent enough GDB, I think GDB 7.2 is OK.
Also, it must be compiled to support both ARM and AArch64 architectures)

Run QEMU: (-smp 6 in xlnx-zcu102 enables both cortex-a53 and cortex-r5
CPUs)

qemu-system-aarch64 -M xlnx-zcu102 -gdb tcp::1234 -S -smp 6

Run the following commands in GDB:

target extended :1234
add-inferior
inferior 2
attach 2
info threads

I want to thanks the Xilinx's QEMU team who sponsored this work for
their collaboration and their prototype implementation.

Luc Michel (16):
  hw/cpu: introduce CPU clusters
  gdbstub: introduce GDB processes
  gdbstub: add multiprocess support to '?' packets
  gdbstub: add multiprocess support to 'H' and 'T' packets
  gdbstub: add multiprocess support to vCont packets
  gdbstub: add multiprocess support to 'sC' packets
  gdbstub: add multiprocess support to (f|s)ThreadInfo and
    ThreadExtraInfo
  gdbstub: add multiprocess support to Xfer:features:read:
  gdbstub: add multiprocess support to gdb_vm_state_change()
  gdbstub: add multiprocess support to 'D' packets
  gdbstub: add support for extended mode packet
  gdbstub: add support for vAttach packets
  gdbstub: processes initialization on new peer connection
  gdbstub: gdb_set_stop_cpu: ignore request when process is not attached
  gdbstub: add multiprocess extension support
  arm/xlnx-zynqmp: put APUs and RPUs in separate CPU clusters

 include/hw/arm/xlnx-zynqmp.h |   3 +
 include/hw/cpu/cluster.h     |  38 +++
 gdbstub.c                    | 632 ++++++++++++++++++++++++++++++-----
 hw/arm/xlnx-zynqmp.c         |  21 +-
 hw/cpu/cluster.c             |  59 ++++
 hw/cpu/Makefile.objs         |   2 +-
 6 files changed, 674 insertions(+), 81 deletions(-)
 create mode 100644 include/hw/cpu/cluster.h
 create mode 100644 hw/cpu/cluster.c

-- 
2.19.1


Re: [Qemu-devel] [PATCH v4 00/16] gdbstub: support for the multiprocess extension
Posted by no-reply@patchew.org 6 years, 12 months ago
Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20181106110548.4209-1-luc.michel@greensocs.com
Subject: [Qemu-devel] [PATCH v4 00/16] gdbstub: support for the multiprocess extension

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
    echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
    if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
        failed=1
        echo
    fi
    n=$((n+1))
done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
5b37d36270 arm/xlnx-zynqmp: put APUs and RPUs in separate CPU clusters
9cd6ba6c0c gdbstub: add multiprocess extension support
93d14b3254 gdbstub: gdb_set_stop_cpu: ignore request when process is not attached
22126cda18 gdbstub: processes initialization on new peer connection
931e6cce36 gdbstub: add support for vAttach packets
6cafd391d1 gdbstub: add support for extended mode packet
de385a573d gdbstub: add multiprocess support to 'D' packets
12491e88da gdbstub: add multiprocess support to gdb_vm_state_change()
1e8b86e03a gdbstub: add multiprocess support to Xfer:features:read:
e37f5c9f3c gdbstub: add multiprocess support to (f|s)ThreadInfo and ThreadExtraInfo
344eb3e2f1 gdbstub: add multiprocess support to 'sC' packets
ff95bcac11 gdbstub: add multiprocess support to vCont packets
5320b221a3 gdbstub: add multiprocess support to 'H' and 'T' packets
19980f2997 gdbstub: add multiprocess support to '?' packets
dc64a6c997 gdbstub: introduce GDB processes
2e2a60cc51 hw/cpu: introduce CPU clusters

=== OUTPUT BEGIN ===
Checking PATCH 1/16: hw/cpu: introduce CPU clusters...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#26: 
new file mode 100644

ERROR: do not initialise statics to 0 or NULL
#58: FILE: hw/cpu/cluster.c:28:
+    static uint64_t cluster_id_auto_increment = 0;

total: 1 errors, 1 warnings, 102 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 2/16: gdbstub: introduce GDB processes...
Checking PATCH 3/16: gdbstub: add multiprocess support to '?' packets...
Checking PATCH 4/16: gdbstub: add multiprocess support to 'H' and 'T' packets...
Checking PATCH 5/16: gdbstub: add multiprocess support to vCont packets...
Checking PATCH 6/16: gdbstub: add multiprocess support to 'sC' packets...
Checking PATCH 7/16: gdbstub: add multiprocess support to (f|s)ThreadInfo and ThreadExtraInfo...
Checking PATCH 8/16: gdbstub: add multiprocess support to Xfer:features:read:...
Checking PATCH 9/16: gdbstub: add multiprocess support to gdb_vm_state_change()...
Checking PATCH 10/16: gdbstub: add multiprocess support to 'D' packets...
Checking PATCH 11/16: gdbstub: add support for extended mode packet...
Checking PATCH 12/16: gdbstub: add support for vAttach packets...
Checking PATCH 13/16: gdbstub: processes initialization on new peer connection...
Checking PATCH 14/16: gdbstub: gdb_set_stop_cpu: ignore request when process is not attached...
Checking PATCH 15/16: gdbstub: add multiprocess extension support...
Checking PATCH 16/16: arm/xlnx-zynqmp: put APUs and RPUs in separate CPU clusters...
=== OUTPUT END ===

Test command exited with code: 1


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Re: [Qemu-devel] [PATCH v4 00/16] gdbstub: support for the multiprocess extension
Posted by no-reply@patchew.org 6 years, 12 months ago
Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20181106110548.4209-1-luc.michel@greensocs.com
Subject: [Qemu-devel] [PATCH v4 00/16] gdbstub: support for the multiprocess extension

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
    echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
    if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
        failed=1
        echo
    fi
    n=$((n+1))
done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
fb318fec24 arm/xlnx-zynqmp: put APUs and RPUs in separate CPU clusters
c5a62c16df gdbstub: add multiprocess extension support
289b14424d gdbstub: gdb_set_stop_cpu: ignore request when process is not attached
9b832d7f2b gdbstub: processes initialization on new peer connection
44677eb35d gdbstub: add support for vAttach packets
d6011b9b46 gdbstub: add support for extended mode packet
fcd0123525 gdbstub: add multiprocess support to 'D' packets
0eb2ccca13 gdbstub: add multiprocess support to gdb_vm_state_change()
2168eedd20 gdbstub: add multiprocess support to Xfer:features:read:
22a0ea97f2 gdbstub: add multiprocess support to (f|s)ThreadInfo and ThreadExtraInfo
74c0bfb13d gdbstub: add multiprocess support to 'sC' packets
c6c4a08714 gdbstub: add multiprocess support to vCont packets
5198da536f gdbstub: add multiprocess support to 'H' and 'T' packets
48d430aeb1 gdbstub: add multiprocess support to '?' packets
df394b8412 gdbstub: introduce GDB processes
daeb666871 hw/cpu: introduce CPU clusters

=== OUTPUT BEGIN ===
Checking PATCH 1/16: hw/cpu: introduce CPU clusters...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#31: 
new file mode 100644

ERROR: do not initialise statics to 0 or NULL
#63: FILE: hw/cpu/cluster.c:28:
+    static uint64_t cluster_id_auto_increment = 0;

total: 1 errors, 1 warnings, 102 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 2/16: gdbstub: introduce GDB processes...
Checking PATCH 3/16: gdbstub: add multiprocess support to '?' packets...
Checking PATCH 4/16: gdbstub: add multiprocess support to 'H' and 'T' packets...
Checking PATCH 5/16: gdbstub: add multiprocess support to vCont packets...
Checking PATCH 6/16: gdbstub: add multiprocess support to 'sC' packets...
Checking PATCH 7/16: gdbstub: add multiprocess support to (f|s)ThreadInfo and ThreadExtraInfo...
Checking PATCH 8/16: gdbstub: add multiprocess support to Xfer:features:read:...
Checking PATCH 9/16: gdbstub: add multiprocess support to gdb_vm_state_change()...
Checking PATCH 10/16: gdbstub: add multiprocess support to 'D' packets...
Checking PATCH 11/16: gdbstub: add support for extended mode packet...
Checking PATCH 12/16: gdbstub: add support for vAttach packets...
Checking PATCH 13/16: gdbstub: processes initialization on new peer connection...
Checking PATCH 14/16: gdbstub: gdb_set_stop_cpu: ignore request when process is not attached...
Checking PATCH 15/16: gdbstub: add multiprocess extension support...
Checking PATCH 16/16: arm/xlnx-zynqmp: put APUs and RPUs in separate CPU clusters...
=== OUTPUT END ===

Test command exited with code: 1


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Re: [Qemu-devel] [PATCH v4 00/16] gdbstub: support for the multiprocess extension
Posted by Philippe Mathieu-Daudé 6 years, 12 months ago
On 6/11/18 12:05, Luc Michel wrote:
> changes since v3:
>    - patch 1    cpu_cluster.h: remove QEMU_ from the multiple includes
>                 guard #ifdef/#define [Alistair]
> 
>    - patch 1    cpu_cluster.c: include osdep.h first [Alistair]
> 
>    - patch 1    use uint64_t for cluster ID for prosperity :) [Philippe]

Actually my comment about 32-bit had the opposite meaning, I suppose 
having 256 kind of cpu cores in the same SoC is probably enough for a 
long time IMHO.

> 
>    - patch 1    auto-assign a cluster ID to newly created clusters [Philippe]
> 
>    - patch 2    fix mid-code variable declaration [Alistair]
> 
>    - patch 3    add a comment in gdb_get_cpu_pid() when retrieving CPU
>                 parent canonical path [Alistair]
> 
>    - patch 14   fix a typo in the commit message [Alistair]
> 
> changes since v2:
>    - patch 1    introducing the cpu-cluster type. I didn't opt for an
>                 Interface, but I can add one if you think it's necessary.
>                 For now this class inherits from Device and has a
>                 cluster-id property, used by the GDB stub to compute a
>                 PID.
> 
>    - patch 2    removed GDB group related code as it has been replaced
>                 with CPU clusters
> 
>    - patch 2/8  moved GDBProcess target_xml field introduction into patch
>                 8 [Philippe]
> 
>    - patch 3    gdb_get_cpu_pid() now search for CPU being a child of a
>                 cpu-cluster object. Use the cluster-id to compute the PID.
> 
>    - patch 4    gdb_get_process() does not rely on s->processes array
>                 indices anymore as PIDs can now be sparse. Instead, iterate
>                 over the array to find the process.
> 
>    - patch 3/4  removed Reviewed-by tags because of substantial changes.
> 
>    - patch 4/7  read_thread_id() hardening [Philippe]
> 
>    - patch 12   safer vAttach packet parsing [Phillipe]
> 
>    - patch 16   put APUs and RPUs in different clusters instead of GDB
>                 groups
> 
> changes since v1:
>    - rename qemu_get_thread_id() to gdb_fmt_thread_id() [Philippe]
>    - check qemu_strtoul() return value for 'D' packets [Philippe]
> 
> 
> This series adds support for the multiprocess extension of the GDB
> remote protocol in the QEMU GDB stub.
> 
> This extension is useful to split QEMU emulated CPUs in different
> processes from the point of view of the GDB client. It adds the
> possibility to debug different kind of processors (e.g. an AArch64 and
> an ARMv7 CPU) at the same time (it is not possible otherwise since GDB
> expects an SMP view at the thread granularity.
> 
> CPUs are grouped using specially named QOM containers. CPUs that are
> children of such a container are grouped under the same GDB process.
> 
> The last patch groups the CPUs of different model in the zynqmp machines
> into separate processes.
> 
> To test this patchset, you can use the following commands:
> 
> (Note that this requires a recent enough GDB, I think GDB 7.2 is OK.
> Also, it must be compiled to support both ARM and AArch64 architectures)
> 
> Run QEMU: (-smp 6 in xlnx-zcu102 enables both cortex-a53 and cortex-r5
> CPUs)
> 
> qemu-system-aarch64 -M xlnx-zcu102 -gdb tcp::1234 -S -smp 6
> 
> Run the following commands in GDB:
> 
> target extended :1234
> add-inferior
> inferior 2
> attach 2
> info threads
> 
> I want to thanks the Xilinx's QEMU team who sponsored this work for
> their collaboration and their prototype implementation.
> 
> Luc Michel (16):
>    hw/cpu: introduce CPU clusters
>    gdbstub: introduce GDB processes
>    gdbstub: add multiprocess support to '?' packets
>    gdbstub: add multiprocess support to 'H' and 'T' packets
>    gdbstub: add multiprocess support to vCont packets
>    gdbstub: add multiprocess support to 'sC' packets
>    gdbstub: add multiprocess support to (f|s)ThreadInfo and
>      ThreadExtraInfo
>    gdbstub: add multiprocess support to Xfer:features:read:
>    gdbstub: add multiprocess support to gdb_vm_state_change()
>    gdbstub: add multiprocess support to 'D' packets
>    gdbstub: add support for extended mode packet
>    gdbstub: add support for vAttach packets
>    gdbstub: processes initialization on new peer connection
>    gdbstub: gdb_set_stop_cpu: ignore request when process is not attached
>    gdbstub: add multiprocess extension support
>    arm/xlnx-zynqmp: put APUs and RPUs in separate CPU clusters
> 
>   include/hw/arm/xlnx-zynqmp.h |   3 +
>   include/hw/cpu/cluster.h     |  38 +++
>   gdbstub.c                    | 632 ++++++++++++++++++++++++++++++-----
>   hw/arm/xlnx-zynqmp.c         |  21 +-
>   hw/cpu/cluster.c             |  59 ++++
>   hw/cpu/Makefile.objs         |   2 +-
>   6 files changed, 674 insertions(+), 81 deletions(-)
>   create mode 100644 include/hw/cpu/cluster.h
>   create mode 100644 hw/cpu/cluster.c
> 

Re: [Qemu-devel] [PATCH v4 00/16] gdbstub: support for the multiprocess extension
Posted by Luc Michel 6 years, 12 months ago
On 11/8/18 5:09 PM, Philippe Mathieu-Daudé wrote:
> On 6/11/18 12:05, Luc Michel wrote:
>> changes since v3:
>>    - patch 1    cpu_cluster.h: remove QEMU_ from the multiple includes
>>                 guard #ifdef/#define [Alistair]
>>
>>    - patch 1    cpu_cluster.c: include osdep.h first [Alistair]
>>
>>    - patch 1    use uint64_t for cluster ID for prosperity :) [Philippe]
> 
> Actually my comment about 32-bit had the opposite meaning, I suppose
> having 256 kind of cpu cores in the same SoC is probably enough for a
> long time IMHO.
Oops sorry about that :) I thought you were referring to an old quote
from a guy at Redmond about 640KiB of RAM ;)

A case I was thinking about that would require more than 8- or 16-bit ID
is if for whatever reason we need to model a SoC with sparse
(non-continuous) cluster IDs.

Anyway, I can put back the uint32_t for the next re-roll, I think it's a
good compromise.

Thanks.

Luc

> 
>>
>>    - patch 1    auto-assign a cluster ID to newly created clusters
>> [Philippe]
>>
>>    - patch 2    fix mid-code variable declaration [Alistair]
>>
>>    - patch 3    add a comment in gdb_get_cpu_pid() when retrieving CPU
>>                 parent canonical path [Alistair]
>>
>>    - patch 14   fix a typo in the commit message [Alistair]
>>
>> changes since v2:
>>    - patch 1    introducing the cpu-cluster type. I didn't opt for an
>>                 Interface, but I can add one if you think it's necessary.
>>                 For now this class inherits from Device and has a
>>                 cluster-id property, used by the GDB stub to compute a
>>                 PID.
>>
>>    - patch 2    removed GDB group related code as it has been replaced
>>                 with CPU clusters
>>
>>    - patch 2/8  moved GDBProcess target_xml field introduction into patch
>>                 8 [Philippe]
>>
>>    - patch 3    gdb_get_cpu_pid() now search for CPU being a child of a
>>                 cpu-cluster object. Use the cluster-id to compute the
>> PID.
>>
>>    - patch 4    gdb_get_process() does not rely on s->processes array
>>                 indices anymore as PIDs can now be sparse. Instead,
>> iterate
>>                 over the array to find the process.
>>
>>    - patch 3/4  removed Reviewed-by tags because of substantial changes.
>>
>>    - patch 4/7  read_thread_id() hardening [Philippe]
>>
>>    - patch 12   safer vAttach packet parsing [Phillipe]
>>
>>    - patch 16   put APUs and RPUs in different clusters instead of GDB
>>                 groups
>>
>> changes since v1:
>>    - rename qemu_get_thread_id() to gdb_fmt_thread_id() [Philippe]
>>    - check qemu_strtoul() return value for 'D' packets [Philippe]
>>
>>
>> This series adds support for the multiprocess extension of the GDB
>> remote protocol in the QEMU GDB stub.
>>
>> This extension is useful to split QEMU emulated CPUs in different
>> processes from the point of view of the GDB client. It adds the
>> possibility to debug different kind of processors (e.g. an AArch64 and
>> an ARMv7 CPU) at the same time (it is not possible otherwise since GDB
>> expects an SMP view at the thread granularity.
>>
>> CPUs are grouped using specially named QOM containers. CPUs that are
>> children of such a container are grouped under the same GDB process.
>>
>> The last patch groups the CPUs of different model in the zynqmp machines
>> into separate processes.
>>
>> To test this patchset, you can use the following commands:
>>
>> (Note that this requires a recent enough GDB, I think GDB 7.2 is OK.
>> Also, it must be compiled to support both ARM and AArch64 architectures)
>>
>> Run QEMU: (-smp 6 in xlnx-zcu102 enables both cortex-a53 and cortex-r5
>> CPUs)
>>
>> qemu-system-aarch64 -M xlnx-zcu102 -gdb tcp::1234 -S -smp 6
>>
>> Run the following commands in GDB:
>>
>> target extended :1234
>> add-inferior
>> inferior 2
>> attach 2
>> info threads
>>
>> I want to thanks the Xilinx's QEMU team who sponsored this work for
>> their collaboration and their prototype implementation.
>>
>> Luc Michel (16):
>>    hw/cpu: introduce CPU clusters
>>    gdbstub: introduce GDB processes
>>    gdbstub: add multiprocess support to '?' packets
>>    gdbstub: add multiprocess support to 'H' and 'T' packets
>>    gdbstub: add multiprocess support to vCont packets
>>    gdbstub: add multiprocess support to 'sC' packets
>>    gdbstub: add multiprocess support to (f|s)ThreadInfo and
>>      ThreadExtraInfo
>>    gdbstub: add multiprocess support to Xfer:features:read:
>>    gdbstub: add multiprocess support to gdb_vm_state_change()
>>    gdbstub: add multiprocess support to 'D' packets
>>    gdbstub: add support for extended mode packet
>>    gdbstub: add support for vAttach packets
>>    gdbstub: processes initialization on new peer connection
>>    gdbstub: gdb_set_stop_cpu: ignore request when process is not attached
>>    gdbstub: add multiprocess extension support
>>    arm/xlnx-zynqmp: put APUs and RPUs in separate CPU clusters
>>
>>   include/hw/arm/xlnx-zynqmp.h |   3 +
>>   include/hw/cpu/cluster.h     |  38 +++
>>   gdbstub.c                    | 632 ++++++++++++++++++++++++++++++-----
>>   hw/arm/xlnx-zynqmp.c         |  21 +-
>>   hw/cpu/cluster.c             |  59 ++++
>>   hw/cpu/Makefile.objs         |   2 +-
>>   6 files changed, 674 insertions(+), 81 deletions(-)
>>   create mode 100644 include/hw/cpu/cluster.h
>>   create mode 100644 hw/cpu/cluster.c
>>

Re: [Qemu-devel] [PATCH v4 00/16] gdbstub: support for the multiprocess extension
Posted by no-reply@patchew.org 6 years, 12 months ago
Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20181106110548.4209-1-luc.michel@greensocs.com
Subject: [Qemu-devel] [PATCH v4 00/16] gdbstub: support for the multiprocess extension

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
    echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
    if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
        failed=1
        echo
    fi
    n=$((n+1))
done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
1e2778d39e arm/xlnx-zynqmp: put APUs and RPUs in separate CPU clusters
eed16df098 gdbstub: add multiprocess extension support
e88cd44bd3 gdbstub: gdb_set_stop_cpu: ignore request when process is not attached
aa2fa0a3fa gdbstub: processes initialization on new peer connection
4afe5a152f gdbstub: add support for vAttach packets
a7fd6581c5 gdbstub: add support for extended mode packet
5998191123 gdbstub: add multiprocess support to 'D' packets
244b52d66c gdbstub: add multiprocess support to gdb_vm_state_change()
1422ee16bb gdbstub: add multiprocess support to Xfer:features:read:
be15097ae2 gdbstub: add multiprocess support to (f|s)ThreadInfo and ThreadExtraInfo
c0410a7b7d gdbstub: add multiprocess support to 'sC' packets
5811d90600 gdbstub: add multiprocess support to vCont packets
cc51ac6f1b gdbstub: add multiprocess support to 'H' and 'T' packets
fc28bafab2 gdbstub: add multiprocess support to '?' packets
863423637d gdbstub: introduce GDB processes
1bf8b223d1 hw/cpu: introduce CPU clusters

=== OUTPUT BEGIN ===
Checking PATCH 1/16: hw/cpu: introduce CPU clusters...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#26: 
new file mode 100644

ERROR: do not initialise statics to 0 or NULL
#58: FILE: hw/cpu/cluster.c:28:
+    static uint64_t cluster_id_auto_increment = 0;

total: 1 errors, 1 warnings, 102 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 2/16: gdbstub: introduce GDB processes...
Checking PATCH 3/16: gdbstub: add multiprocess support to '?' packets...
Checking PATCH 4/16: gdbstub: add multiprocess support to 'H' and 'T' packets...
Checking PATCH 5/16: gdbstub: add multiprocess support to vCont packets...
Checking PATCH 6/16: gdbstub: add multiprocess support to 'sC' packets...
Checking PATCH 7/16: gdbstub: add multiprocess support to (f|s)ThreadInfo and ThreadExtraInfo...
Checking PATCH 8/16: gdbstub: add multiprocess support to Xfer:features:read:...
Checking PATCH 9/16: gdbstub: add multiprocess support to gdb_vm_state_change()...
Checking PATCH 10/16: gdbstub: add multiprocess support to 'D' packets...
Checking PATCH 11/16: gdbstub: add support for extended mode packet...
Checking PATCH 12/16: gdbstub: add support for vAttach packets...
Checking PATCH 13/16: gdbstub: processes initialization on new peer connection...
Checking PATCH 14/16: gdbstub: gdb_set_stop_cpu: ignore request when process is not attached...
Checking PATCH 15/16: gdbstub: add multiprocess extension support...
Checking PATCH 16/16: arm/xlnx-zynqmp: put APUs and RPUs in separate CPU clusters...
=== OUTPUT END ===

Test command exited with code: 1


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Re: [Qemu-devel] [PATCH v4 00/16] gdbstub: support for the multiprocess extension
Posted by no-reply@patchew.org 6 years, 12 months ago
Hi,

This series seems to have some coding style problems. See output below for
more information:

Type: series
Message-id: 20181106110548.4209-1-luc.michel@greensocs.com
Subject: [Qemu-devel] [PATCH v4 00/16] gdbstub: support for the multiprocess extension

=== TEST SCRIPT BEGIN ===
#!/bin/bash

BASE=base
n=1
total=$(git log --oneline $BASE.. | wc -l)
failed=0

git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram

commits="$(git log --format=%H --reverse $BASE..)"
for c in $commits; do
    echo "Checking PATCH $n/$total: $(git log -n 1 --format=%s $c)..."
    if ! git show $c --format=email | ./scripts/checkpatch.pl --mailback -; then
        failed=1
        echo
    fi
    n=$((n+1))
done

exit $failed
=== TEST SCRIPT END ===

Updating 3c8cf5a9c21ff8782164d1def7f44bd888713384
Switched to a new branch 'test'
1cf0f66bda arm/xlnx-zynqmp: put APUs and RPUs in separate CPU clusters
6f0cb2da93 gdbstub: add multiprocess extension support
87967d5049 gdbstub: gdb_set_stop_cpu: ignore request when process is not attached
7cdba0254c gdbstub: processes initialization on new peer connection
ebaca65623 gdbstub: add support for vAttach packets
1759d2c365 gdbstub: add support for extended mode packet
fb4cad639e gdbstub: add multiprocess support to 'D' packets
3a22180eb6 gdbstub: add multiprocess support to gdb_vm_state_change()
670254220f gdbstub: add multiprocess support to Xfer:features:read:
20529c74b6 gdbstub: add multiprocess support to (f|s)ThreadInfo and ThreadExtraInfo
89d52affa0 gdbstub: add multiprocess support to 'sC' packets
46fefe532f gdbstub: add multiprocess support to vCont packets
39b0a58804 gdbstub: add multiprocess support to 'H' and 'T' packets
ca039d950e gdbstub: add multiprocess support to '?' packets
f94fc66d30 gdbstub: introduce GDB processes
f6aa4734eb hw/cpu: introduce CPU clusters

=== OUTPUT BEGIN ===
Checking PATCH 1/16: hw/cpu: introduce CPU clusters...
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#26: 
new file mode 100644

ERROR: do not initialise statics to 0 or NULL
#58: FILE: hw/cpu/cluster.c:28:
+    static uint64_t cluster_id_auto_increment = 0;

total: 1 errors, 1 warnings, 102 lines checked

Your patch has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

Checking PATCH 2/16: gdbstub: introduce GDB processes...
Checking PATCH 3/16: gdbstub: add multiprocess support to '?' packets...
Checking PATCH 4/16: gdbstub: add multiprocess support to 'H' and 'T' packets...
Checking PATCH 5/16: gdbstub: add multiprocess support to vCont packets...
Checking PATCH 6/16: gdbstub: add multiprocess support to 'sC' packets...
Checking PATCH 7/16: gdbstub: add multiprocess support to (f|s)ThreadInfo and ThreadExtraInfo...
Checking PATCH 8/16: gdbstub: add multiprocess support to Xfer:features:read:...
Checking PATCH 9/16: gdbstub: add multiprocess support to gdb_vm_state_change()...
Checking PATCH 10/16: gdbstub: add multiprocess support to 'D' packets...
Checking PATCH 11/16: gdbstub: add support for extended mode packet...
Checking PATCH 12/16: gdbstub: add support for vAttach packets...
Checking PATCH 13/16: gdbstub: processes initialization on new peer connection...
Checking PATCH 14/16: gdbstub: gdb_set_stop_cpu: ignore request when process is not attached...
Checking PATCH 15/16: gdbstub: add multiprocess extension support...
Checking PATCH 16/16: arm/xlnx-zynqmp: put APUs and RPUs in separate CPU clusters...
=== OUTPUT END ===

Test command exited with code: 1


---
Email generated automatically by Patchew [http://patchew.org/].
Please send your feedback to patchew-devel@redhat.com