Hi, Le 16/02/2021 à 17:16, Peter Maydell a écrit : > From: Richard Henderson <richard.hender...@linaro.org> > > Record whether the backing page is anonymous, or if it has file > backing. This will allow us to get close to the Linux AArch64 > ABI for MTE, which allows tag memory only on ram-backed VMAs. > > The real ABI allows tag memory on files, when those files are > on ram-backed filesystems, such as tmpfs. We will not be able > to implement that in QEMU linux-user. > > Thankfully, anonymous memory for malloc arenas is the primary > consumer of this feature, so this restricted version should > still be of use. > > Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> > Signed-off-by: Richard Henderson <richard.hender...@linaro.org> > Message-id: 20210212184902.1251044-3-richard.hender...@linaro.org > Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> > --- > include/exec/cpu-all.h | 2 ++ > linux-user/mmap.c | 3 +++ > 2 files changed, 5 insertions(+) > > diff --git a/include/exec/cpu-all.h b/include/exec/cpu-all.h > index 6421892830c..aedf5345449 100644 > --- a/include/exec/cpu-all.h > +++ b/include/exec/cpu-all.h > @@ -267,6 +267,8 @@ extern intptr_t qemu_host_page_mask; > #define PAGE_WRITE_INV 0x0020 > /* For use with page_set_flags: page is being replaced; target_data cleared. > */ > #define PAGE_RESET 0x0040 > +/* For linux-user, indicates that the page is MAP_ANON. */ > +#define PAGE_ANON 0x0080 > > #if defined(CONFIG_BSD) && defined(CONFIG_USER_ONLY) > /* FIXME: Code that sets/uses this is broken and needs to go away. */ > diff --git a/linux-user/mmap.c b/linux-user/mmap.c > index ac0624f31ac..c52b60482e1 100644 > --- a/linux-user/mmap.c > +++ b/linux-user/mmap.c > @@ -599,6 +599,9 @@ abi_long target_mmap(abi_ulong start, abi_ulong len, int > target_prot, > } > } > the_end1: > + if (flags & MAP_ANONYMOUS) { > + page_flags |= PAGE_ANON; > + } > page_flags |= PAGE_RESET; > page_set_flags(start, start + len, page_flags); > the_end: >
Richard, the new flag seems to break something. See https://bugs.launchpad.net/qemu/+bug/1922617 Thanks, Laurent