linux-user: log page table changes under -d page

The CPU_LOG_PAGE flag is woefully underused and could stand to do
extra duty tracking page changes. If the user doesn't want to see the
details as things change they still have the tracepoints available.

We push the locking into log_page_dump and pass a reason for the
banner text.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
Message-Id: <20191205122518.10010-5-alex.bennee@linaro.org>
This commit is contained in:
Alex Bennée 2019-12-05 12:25:15 +00:00
parent d0e165ae2b
commit 10d0d505de
4 changed files with 11 additions and 12 deletions

View file

@ -69,15 +69,14 @@ static inline void log_disas(void *code, unsigned long size)
#if defined(CONFIG_USER_ONLY)
/* page_dump() output to the log file: */
static inline void log_page_dump(void)
static inline void log_page_dump(const char *operation)
{
QemuLogFile *logfile;
rcu_read_lock();
logfile = atomic_rcu_read(&qemu_logfile);
FILE *logfile = qemu_log_lock();
if (logfile) {
page_dump(logfile->fd);
qemu_log("page layout changed following %s\n", operation);
page_dump(logfile);
}
rcu_read_unlock();
qemu_log_unlock(logfile);
}
#endif
#endif