[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v3 0/6] Make the qemu_logfile handle thread safe.
From: |
Alex Bennée |
Subject: |
Re: [PATCH v3 0/6] Make the qemu_logfile handle thread safe. |
Date: |
Wed, 20 Nov 2019 16:33:21 +0000 |
User-agent: |
mu4e 1.3.5; emacs 27.0.50 |
Robert Foley <address@hidden> writes:
> This patch adds thread safety to the qemu_logfile handle. This now
> allows changing the logfile while logging is active, and also solves
> the issue of a seg fault while changing the logfile.
>
> This patch adds use of RCU for handling the swap out of the
> old qemu_logfile file descriptor.
>
> Also added a few tests for logfile including changing the logfile
> and closing the logfile.
>
> One change also added for a pre-existing double free issue in
> qemu_set_log_filename() uncovered with the new test.
>
> We also cleaned up the flow of code in qemu_set_log().
This all looks good to me. As we are in hardfreeze now I think it's best
we wait for the tree to open before submitting the PR. If no one else
wants to pick this up I'll put together a PR.
> ---
> v3
> - This version of the patch incorporates a few minor changes.
> - Change patch which adds qemu_logfile_mutex to remove the
> asserts that mutex is initialized, instead we will rely
> on the constructor.
> - Also added details to commit for patch adding mutex to explain some
> unavoidable temporary ugliness that we cleanup in a later patch.
> - Change qemu_log_lock() to unconditionally hold the rcu_read_lock()
> until qemu_log_unlock().
> - Also changed one use case in target/tilegx/translate.c
> to eliminate use of qemu_log_lock()/unlock().
> ---
> v2
> - This version of the patch adds some cleanup of code in
> qemu_set_log().
> - Also changed the order of patches to move our fix for the
> double free issue in qemu_set_log_filename() up to the beginning
> of the patch.
> ---
> v1
> - This version of the patch incorporates changes
> from the first round of review.
> - It also includes a fix for an issue in
> qemu_set_log_filename(). This issue was uncovered
> by the test added for this patch.
> ---
>
> Robert Foley (6):
> Fix double free issue in qemu_set_log_filename().
> Cleaned up flow of code in qemu_set_log(), to simplify and clarify.
> Add a mutex to guarantee single writer to qemu_logfile handle.
> qemu_log_lock/unlock now preserves the qemu_logfile handle.
> Add use of RCU for qemu_logfile.
> Added tests for close and change of logfile.
>
> accel/tcg/cpu-exec.c | 4 +-
> accel/tcg/translate-all.c | 4 +-
> accel/tcg/translator.c | 4 +-
> exec.c | 4 +-
> hw/net/can/can_sja1000.c | 4 +-
> include/exec/log.h | 33 +++++++++--
> include/qemu/log.h | 48 +++++++++++++---
> net/can/can_socketcan.c | 5 +-
> target/cris/translate.c | 4 +-
> target/i386/translate.c | 5 +-
> target/lm32/translate.c | 4 +-
> target/microblaze/translate.c | 4 +-
> target/nios2/translate.c | 4 +-
> target/tilegx/translate.c | 6 --
> target/unicore32/translate.c | 4 +-
> tcg/tcg.c | 28 ++++++----
> tests/test-logging.c | 80 +++++++++++++++++++++++++++
> util/log.c | 100 ++++++++++++++++++++++++++--------
> 18 files changed, 268 insertions(+), 77 deletions(-)
--
Alex Bennée
- [PATCH v3 0/6] Make the qemu_logfile handle thread safe., Robert Foley, 2019/11/18
- [PATCH v3 1/6] Fix double free issue in qemu_set_log_filename()., Robert Foley, 2019/11/18
- [PATCH v3 2/6] Cleaned up flow of code in qemu_set_log(), to simplify and clarify., Robert Foley, 2019/11/18
- [PATCH v3 3/6] Add a mutex to guarantee single writer to qemu_logfile handle., Robert Foley, 2019/11/18
- [PATCH v3 4/6] qemu_log_lock/unlock now preserves the qemu_logfile handle., Robert Foley, 2019/11/18
- [PATCH v3 5/6] Add use of RCU for qemu_logfile., Robert Foley, 2019/11/18
- [PATCH v3 6/6] Added tests for close and change of logfile., Robert Foley, 2019/11/18
- Re: [PATCH v3 0/6] Make the qemu_logfile handle thread safe.,
Alex Bennée <=