Hi,
Le 16/02/2021 à 17:16, Peter Maydell a écrit :
> From: Richard Henderson <richard.henderson@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.maydell@linaro.org>
> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
> Message-id: 20210212184902.1251044-3-richard.henderson@linaro.org
> Signed-off-by: Peter Maydell <peter.maydell@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