[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PULL for-7.1 00/36] Logging cleanup and per-thread logfiles
From: |
Richard Henderson |
Subject: |
[PULL for-7.1 00/36] Logging cleanup and per-thread logfiles |
Date: |
Sun, 20 Mar 2022 10:10:59 -0700 |
Most of the changes here reduce the amount of locking involved
in logging, due to repeated qemu_log calls, each of which takes
and releases the rcu_read_lock.
This makes more use of qemu_log_lock/unlock around code blocks,
which both keeps the output together in the face of threads and
also plays the rcu_read_lock game only once for the block.
Finally, add a -d tid option to open per-thread logfiles.
This can be extremely helpful in debugging user-only threads.
r~
Richard Henderson (36):
util/log: Drop manual log buffering
target/hexagon: Remove qemu_set_log in hexagon_translate_init
util/log: Pass Error pointer to qemu_set_log
os-posix: Use qemu_log_enabled
util/log: Move qemu_log_lock, qemu_log_unlock out of line
util/log: Treat qemu_log_lock like trylock
hw/xen: Split out xen_pv_output_msg
*: Use fprintf between qemu_log_lock/unlock
util/log: Remove qemu_log_vprintf
tcg: Pass the locked filepointer to tcg_dump_ops
exec/translator: Pass the locked filepointer to disas_log hook
exec/log: Remove log_disas and log_target_disas
accel/tcg: Use cpu_dump_state between qemu_log_lock/unlock
target/nios2: Remove log_cpu_state from reset
util/log: Use qemu_log_lock/unlock in qemu_log
util/log: Remove qemu_log_flush
util/log: Drop call to setvbuf
bsd-user: Expand log_page_dump inline
linux-user: Expand log_page_dump inline
tests/unit: Do not reference QemuLogFile directly
include/exec/log: Do not reference QemuLogFile directly
include/qemu/log: Move entire implementation out-of-line
sysemu/os-win32: Test for and use _lock_file/_unlock_file
util/log: Introduce qemu_set_log_filename_flags
bsd-user: Use qemu_set_log_filename_flags
linux-user: Use qemu_set_log_filename_flags
softmmu: Use qemu_set_log_filename_flags
util/log: Remove qemu_log_close
util/log: Rename logfilename to global_filename
util/log: Rename qemu_logfile to global_file
util/log: Rename qemu_logfile_mutex to global_mutex
util/log: Hoist the eval of is_daemonized in qemu_set_log_internal
util/log: Combine two logfile closes
util/log: Rename QemuLogFile to RCUCloseFILE
util/log: Limit RCUCloseFILE to file closing
util/log: Support per-thread log files
meson.build | 12 +
include/exec/log.h | 52 +----
include/exec/translator.h | 2 +-
include/qemu/log.h | 91 +-------
include/sysemu/os-win32.h | 16 +-
accel/tcg/cpu-exec.c | 16 +-
accel/tcg/translate-all.c | 116 +++++-----
accel/tcg/translator.c | 10 +-
bsd-user/main.c | 44 ++--
cpu.c | 10 +-
hw/net/can/can_sja1000.c | 24 +-
hw/xen/xen_pvdev.c | 45 ++--
linux-user/main.c | 55 +++--
linux-user/mmap.c | 7 +-
monitor/misc.c | 7 +-
net/can/can_socketcan.c | 23 +-
os-posix.c | 2 +-
qemu-img.c | 2 +-
qemu-io.c | 2 +-
qemu-nbd.c | 2 +-
scsi/qemu-pr-helper.c | 2 +-
softmmu/vl.c | 21 +-
storage-daemon/qemu-storage-daemon.c | 2 +-
target/alpha/translate.c | 7 +-
target/arm/translate-a64.c | 6 +-
target/arm/translate.c | 7 +-
target/avr/translate.c | 7 +-
target/cris/translate.c | 7 +-
target/hexagon/translate.c | 13 +-
target/hppa/translate.c | 15 +-
target/i386/tcg/translate.c | 20 +-
target/m68k/translate.c | 7 +-
target/microblaze/translate.c | 7 +-
target/mips/tcg/translate.c | 7 +-
target/nios2/cpu.c | 5 -
target/nios2/translate.c | 7 +-
target/openrisc/translate.c | 7 +-
target/ppc/translate.c | 7 +-
target/riscv/translate.c | 10 +-
target/rx/translate.c | 7 +-
target/s390x/tcg/translate.c | 11 +-
target/sh4/translate.c | 7 +-
target/sparc/translate.c | 7 +-
target/tricore/translate.c | 7 +-
target/xtensa/translate.c | 7 +-
tcg/tcg.c | 176 +++++++-------
tests/unit/test-logging.c | 40 ++--
util/log.c | 331 +++++++++++++++++----------
48 files changed, 669 insertions(+), 626 deletions(-)
--
2.25.1
- [PULL for-7.1 00/36] Logging cleanup and per-thread logfiles,
Richard Henderson <=