[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 01/39] util/log: Drop manual log buffering
From: |
Richard Henderson |
Subject: |
[PATCH v2 01/39] util/log: Drop manual log buffering |
Date: |
Sat, 26 Mar 2022 07:24:49 -0600 |
This buffering was introduced during the Paleozoic: 9fa3e853531.
There has never been an explanation as to why we may not allow
glibc to allocate the file buffer itself. We certainly have
many other uses of mmap and malloc during user-only startup,
so presumably whatever the issue was, it has been fixed during
the preceeding 18 years.
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
include/qemu/log.h | 1 -
bsd-user/main.c | 1 -
linux-user/main.c | 1 -
util/log.c | 21 ++++-----------------
4 files changed, 4 insertions(+), 20 deletions(-)
diff --git a/include/qemu/log.h b/include/qemu/log.h
index 5739c7e6d8..ed59ebd4a2 100644
--- a/include/qemu/log.h
+++ b/include/qemu/log.h
@@ -148,7 +148,6 @@ typedef struct QEMULogItem {
extern const QEMULogItem qemu_log_items[];
void qemu_set_log(int log_flags);
-void qemu_log_needs_buffers(void);
void qemu_set_log_filename(const char *filename, Error **errp);
void qemu_set_dfilter_ranges(const char *ranges, Error **errp);
bool qemu_log_in_addr_range(uint64_t addr);
diff --git a/bsd-user/main.c b/bsd-user/main.c
index 88d347d05e..08f43af235 100644
--- a/bsd-user/main.c
+++ b/bsd-user/main.c
@@ -405,7 +405,6 @@ int main(int argc, char **argv)
}
/* init debug */
- qemu_log_needs_buffers();
qemu_set_log_filename(log_file, &error_fatal);
if (log_mask) {
int mask;
diff --git a/linux-user/main.c b/linux-user/main.c
index fbc9bcfd5f..2b06350688 100644
--- a/linux-user/main.c
+++ b/linux-user/main.c
@@ -679,7 +679,6 @@ int main(int argc, char **argv, char **envp)
log_mask = last_log_mask | (enable_strace ? LOG_STRACE : 0);
if (log_mask) {
- qemu_log_needs_buffers();
qemu_set_log(log_mask);
}
diff --git a/util/log.c b/util/log.c
index 2ee1500bee..ffa66a267e 100644
--- a/util/log.c
+++ b/util/log.c
@@ -72,8 +72,6 @@ static void qemu_logfile_free(QemuLogFile *logfile)
g_free(logfile);
}
-static bool log_uses_own_buffers;
-
/* enable or disable low levels log */
void qemu_set_log(int log_flags)
{
@@ -121,29 +119,18 @@ void qemu_set_log(int log_flags)
assert(!is_daemonized());
logfile->fd = stderr;
}
- /* must avoid mmap() usage of glibc by setting a buffer "by hand" */
- if (log_uses_own_buffers) {
- static char logfile_buf[4096];
- setvbuf(logfile->fd, logfile_buf, _IOLBF, sizeof(logfile_buf));
- } else {
#if defined(_WIN32)
- /* Win32 doesn't support line-buffering, so use unbuffered output.
*/
- setvbuf(logfile->fd, NULL, _IONBF, 0);
+ /* Win32 doesn't support line-buffering, so use unbuffered output. */
+ setvbuf(logfile->fd, NULL, _IONBF, 0);
#else
- setvbuf(logfile->fd, NULL, _IOLBF, 0);
+ setvbuf(logfile->fd, NULL, _IOLBF, 0);
#endif
- log_append = 1;
- }
+ log_append = 1;
qatomic_rcu_set(&qemu_logfile, logfile);
}
}
-void qemu_log_needs_buffers(void)
-{
- log_uses_own_buffers = true;
-}
-
/*
* Allow the user to include %d in their logfile which will be
* substituted with the current PID. This is useful for debugging many
--
2.25.1
- [PATCH for-7.1 v2 00/39] Logging cleanup and per-thread logfiles, Richard Henderson, 2022/03/26
- [PATCH v2 2/8] linux-user/nios2: Fix clone child return, Richard Henderson, 2022/03/26
- [PATCH v2 1/8] linux-user/nios2: Hoist pc advance to the top of EXCP_TRAP, Richard Henderson, 2022/03/26
- [PATCH v2 01/39] util/log: Drop manual log buffering,
Richard Henderson <=
- [PATCH v2 3/8] linux-user/nios2: Drop syscall 0 "workaround", Richard Henderson, 2022/03/26
- [PATCH v2 02/39] target/hexagon: Remove qemu_set_log in hexagon_translate_init, Richard Henderson, 2022/03/26
- [PATCH v2 03/39] util/log: Return bool from qemu_set_log_filename, Richard Henderson, 2022/03/26
- [PATCH v2 4/8] linux-user/nios2: Adjust error return, Richard Henderson, 2022/03/26
- [PATCH v2 05/39] os-posix: Use qemu_log_enabled, Richard Henderson, 2022/03/26
- [PATCH v2 5/8] linux-user/nios2: Handle special qemu syscall return values, Richard Henderson, 2022/03/26
- [PATCH v2 6/8] linux-user/nios2: Remove do_sigreturn, Richard Henderson, 2022/03/26
- [PATCH v2 04/39] util/log: Pass Error pointer to qemu_set_log, Richard Henderson, 2022/03/26
- [PATCH v2 06/39] util/log: Move qemu_log_lock, qemu_log_unlock out of line, Richard Henderson, 2022/03/26
- [PATCH v2 7/8] linux-user/nios2: Use QEMU_ESIGRETURN from do_rt_sigreturn, Richard Henderson, 2022/03/26