qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PULL 02/40] linux-user: Introduce PAGE_ANON


From: Laurent Vivier
Subject: Re: [PULL 02/40] linux-user: Introduce PAGE_ANON
Date: Tue, 6 Apr 2021 16:45:17 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.8.1

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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]