qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] migration: Replace gemu_log with qemu_log
@ 2020-01-14  3:01 Josh Kunz
  2020-01-14  3:01 ` [PATCH 1/4] linux-user: Use `qemu_log' for non-strace logging Josh Kunz
                   ` (5 more replies)
  0 siblings, 6 replies; 21+ messages in thread
From: Josh Kunz @ 2020-01-14  3:01 UTC (permalink / raw)
  To: qemu-devel; +Cc: riku.voipio, laurent, alex.bennee, armbru, Josh Kunz

The linux-user and bsd-user trees both widely use a function called
`gemu_log` (notice the 'g') for miscellaneous and strace logging. This
function predates the newer `qemu_log` function, and has a few drawbacks
compared to `qemu_log`:

  1. Always logs to `stderr`, no logging redirection.
  2. "Miscellaneous" logging cannot be disabled, so it may mix with guest
     logging.
  3. Inconsistency with other parts of the QEMU codebase, and a
     confusing name.

The second issue is especially troubling because it can interfere with
programs that expect to communicate via stderr.

This change introduces two new logging masks to the `qemu_log` subsystem
to support its use for user-mode logging. The `LOG_USER` mask, for
miscellaneous logs, and the `LOG_STRACE` mask for strace-specific
logging. Further, it replaces all existing uses of `gemu_log` with the
appropriate `qemu_log_mask(LOG_{USER,STRACE}, ...)` based on the log
message. To avoid potential backwards incompatibility, this patch series
also introduces a new flag: `-no-force-user-mode-logging`. Since "user
mode" logging was always enabled before this change, by-default the
LOG_USER mask is always set. The flag is provided for users that want to
disable LOG_USER. Hopefully, this flag can be removed, or turned into a
no-op in the futre, and -d/QEMU_LOG can be used directly to enable
user-mode logging if desired.

Unfortunately, this change introduces one small backwards incompatibility
for the linux-user tree: If an explicit `-D` option is provided, or the
`QEMU_LOG_FILENAME`_ environment variable is set, strace and user-mode
logging statements will log to the QEMU log file instead of stderr.

Tested:
  * Built with clang 9 and g++ 8.3
  * `make check` run with clang 9 build 
  * Verified:
    * QEMU_STRACE/-strace still works for linux-user
    * -no-force-user-mode-logging uses QEMU_LOG + `user_mode` or
      `strace` can be set in QEMU_LOG to trigger the appropriate
      logging.

Not tested:
  * Build/logging with bsd-user. I do not have easy access to a BSD system.

Josh Kunz (4):
  linux-user: Use `qemu_log' for non-strace logging
  linux-user: Use `qemu_log' for strace
  linux-user: remove gemu_log from the linux-user tree
  bsd-user: Replace gemu_log with qemu_log

 bsd-user/main.c           |  13 +-
 bsd-user/qemu.h           |   2 -
 bsd-user/strace.c         |  32 ++-
 bsd-user/syscall.c        |  31 ++-
 include/qemu/log.h        |  15 ++
 linux-user/arm/cpu_loop.c |   5 +-
 linux-user/fd-trans.c     |  55 +++--
 linux-user/main.c         |  50 +++-
 linux-user/qemu.h         |   2 -
 linux-user/signal.c       |   3 +-
 linux-user/strace.c       | 479 +++++++++++++++++++-------------------
 linux-user/syscall.c      |  43 ++--
 linux-user/vm86.c         |   3 +-
 util/log.c                |   5 +
 14 files changed, 404 insertions(+), 334 deletions(-)

-- 
2.25.0.rc1.283.g88dfdc4193-goog



^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2020-02-04  2:58 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-14  3:01 [PATCH 0/4] migration: Replace gemu_log with qemu_log Josh Kunz
2020-01-14  3:01 ` [PATCH 1/4] linux-user: Use `qemu_log' for non-strace logging Josh Kunz
2020-01-14  8:28   ` Laurent Vivier
2020-01-14  8:30   ` Laurent Vivier
2020-01-14 10:42   ` Alex Bennée
2020-01-17 19:28     ` Josh Kunz
2020-01-14  3:01 ` [PATCH 2/4] linux-user: Use `qemu_log' for strace Josh Kunz
2020-01-14  9:09   ` Laurent Vivier
2020-01-14 16:15     ` Paolo Bonzini
2020-01-17 19:28     ` Josh Kunz
2020-01-14 10:55   ` Alex Bennée
2020-01-17 19:28     ` Josh Kunz
2020-01-14  3:01 ` [PATCH 3/4] linux-user: remove gemu_log from the linux-user tree Josh Kunz
2020-01-14 10:56   ` Alex Bennée
2020-01-14  3:01 ` [PATCH 4/4] bsd-user: Replace gemu_log with qemu_log Josh Kunz
2020-01-14  3:06 ` [PATCH 0/4] migration: " Warner Losh
2020-01-16 23:13   ` Josh Kunz
2020-01-14 11:02 ` Alex Bennée
2020-01-16 23:12   ` Josh Kunz
2020-01-20 11:36     ` Alex Bennée
2020-02-04  2:55       ` Josh Kunz

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).