qemu-commits
[Top][All Lists]
Advanced

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

[Qemu-commits] [qemu/qemu] 48e140: accel/tcg: introduce CF_NOIRQ


From: Richard Henderson
Subject: [Qemu-commits] [qemu/qemu] 48e140: accel/tcg: introduce CF_NOIRQ
Date: Mon, 29 Nov 2021 10:04:15 -0800

  Branch: refs/heads/staging
  Home:   https://github.com/qemu/qemu
  Commit: 48e14066ac10581db4e69f75eda107cfdafa6022
      
https://github.com/qemu/qemu/commit/48e14066ac10581db4e69f75eda107cfdafa6022
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2021-11-29 (Mon, 29 Nov 2021)

  Changed paths:
    M include/exec/exec-all.h
    M include/exec/gen-icount.h

  Log Message:
  -----------
  accel/tcg: introduce CF_NOIRQ

Here we introduce a new compiler flag to disable the checking of exit
request (icount_decr.u32). This is useful when we want to ensure the
next block cannot be preempted by an asynchronous event.

Suggested-by: Richard Henderson <richard.henderson@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20211129140932.4115115-2-alex.bennee@linaro.org>


  Commit: aff0e204cb1f1c036a496c94c15f5dfafcd9b4b4
      
https://github.com/qemu/qemu/commit/aff0e204cb1f1c036a496c94c15f5dfafcd9b4b4
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2021-11-29 (Mon, 29 Nov 2021)

  Changed paths:
    M accel/tcg/cpu-exec.c
    M accel/tcg/translate-all.c
    M softmmu/physmem.c

  Log Message:
  -----------
  accel/tcg: suppress IRQ check for special TBs

When we set cpu->cflags_next_tb it is because we want to carefully
control the execution of the next TB. Currently there is a race that
causes the second stage of watchpoint handling to get ignored if an
IRQ is processed before we finish executing the instruction that
triggers the watchpoint. Use the new CF_NOIRQ facility to avoid the
race.

We also suppress IRQs when handling precise self modifying code to
avoid unnecessary bouncing.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Cc: Pavel Dovgalyuk <pavel.dovgalyuk@ispras.ru>
Fixes: https://gitlab.com/qemu-project/qemu/-/issues/245
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20211129140932.4115115-3-alex.bennee@linaro.org>


  Commit: a7c6e562e6f3f4e009c5dfa4e44cbbe908c4bf05
      
https://github.com/qemu/qemu/commit/a7c6e562e6f3f4e009c5dfa4e44cbbe908c4bf05
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2021-11-29 (Mon, 29 Nov 2021)

  Changed paths:
    M tests/avocado/tcg_plugins.py

  Log Message:
  -----------
  tests/avocado: fix tcg_plugin mem access count test

When we cleaned up argument handling the test was missed.

Fixes: 5ae589faad ("tests/plugins/mem: introduce "track" arg and make args not 
positional")
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20211129140932.4115115-4-alex.bennee@linaro.org>


  Commit: 86a41ac7fd488ce084175a30d1e5fd92dc37596b
      
https://github.com/qemu/qemu/commit/86a41ac7fd488ce084175a30d1e5fd92dc37596b
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2021-11-29 (Mon, 29 Nov 2021)

  Changed paths:
    M plugins/meson.build

  Log Message:
  -----------
  plugins/meson.build: fix linker issue with weird paths

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Stefan Weil <sw@weilnetz.de>
Fixes: https://gitlab.com/qemu-project/qemu/-/issues/712
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Message-Id: <20211129140932.4115115-5-alex.bennee@linaro.org>


  Commit: a8e537fa4d61b29c5c0ab1395918ad63f7752b25
      
https://github.com/qemu/qemu/commit/a8e537fa4d61b29c5c0ab1395918ad63f7752b25
  Author: Alex Bennée <alex.bennee@linaro.org>
  Date:   2021-11-29 (Mon, 29 Nov 2021)

  Changed paths:
    M gdbstub.c

  Log Message:
  -----------
  gdbstub: handle a potentially racing TaskState

When dealing with multi-threaded userspace programs there is a race
condition with the addition of cpu->opaque (aka TaskState). This is
due to cpu_copy calling cpu_create which updates the global vCPU list.
However the task state isn't set until later. This shouldn't be a
problem because the new thread can't have executed anything yet but
the gdbstub code does liberally iterate through the CPU list in
various places.

This sticking plaster ensure the not yet fully realized vCPU is given
an pid of -1 which should be enough to ensure it doesn't show up
anywhere else.

In the longer term I think the code that manages the association
between vCPUs and attached GDB processes could do with a clean-up and
re-factor.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Cc: Richard Henderson <richard.henderson@linaro.org>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/730
Message-Id: <20211129140932.4115115-6-alex.bennee@linaro.org>


  Commit: 40525be5cbe768b23b427c6535c0b11bda80c851
      
https://github.com/qemu/qemu/commit/40525be5cbe768b23b427c6535c0b11bda80c851
  Author: Willian Rampazzo <willianr@redhat.com>
  Date:   2021-11-29 (Mon, 29 Nov 2021)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: Remove me as a reviewer for the build and test/avocado

Remove me as a reviewer for the Build and test automation and the
Integration Testing with the Avocado Framework and add Beraldo
Leal.

Signed-off-by: Willian Rampazzo <willianr@redhat.com>
Reviewed-by: Beraldo Leal <bleal@redhat.com>
Message-Id: <20211122191124.31620-1-willianr@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20211129140932.4115115-7-alex.bennee@linaro.org>


  Commit: 1e970158be18ed1142a8ba996448113f90848aa4
      
https://github.com/qemu/qemu/commit/1e970158be18ed1142a8ba996448113f90848aa4
  Author: Philippe Mathieu-Daudé <f4bug@amsat.org>
  Date:   2021-11-29 (Mon, 29 Nov 2021)

  Changed paths:
    M MAINTAINERS

  Log Message:
  -----------
  MAINTAINERS: Add section for Aarch64 GitLab custom runner

Add a MAINTAINERS section to cover the GitLab YAML config file
containing the jobs run on the custom runner sponsored by the
Works On Arm project [*].

[*] https://developer.arm.com/solutions/infrastructure/works-on-arm

Suggested-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20211116163226.2719320-1-f4bug@amsat.org>
Message-Id: <20211129140932.4115115-8-alex.bennee@linaro.org>


  Commit: d5615bbf9103f01911df683cc3e4e85c49a92593
      
https://github.com/qemu/qemu/commit/d5615bbf9103f01911df683cc3e4e85c49a92593
  Author: Juro Bystricky <juro.bystricky@intel.com>
  Date:   2021-11-29 (Mon, 29 Nov 2021)

  Changed paths:
    M tests/plugin/syscall.c

  Log Message:
  -----------
  tests/plugin/syscall.c: fix compiler warnings

Fix compiler warnings. The warnings can result in a broken build.
This patch fixes warnings such as:

In file included from /usr/include/glib-2.0/glib.h:111,
                 from ../tests/plugin/syscall.c:13:
../tests/plugin/syscall.c: In function ‘print_entry’:
/usr/include/glib-2.0/glib/glib-autocleanups.h:28:3: error: ‘out’ may be
       used uninitialized in this function [-Werror=maybe-uninitialized]
   g_free (*pp);
   ^~~~~~~~~~~~
../tests/plugin/syscall.c:82:23: note: ‘out’ was declared here
     g_autofree gchar *out;
                       ^~~
In file included from /usr/include/glib-2.0/glib.h:111,
                 from ../tests/plugin/syscall.c:13:
../tests/plugin/syscall.c: In function ‘vcpu_syscall_ret’:
/usr/include/glib-2.0/glib/glib-autocleanups.h:28:3: error: ‘out’ may be
        used uninitialized in this function [-Werror=maybe-uninitialized]
   g_free (*pp);
   ^~~~~~~~~~~~
../tests/plugin/syscall.c:73:27: note: ‘out’ was declared here
         g_autofree gchar *out;
                           ^~~
cc1: all warnings being treated as errors

Signed-off-by: Juro Bystricky <juro.bystricky@intel.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20211128011551.2115468-1-juro.bystricky@intel.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20211129140932.4115115-9-alex.bennee@linaro.org>


  Commit: a0fd8a5492240379a07c0b39c8dae3b8341b458f
      
https://github.com/qemu/qemu/commit/a0fd8a5492240379a07c0b39c8dae3b8341b458f
  Author: Richard Henderson <richard.henderson@linaro.org>
  Date:   2021-11-29 (Mon, 29 Nov 2021)

  Changed paths:
    M MAINTAINERS
    M accel/tcg/cpu-exec.c
    M accel/tcg/translate-all.c
    M gdbstub.c
    M include/exec/exec-all.h
    M include/exec/gen-icount.h
    M plugins/meson.build
    M softmmu/physmem.c
    M tests/avocado/tcg_plugins.py
    M tests/plugin/syscall.c

  Log Message:
  -----------
  Merge tag 'pull-for-6.2-291121-1' of https://github.com/stsquad/qemu into 
staging

TCG, plugin and build fixes:

  - introduce CF_NOIRQ to avoid watchpoint race
  - fix avocado plugin test
  - fix linker issue with weird paths
  - band-aid for gdbstub race
  - updates for MAINTAINERS
  - fix some compiler warning in example plugin

# gpg: Signature made Mon 29 Nov 2021 04:16:22 PM CET
# gpg:                using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44
# gpg: Good signature from "Alex Bennée (Master Work Key) 
<alex.bennee@linaro.org>" [full]

* tag 'pull-for-6.2-291121-1' of https://github.com/stsquad/qemu:
  tests/plugin/syscall.c: fix compiler warnings
  MAINTAINERS: Add section for Aarch64 GitLab custom runner
  MAINTAINERS: Remove me as a reviewer for the build and test/avocado
  gdbstub: handle a potentially racing TaskState
  plugins/meson.build: fix linker issue with weird paths
  tests/avocado: fix tcg_plugin mem access count test
  accel/tcg: suppress IRQ check for special TBs
  accel/tcg: introduce CF_NOIRQ

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>


Compare: https://github.com/qemu/qemu/compare/095c7737fbb8...a0fd8a549224



reply via email to

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