[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v2 0/9] synchronization profiler
From: |
Emilio G. Cota |
Subject: |
[Qemu-devel] [PATCH v2 0/9] synchronization profiler |
Date: |
Fri, 17 Aug 2018 01:18:44 -0400 |
v1: https://lists.gnu.org/archive/html/qemu-devel/2018-08/msg02186.html
Changes since v1:
- Rebase on current master.
- Update copyright to 2018.
- Add -m option to the HMP info command to sort by average wait time,
as suggested by Paolo.
- Add -n option to the HMP info command to NOT merge call sites.
The default does merge call sites, as suggested by Paolo (thanks
to Peter for the clarification).
- Switch to camel case in qsp.c
- Update the commit logs of the two HMP patches to clearly state
that this is only for developers, so it is HMP-only.
- Rename the HMP command from "sync" to "sync-profile", as suggested
by Markus.
- Use int for line info consistently (was using unsigned sometimes)
- Drop qsp_init from qsp_cond_wait, as suggested by Fam.
- #undef QSP_GEN_{VOID,RET1} once they're no longer used.
- Add qsp_reset()
This uses a snapshot to avoid deleting items, which would require
adding rcu_read_lock/unlock to the fast path.
- Convert to run-time option, as suggested by Fam
- Add -enable-sync-profile to qemu-options
- Add sync-profile HMP command: "sync-profile on|off|reset"
- allocate QSPEntry with g_new0
I added most new bits as separate patches to ease review.
The first patch has some perf numbers; the last patch shows
sample output from the monitor.
Checkpatch gives some errors, but they're false positives.
You can fetch this series from:
https://github.com/cota/qemu/tree/sync-profiler-v2
Diffstat below.
Thanks,
Emilio
---
cpus.c | 10 +-
hmp-commands-info.hx | 22 ++
hmp-commands.hx | 15 +
hmp.c | 24 ++
hmp.h | 1 +
include/qemu/main-loop.h | 4 +-
include/qemu/qht.h | 1 +
include/qemu/qsp.h | 29 ++
include/qemu/thread-posix.h | 4 +-
include/qemu/thread-win32.h | 5 +-
include/qemu/thread.h | 66 +++-
monitor.c | 11 +
qemu-options.hx | 10 +
stubs/iothread-lock.c | 2 +-
tests/atomic_add-bench.c | 6 +-
util/Makefile.objs | 1 +
util/qemu-thread-win32.c | 4 +-
util/qht.c | 47 ++-
util/qsp.c | 779 +++++++++++++++++++++++++++++++++++++++
vl.c | 3 +
20 files changed, 1016 insertions(+), 28 deletions(-)
create mode 100644 include/qemu/qsp.h
create mode 100644 util/qsp.c
- [Qemu-devel] [PATCH v2 0/9] synchronization profiler,
Emilio G. Cota <=
- [Qemu-devel] [PATCH 7/9] vl: add -enable-sync-profile, Emilio G. Cota, 2018/08/17
- [Qemu-devel] [PATCH 2/9] qsp: add sort_by option to qsp_report, Emilio G. Cota, 2018/08/17
- [Qemu-devel] [PATCH 5/9] qsp: track BQL callers explicitly, Emilio G. Cota, 2018/08/17
- [Qemu-devel] [PATCH 6/9] tests/atomic_add-bench: add -p to enable sync profiler, Emilio G. Cota, 2018/08/17
- [Qemu-devel] [PATCH 3/9] qsp: add qsp_reset, Emilio G. Cota, 2018/08/17
- [Qemu-devel] [PATCH 9/9] hmp-commands-info: add sync-profile, Emilio G. Cota, 2018/08/17
- [Qemu-devel] [PATCH 8/9] hmp-commands: add sync-profile, Emilio G. Cota, 2018/08/17