qemu/linux-user
Richard Henderson 8f39e01db9 accel/tcg: Call tb_invalidate_phys_page for PAGE_RESET
When PAGE_RESET is set, we are replacing pages with new
content, which means that we need to invalidate existing
cached data, such as TranslationBlocks.  Perform the
reset invalidate while we're doing other invalidates,
which allows us to remove the separate invalidates from
the user-only mmap/munmap/mprotect routines.

In addition, restrict invalidation to PAGE_EXEC pages.
Since cdf7130851, we have validated PAGE_EXEC is present
before translation, which means we can assume that if the
bit is not present, there are no translations to invalidate.

Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
2022-10-26 11:11:28 +10:00
..
aarch64 linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
alpha linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
arm linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
cris linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
generic linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
hexagon linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
hppa linux-user/hppa: Fix setup_sigcontext() 2022-09-27 13:19:05 +02:00
i386 linux-user: i386/signal: support XSAVE/XRSTOR for signal frame fpstate 2022-10-11 10:27:35 +02:00
include linux-user/host/s390: Add vector instructions to host_signal_write() 2022-09-23 15:16:16 +02:00
loongarch64 linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
m68k linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
microblaze linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
mips linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
mips64 linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
nios2 linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
openrisc linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
ppc linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
riscv linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
s390x linux-user/s390x: Save/restore fpc when handling a signal 2022-09-27 13:19:05 +02:00
sh4 target/sh4: Fix TB_FLAG_UNALIGN 2022-10-04 12:33:05 -07:00
sparc linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
x86_64 linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
xtensa linux-user: Provide MADV_* definitions 2022-09-27 09:30:09 +02:00
cpu_loop-common.h linux-user: Log failing executable in EXCP_DUMP() 2022-09-27 09:29:33 +02:00
elfload.c linux-user: Set ELF_BASE_PLATFORM for MIPS 2022-09-27 13:19:05 +02:00
errnos.c.inc linux-user: Simplify host <-> target errno conversion using macros 2021-07-12 21:53:35 +02:00
exit.c linux-user: Don't include gdbstub.h in qemu.h 2021-09-13 20:35:45 +02:00
fd-trans.c linux-user: Fix inotify on aarch64 2022-01-27 16:58:33 +01:00
fd-trans.h fd-trans: Fix race condition on reallocation of the translation table. 2021-07-12 21:54:46 +02:00
flat.h linux-user/: fix some comment spelling errors 2020-09-17 20:39:22 +02:00
flatload.c linux-user/flatload.c: Fix setting of image_info::end_code 2022-07-28 19:17:24 +02:00
ioctls.h linux-user: implement more loop ioctls 2021-11-29 14:54:17 +01:00
linux_loop.h linux-user: implement more loop ioctls 2021-11-29 14:54:17 +01:00
linuxload.c linux-user: Clean up arg_start/arg_end confusion 2022-05-23 08:15:19 +02:00
loader.h linux-user: Split loader-related prototypes into loader.h 2021-09-13 20:35:44 +02:00
main.c plugins: add [pre|post]fork helpers to linux-user 2022-10-06 11:53:41 +01:00
meson.build user: move common-user includes to a subdirectory of {bsd,linux}-user/ 2022-01-12 14:08:29 +01:00
mmap.c accel/tcg: Call tb_invalidate_phys_page for PAGE_RESET 2022-10-26 11:11:28 +10:00
qemu.h linux-user: Honor PT_GNU_STACK 2022-09-06 08:04:25 +01:00
semihost.c semihosting: Remove qemu_semihosting_console_outs 2022-06-28 04:41:20 +05:30
signal-common.h linux-user: Add missing signals in strace output 2022-09-27 09:29:33 +02:00
signal.c linux-user: Add missing signals in strace output 2022-09-27 09:29:33 +02:00
socket.h Supply missing header guards 2019-06-12 13:20:21 +02:00
strace.c linux-user: Lock log around strace 2022-09-27 13:19:05 +02:00
strace.h linux-user: Have do_syscall() use CPUArchState* instead of void* 2022-05-23 22:47:19 +02:00
strace.list linux-user: Add parameters of getrandom() syscall for strace 2022-09-28 22:24:42 +02:00
syscall_defs.h linux-user: Fix struct statfs ABI on loongarch64 2022-10-17 10:28:35 +08:00
syscall_types.h linux-user: implement more loop ioctls 2021-11-29 14:54:17 +01:00
syscall.c linux-user: Implement PI futexes 2022-09-27 13:19:05 +02:00
target_flat.h Supply missing header guards 2019-06-12 13:20:21 +02:00
thunk.c linux-user: Move thunk.c from top-level 2021-12-20 10:12:29 -08:00
trace-events linux-user: Rename user_force_sig tracepoint to match function name 2022-01-18 12:41:42 +01:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
uaccess.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00
uname.c linux-user: Remove pointless CPU{ARCH}State casts 2022-05-23 22:47:20 +02:00
uname.h linux-user: Have do_syscall() use CPUArchState* instead of void* 2022-05-23 22:47:19 +02:00
user-internals.h linux-user: Add partial support for MADV_DONTNEED 2022-06-24 10:00:00 +02:00
user-mmap.h linux-user: Add partial support for MADV_DONTNEED 2022-06-24 10:00:00 +02:00
vm86.c linux-user: Split linux-user internals out of qemu.h 2021-09-13 20:35:45 +02:00