Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: b31bf9f8f72477742615888e78ab07845574e19c
      
https://github.com/qemu/qemu/commit/b31bf9f8f72477742615888e78ab07845574e19c
  Author: Alex Bennée <[email protected]>
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
    M include/exec/gdbstub.h

  Log Message:
  -----------
  include/exec: add missing include guard comment

Reviewed-by: Pierrick Bouvier <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>


  Commit: 5b7d54d4ed7857b8b27fb040c6027ba59e003889
      
https://github.com/qemu/qemu/commit/5b7d54d4ed7857b8b27fb040c6027ba59e003889
  Author: Alex Bennée <[email protected]>
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
    M accel/hvf/hvf-accel-ops.c
    M accel/kvm/kvm-all.c
    M accel/tcg/tcg-accel-ops.c
    M gdbstub/user.c
    M include/exec/gdbstub.h
    A include/gdbstub/enums.h
    M monitor/hmp-cmds.c
    M system/vl.c
    M target/arm/hvf/hvf.c
    M target/arm/hyp_gdbstub.c
    M target/arm/kvm.c
    M target/i386/kvm/kvm.c
    M target/ppc/kvm.c
    M target/s390x/kvm/kvm.c

  Log Message:
  -----------
  gdbstub: move enums into separate header

This is an experiment to further reduce the amount we throw into the
exec headers. It might not be as useful as I initially thought because
just under half of the users also need gdbserver_start().

Reviewed-by: Pierrick Bouvier <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>


  Commit: ad59d5caee26178b6719a2f38e931c89840b7350
      
https://github.com/qemu/qemu/commit/ad59d5caee26178b6719a2f38e931c89840b7350
  Author: Akihiko Odaki <[email protected]>
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
    M plugins/api.c

  Log Message:
  -----------
  plugins: Ensure register handles are not NULL

Ensure register handles are not NULL so that a plugin can assume NULL is
invalid as a register handle.

Signed-off-by: Akihiko Odaki <[email protected]>
Reviewed-by: Pierrick Bouvier <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>


  Commit: 113ac1d2127e4255129963c5061578b3fd85cc8f
      
https://github.com/qemu/qemu/commit/113ac1d2127e4255129963c5061578b3fd85cc8f
  Author: Alex Bennée <[email protected]>
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
    M include/sysemu/accel-ops.h
    M include/sysemu/cpu-timers.h
    R stubs/cpus-get-virtual-clock.c
    A stubs/cpus-virtual-clock.c
    M stubs/meson.build
    M system/cpus.c

  Log Message:
  -----------
  sysemu: add set_virtual_time to accel ops

We are about to remove direct calls to individual accelerators for
this information and will need a central point for plugins to hook
into time changes.

Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Pierrick Bouvier <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: e83e386200deeede6241007db6a27d09350ae060
      
https://github.com/qemu/qemu/commit/e83e386200deeede6241007db6a27d09350ae060
  Author: Alex Bennée <[email protected]>
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
    M accel/qtest/qtest.c
    M include/sysemu/qtest.h
    M system/qtest.c

  Log Message:
  -----------
  qtest: use cpu interface in qtest_clock_warp

This generalises the qtest_clock_warp code to use the AccelOps
handlers for updating its own sense of time. This will make the next
patch which moves the warp code closer to pure code motion.

From: Alex Bennée <[email protected]>
Acked-by: Thomas Huth <[email protected]>
Signed-off-by: Pierrick Bouvier <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: ffbc3949462e67d44ae96ed1d25a5a061557bb00
      
https://github.com/qemu/qemu/commit/ffbc3949462e67d44ae96ed1d25a5a061557bb00
  Author: Alex Bennée <[email protected]>
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
    M include/qemu/timer.h
    M system/qtest.c
    M util/qemu-timer.c

  Log Message:
  -----------
  sysemu: generalise qtest_warp_clock as qemu_clock_advance_virtual_time

Move the key functionality of moving time forward into the clock
sub-system itself. This will allow us to plumb in time control into
plugins.

Signed-off-by: Pierrick Bouvier <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: d4d133a34b300b574d446316491828867205d17f
      
https://github.com/qemu/qemu/commit/d4d133a34b300b574d446316491828867205d17f
  Author: Pierrick Bouvier <[email protected]>
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
    M accel/qtest/qtest.c
    M include/sysemu/qtest.h
    M system/qtest.c

  Log Message:
  -----------
  qtest: move qtest_{get, set}_virtual_clock to accel/qtest/qtest.c

Signed-off-by: Pierrick Bouvier <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>
Message-Id: <[email protected]>


  Commit: 847a65dd76bf1868c7966a2b2608dcd00cb68dc7
      
https://github.com/qemu/qemu/commit/847a65dd76bf1868c7966a2b2608dcd00cb68dc7
  Author: Alex Bennée <[email protected]>
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
    M include/qemu/qemu-plugin.h
    M plugins/api.c
    M plugins/qemu-plugins.symbols

  Log Message:
  -----------
  plugins: add time control API

Expose the ability to control time through the plugin API. Only one
plugin can control time so it has to request control when loaded.
There are probably more corner cases to catch here.

Signed-off-by: Pierrick Bouvier <[email protected]>
[AJB: tweaked user-mode handling, merged QEMU_PLUGIN_API fix]
Message-Id: <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: 508036532c5ee1c72896f6b950e8629cf334e485
      
https://github.com/qemu/qemu/commit/508036532c5ee1c72896f6b950e8629cf334e485
  Author: Alex Bennée <[email protected]>
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
    M plugins/api.c

  Log Message:
  -----------
  plugins: add migration blocker

If the plugin in controlling time there is some state that might be
missing from the plugin tracking it. Migration is unlikely to work in
this case so lets put a migration blocker in to let the user know if
they try.

Suggested-by: Dr. David Alan Gilbert <[email protected]>
Reviewed-by: Thomas Huth <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: 72db6d54a4a9203736261fc63f32f6cd3486b7e4
      
https://github.com/qemu/qemu/commit/72db6d54a4a9203736261fc63f32f6cd3486b7e4
  Author: Pierrick Bouvier <[email protected]>
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
    M contrib/plugins/Makefile
    A contrib/plugins/ips.c

  Log Message:
  -----------
  contrib/plugins: add Instructions Per Second (IPS) example for cost modeling

This plugin uses the new time control interface to make decisions
about the state of time during the emulation. The algorithm is
currently very simple. The user specifies an ips rate which applies
per core. If the core runs ahead of its allocated execution time the
plugin sleeps for a bit to let real time catch up. Either way time is
updated for the emulation as a function of total executed instructions
with some adjustments for cores that idle.

Examples
--------

Slow down execution of /bin/true:
$ num_insn=$(./build/qemu-x86_64 -plugin ./build/tests/plugin/libinsn.so -d 
plugin /bin/true |& grep total | sed -e 's/.*: //')
$ time ./build/qemu-x86_64 -plugin 
./build/contrib/plugins/libips.so,ips=$(($num_insn/4)) /bin/true
real 4.000s

Boot a Linux kernel simulating a 250MHz cpu:
$ /build/qemu-system-x86_64 -kernel /boot/vmlinuz-6.1.0-21-amd64 -append 
"console=ttyS0" -plugin 
./build/contrib/plugins/libips.so,ips=$((250*1000*1000)) -smp 1 -m 512
check time until kernel panic on serial0

Tested in system mode by booting a full debian system, and using:
$ sysbench cpu run
Performance decrease linearly with the given number of ips.

Signed-off-by: Pierrick Bouvier <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: ca7d7f4276d4fd4711b693a78fec79652cf2ffc5
      
https://github.com/qemu/qemu/commit/ca7d7f4276d4fd4711b693a78fec79652cf2ffc5
  Author: Pierrick Bouvier <[email protected]>
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
    M accel/tcg/plugin-gen.c
    M plugins/core.c

  Log Message:
  -----------
  plugins: fix inject_mem_cb rw masking

These are not booleans, but masks.
Issue found by Richard Henderson.

Fixes: f86fd4d8721 ("plugins: distinct types for callbacks")
Signed-off-by: Richard Henderson <[email protected]>
Signed-off-by: Pierrick Bouvier <[email protected]>
Message-Id: <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: fce3d48038e9f38e3e342a59f76c7f9f9b043ed2
      
https://github.com/qemu/qemu/commit/fce3d48038e9f38e3e342a59f76c7f9f9b043ed2
  Author: Max Chou <[email protected]>
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
    M accel/tcg/ldst_common.c.inc

  Log Message:
  -----------
  accel/tcg: Avoid unnecessary call overhead from qemu_plugin_vcpu_mem_cb

If there are not any QEMU plugin memory callback functions, checking
before calling the qemu_plugin_vcpu_mem_cb function can reduce the
function call overhead.

Signed-off-by: Max Chou <[email protected]>
Reviewed-by: Richard Henderson <[email protected]>
Reviewed-by: Frank Chang <[email protected]>
Message-Id: <[email protected]>
Reviewed-by: Philippe Mathieu-Daudé <[email protected]>
Signed-off-by: Alex Bennée <[email protected]>
Message-Id: <[email protected]>


  Commit: e2bc7787c8dcc38f0f788d68764ffb6b756f7ea6
      
https://github.com/qemu/qemu/commit/e2bc7787c8dcc38f0f788d68764ffb6b756f7ea6
  Author: Richard Henderson <[email protected]>
  Date:   2024-06-24 (Mon, 24 Jun 2024)

  Changed paths:
    M accel/hvf/hvf-accel-ops.c
    M accel/kvm/kvm-all.c
    M accel/qtest/qtest.c
    M accel/tcg/ldst_common.c.inc
    M accel/tcg/plugin-gen.c
    M accel/tcg/tcg-accel-ops.c
    M contrib/plugins/Makefile
    A contrib/plugins/ips.c
    M gdbstub/user.c
    M include/exec/gdbstub.h
    A include/gdbstub/enums.h
    M include/qemu/qemu-plugin.h
    M include/qemu/timer.h
    M include/sysemu/accel-ops.h
    M include/sysemu/cpu-timers.h
    M include/sysemu/qtest.h
    M monitor/hmp-cmds.c
    M plugins/api.c
    M plugins/core.c
    M plugins/qemu-plugins.symbols
    R stubs/cpus-get-virtual-clock.c
    A stubs/cpus-virtual-clock.c
    M stubs/meson.build
    M system/cpus.c
    M system/qtest.c
    M system/vl.c
    M target/arm/hvf/hvf.c
    M target/arm/hyp_gdbstub.c
    M target/arm/kvm.c
    M target/i386/kvm/kvm.c
    M target/ppc/kvm.c
    M target/s390x/kvm/kvm.c
    M util/qemu-timer.c

  Log Message:
  -----------
  Merge tag 'pull-maintainer-june24-240624-1' of 
https://gitlab.com/stsquad/qemu into staging

maintainer updates (plugins, gdbstub):

  - add missing include guard comment to gdbstub.h
  - move gdbstub enums into separate header
  - move qtest_[get|set]_virtual_clock functions
  - allow plugins to manipulate the virtual clock
  - introduce an Instructions Per Second plugin
  - fix inject_mem_cb rw mask tests
  - allow qemu_plugin_vcpu_mem_cb to shortcut when no memory cbs

# -----BEGIN PGP SIGNATURE-----
#
# iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmZ5OjoACgkQ+9DbCVqe
# KkQPlwf/VK673BAjYktuCLnf3DgWvIkkiHWwzBREP5MmseUloLjK2CQPLY/xWZED
# pbA/1OSzHViD/mvG5wTxwef36b9PIleWj5/YwBxGlrb/rh6hCd9004pZK4EMI3qU
# 53SK8Qron8TIXjey6XfmAY8rcl030GsHr0Zqf5i2pZKE5g0iaGlM3Cwkpo0SxQsu
# kMNqiSs9NzX7LxB+YeuAauIvC1YA2F/MGTXeFCTtO9Beyp5oV7oOI+2zIvLjlG5M
# Z5hKjG/STkNOteoIBGZpe1+QNpoGHSBoGE3nQnGpXb82iLx1KVBcKuQ6GoWGv1Wo
# hqiSh9kJX479l0mLML+IzaDsgSglbg==
# =pvWx
# -----END PGP SIGNATURE-----
# gpg: Signature made Mon 24 Jun 2024 02:19:54 AM PDT
# gpg:                using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44
# gpg: Good signature from "Alex Bennée (Master Work Key) 
<[email protected]>" [full]

* tag 'pull-maintainer-june24-240624-1' of https://gitlab.com/stsquad/qemu:
  accel/tcg: Avoid unnecessary call overhead from qemu_plugin_vcpu_mem_cb
  plugins: fix inject_mem_cb rw masking
  contrib/plugins: add Instructions Per Second (IPS) example for cost modeling
  plugins: add migration blocker
  plugins: add time control API
  qtest: move qtest_{get, set}_virtual_clock to accel/qtest/qtest.c
  sysemu: generalise qtest_warp_clock as qemu_clock_advance_virtual_time
  qtest: use cpu interface in qtest_clock_warp
  sysemu: add set_virtual_time to accel ops
  plugins: Ensure register handles are not NULL
  gdbstub: move enums into separate header
  include/exec: add missing include guard comment

Signed-off-by: Richard Henderson <[email protected]>


Compare: https://github.com/qemu/qemu/compare/d89b64beea65...e2bc7787c8dc

To unsubscribe from these emails, change your notification settings at 
https://github.com/qemu/qemu/settings/notifications

Reply via email to