Re: [PATCH 0/4] Make the qemu_logfile handle thread safe.

2019-11-07 Thread Alex Bennée


Robert Foley  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.

I've finished my pass. Looks pretty good - a few minor comments around
the persistence of the read lock and some minor stylistic nits.

>
> Robert Foley (4):
>   Add a mutex to guarantee single writer to qemu_logfile handle.
>   Add use of RCU for qemu_logfile.
>   qemu_log_lock/unlock now preserves the qemu_logfile handle.
>   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| 51 +++---
>  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 |  7 +--
>  target/unicore32/translate.c  |  4 +-
>  tcg/tcg.c | 28 ++
>  tests/test-logging.c  | 74 ++
>  util/log.c| 99 ---
>  18 files changed, 273 insertions(+), 69 deletions(-)


--
Alex Bennée



Re: [PATCH 0/4] Make the qemu_logfile handle thread safe.

2019-11-07 Thread no-reply
Patchew URL: 
https://patchew.org/QEMU/20191107142613.2379-1-robert.fo...@linaro.org/



Hi,

This series failed the docker-quick@centos7 build test. Please find the testing 
commands and
their output below. If you have Docker installed, you can probably reproduce it
locally.

=== TEST SCRIPT BEGIN ===
#!/bin/bash
make docker-image-centos7 V=1 NETWORK=1
time make docker-test-quick@centos7 SHOW_ENV=1 J=14 NETWORK=1
=== TEST SCRIPT END ===

  TESTcheck-unit: tests/test-hbitmap
  TESTcheck-unit: tests/test-bdrv-drain
test-bdrv-drain: /tmp/qemu-test/src/util/async.c:283: aio_ctx_finalize: 
Assertion `!qemu_lockcnt_count(>list_lock)' failed.
ERROR - too few tests run (expected 42, got 17)
make: *** [check-unit] Error 1
make: *** Waiting for unfinished jobs
  TESTiotest-qcow2: 013
  TESTiotest-qcow2: 017
---
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['sudo', '-n', 'docker', 'run', 
'--label', 'com.qemu.instance.uuid=eaa57e3449fb433ebde0eceb9d05b6c2', '-u', 
'1003', '--security-opt', 'seccomp=unconfined', '--rm', '-e', 'TARGET_LIST=', 
'-e', 'EXTRA_CONFIGURE_OPTS=', '-e', 'V=', '-e', 'J=14', '-e', 'DEBUG=', '-e', 
'SHOW_ENV=1', '-e', 'CCACHE_DIR=/var/tmp/ccache', '-v', 
'/home/patchew2/.cache/qemu-docker-ccache:/var/tmp/ccache:z', '-v', 
'/var/tmp/patchew-tester-tmp-xw43l1zq/src/docker-src.2019-11-07-09.34.09.25341:/var/tmp/qemu:z,ro',
 'qemu:centos7', '/var/tmp/qemu/run', 'test-quick']' returned non-zero exit 
status 2.
filter=--filter=label=com.qemu.instance.uuid=eaa57e3449fb433ebde0eceb9d05b6c2
make[1]: *** [docker-run] Error 1
make[1]: Leaving directory `/var/tmp/patchew-tester-tmp-xw43l1zq/src'
make: *** [docker-run-test-quick@centos7] Error 2

real12m39.833s
user0m8.137s


The full log is available at
http://patchew.org/logs/20191107142613.2379-1-robert.fo...@linaro.org/testing.docker-quick@centos7/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-de...@redhat.com

[PATCH 0/4] Make the qemu_logfile handle thread safe.

2019-11-07 Thread Robert Foley
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.

Robert Foley (4):
  Add a mutex to guarantee single writer to qemu_logfile handle.
  Add use of RCU for qemu_logfile.
  qemu_log_lock/unlock now preserves the qemu_logfile handle.
  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| 51 +++---
 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 |  7 +--
 target/unicore32/translate.c  |  4 +-
 tcg/tcg.c | 28 ++
 tests/test-logging.c  | 74 ++
 util/log.c| 99 ---
 18 files changed, 273 insertions(+), 69 deletions(-)

-- 
2.17.1