From: "Philippe Mathieu-Daudé" <philmd@redhat.com>
To: qemu-devel@nongnu.org
Cc: "Ahmed Karaman" <ahmedkhaledkaraman@gmail.com>,
"Philippe Mathieu-Daudé" <philmd@redhat.com>,
"John Snow" <jsnow@redhat.com>,
"Eduardo Habkost" <ehabkost@redhat.com>,
"Cleber Rosa" <crosa@redhat.com>
Subject: [PULL 00/19] Python patches for 5.1
Date: Wed, 15 Jul 2020 00:21:13 +0200 [thread overview]
Message-ID: <20200714222132.10815-1-philmd@redhat.com> (raw)
The following changes since commit 1a53dfee92284d3016a579ef31d53367e84d9dd8:
Merge remote-tracking branch 'remotes/ericb/tags/pull-nbd-2020-07-13' into staging (2020-07-14 13:52:10 +0100)
are available in the Git repository at:
https://gitlab.com/philmd/qemu.git tags/python-next-20200714
for you to fetch changes up to 84dcdf0887cdaaba7300442482c99e5064865a2d:
python/qmp.py: add QMPProtocolError (2020-07-14 22:22:22 +0200)
----------------------------------------------------------------
Python patches for 5.1
- Reduce race conditions on QEMUMachine::shutdown()
1. Remove the "bare except" pattern in the existing shutdown code,
which can mask problems and make debugging difficult.
2. Ensure that post-shutdown cleanup is always performed, even when
graceful termination fails.
3. Unify cleanup paths such that no matter how the VM is terminated,
the same functions and steps are always taken to reset the object
state.
4. Rewrite shutdown() such that any error encountered when attempting
a graceful shutdown will be raised as an AbnormalShutdown exception.
The pythonic idiom is to allow the caller to decide if this is a
problem or not.
- Modify part of the python/qemu library to comply with:
. mypy --strict
. pylint
. flake8
- Script for the TCG Continuous Benchmarking project that uses
callgrind to dissect QEMU execution into three main phases:
. code generation
. JIT execution
. helpers execution
CI jobs results:
. https://cirrus-ci.com/build/5421349961203712
. https://gitlab.com/philmd/qemu/-/pipelines/166556001
. https://travis-ci.org/github/philmd/qemu/builds/708102347
----------------------------------------------------------------
Ahmed Karaman (1):
scripts/performance: Add dissect.py script
John Snow (18):
python/machine.py: consolidate _post_shutdown()
python/machine.py: Close QMP socket in cleanup
python/machine.py: Add _early_cleanup hook
python/machine.py: Perform early cleanup for wait() calls, too
python/machine.py: Prohibit multiple shutdown() calls
python/machine.py: Add a configurable timeout to shutdown()
python/machine.py: Make wait() call shutdown()
tests/acceptance: wait() instead of shutdown() where appropriate
tests/acceptance: Don't test reboot on cubieboard
python/machine.py: split shutdown into hard and soft flavors
python/machine.py: re-add sigkill warning suppression
python/machine.py: change default wait timeout to 3 seconds
python/qmp.py: Define common types
iotests.py: use qemu.qmp type aliases
python/qmp.py: re-absorb MonitorResponseError
python/qmp.py: Do not return None from cmd_obj
python/qmp.py: add casts to JSON deserialization
python/qmp.py: add QMPProtocolError
python/qemu/machine.py | 176 +++++++++++++++++------
python/qemu/qmp.py | 67 +++++++--
scripts/performance/dissect.py | 166 +++++++++++++++++++++
scripts/render_block_graph.py | 7 +-
tests/acceptance/boot_linux_console.py | 14 +-
tests/acceptance/linux_ssh_mips_malta.py | 2 +
tests/qemu-iotests/iotests.py | 9 +-
7 files changed, 369 insertions(+), 72 deletions(-)
create mode 100755 scripts/performance/dissect.py
--
2.21.3
next reply other threads:[~2020-07-14 22:23 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-14 22:21 Philippe Mathieu-Daudé [this message]
2020-07-14 22:21 ` [PULL 01/19] scripts/performance: Add dissect.py script Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 02/19] python/machine.py: consolidate _post_shutdown() Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 03/19] python/machine.py: Close QMP socket in cleanup Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 04/19] python/machine.py: Add _early_cleanup hook Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 05/19] python/machine.py: Perform early cleanup for wait() calls, too Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 06/19] python/machine.py: Prohibit multiple shutdown() calls Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 07/19] python/machine.py: Add a configurable timeout to shutdown() Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 08/19] python/machine.py: Make wait() call shutdown() Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 09/19] tests/acceptance: wait() instead of shutdown() where appropriate Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 10/19] tests/acceptance: Don't test reboot on cubieboard Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 11/19] python/machine.py: split shutdown into hard and soft flavors Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 12/19] python/machine.py: re-add sigkill warning suppression Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 13/19] python/machine.py: change default wait timeout to 3 seconds Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 14/19] python/qmp.py: Define common types Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 15/19] iotests.py: use qemu.qmp type aliases Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 16/19] python/qmp.py: re-absorb MonitorResponseError Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 17/19] python/qmp.py: Do not return None from cmd_obj Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 18/19] python/qmp.py: add casts to JSON deserialization Philippe Mathieu-Daudé
2020-07-14 22:21 ` [PULL 19/19] python/qmp.py: add QMPProtocolError Philippe Mathieu-Daudé
2020-07-15 12:53 ` [PULL 00/19] Python patches for 5.1 Peter Maydell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200714222132.10815-1-philmd@redhat.com \
--to=philmd@redhat.com \
--cc=ahmedkhaledkaraman@gmail.com \
--cc=crosa@redhat.com \
--cc=ehabkost@redhat.com \
--cc=jsnow@redhat.com \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).