Re: [PATCH] linux-user: Update TASK_UNMAPPED_BASE for aarch64

2020-03-16 Thread Lirong Yuan
Thanks Laurent for the prompt responses! Yes that is exactly where the
value is taken from.

For anyone interested in detailed information of the change, here is the
previous discussion thread:
http://patchwork.ozlabs.org/patch/1242370/

Regards,
Lirong


On Sat, Mar 14, 2020 at 10:34 AM Laurent Vivier  wrote:

> Le 14/03/2020 à 18:01, Aleksandar Markovic a écrit :
> > On Sat, Mar 14, 2020 at 11:45 AM Laurent Vivier 
> wrote:
> >>
> >> Le 14/03/2020 à 04:06, Aleksandar Markovic a écrit :
> >>> On Fri, Mar 13, 2020 at 1:28 AM Lirong Yuan  wrote:
> 
>  This change updates TASK_UNMAPPED_BASE (the base address for guest
> programs) for aarch64. It is needed to allow qemu to work with Thread
> Sanitizer (TSan), which has specific boundary definitions for memory
> mappings on different platforms:
> 
> https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/tsan/rtl/tsan_platform.h
> 
>  Signed-off-by: Lirong Yuan 
>  ---
>   linux-user/mmap.c | 4 
>   1 file changed, 4 insertions(+)
> 
>  diff --git a/linux-user/mmap.c b/linux-user/mmap.c
>  index 8685f02e7e..e378033797 100644
>  --- a/linux-user/mmap.c
>  +++ b/linux-user/mmap.c
>  @@ -184,7 +184,11 @@ static int mmap_frag(abi_ulong real_start,
>   }
> 
>   #if HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 64
>  +#ifdef TARGET_AARCH64
>  +# define TASK_UNMAPPED_BASE  0x55
> >>>
> >>> Hi, Lirong,
> >>>
> >>> Can you point from which line of the file you linked to did you
> >>> arrive to the value 0x55?
> >>>
> >>> Second question: What about other targets?
> >>
> >> Personally, I prefer to not change the value for other targets if it is
> >> not required by someone that had some problems with the current value.
> >>
> >> It needs to be changed carefully and to be well tested after change.
> >>
> >
> > Sure, but again, from where " 0x55" comes from?
>
> The URL is in the comment, but more precisely I guess:
>
>
> https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/tsan/rtl/tsan_platform.h#L164
>
> Thanks,
> Laurent
>
>


Re: [PATCH] linux-user: Update TASK_UNMAPPED_BASE for aarch64

2020-03-14 Thread Laurent Vivier
Le 14/03/2020 à 18:01, Aleksandar Markovic a écrit :
> On Sat, Mar 14, 2020 at 11:45 AM Laurent Vivier  wrote:
>>
>> Le 14/03/2020 à 04:06, Aleksandar Markovic a écrit :
>>> On Fri, Mar 13, 2020 at 1:28 AM Lirong Yuan  wrote:

 This change updates TASK_UNMAPPED_BASE (the base address for guest 
 programs) for aarch64. It is needed to allow qemu to work with Thread 
 Sanitizer (TSan), which has specific boundary definitions for memory 
 mappings on different platforms:
 https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/tsan/rtl/tsan_platform.h

 Signed-off-by: Lirong Yuan 
 ---
  linux-user/mmap.c | 4 
  1 file changed, 4 insertions(+)

 diff --git a/linux-user/mmap.c b/linux-user/mmap.c
 index 8685f02e7e..e378033797 100644
 --- a/linux-user/mmap.c
 +++ b/linux-user/mmap.c
 @@ -184,7 +184,11 @@ static int mmap_frag(abi_ulong real_start,
  }

  #if HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 64
 +#ifdef TARGET_AARCH64
 +# define TASK_UNMAPPED_BASE  0x55
>>>
>>> Hi, Lirong,
>>>
>>> Can you point from which line of the file you linked to did you
>>> arrive to the value 0x55?
>>>
>>> Second question: What about other targets?
>>
>> Personally, I prefer to not change the value for other targets if it is
>> not required by someone that had some problems with the current value.
>>
>> It needs to be changed carefully and to be well tested after change.
>>
> 
> Sure, but again, from where " 0x55" comes from?

The URL is in the comment, but more precisely I guess:

 
https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/tsan/rtl/tsan_platform.h#L164

Thanks,
Laurent




Re: [PATCH] linux-user: Update TASK_UNMAPPED_BASE for aarch64

2020-03-14 Thread Aleksandar Markovic
On Sat, Mar 14, 2020 at 11:45 AM Laurent Vivier  wrote:
>
> Le 14/03/2020 à 04:06, Aleksandar Markovic a écrit :
> > On Fri, Mar 13, 2020 at 1:28 AM Lirong Yuan  wrote:
> >>
> >> This change updates TASK_UNMAPPED_BASE (the base address for guest 
> >> programs) for aarch64. It is needed to allow qemu to work with Thread 
> >> Sanitizer (TSan), which has specific boundary definitions for memory 
> >> mappings on different platforms:
> >> https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/tsan/rtl/tsan_platform.h
> >>
> >> Signed-off-by: Lirong Yuan 
> >> ---
> >>  linux-user/mmap.c | 4 
> >>  1 file changed, 4 insertions(+)
> >>
> >> diff --git a/linux-user/mmap.c b/linux-user/mmap.c
> >> index 8685f02e7e..e378033797 100644
> >> --- a/linux-user/mmap.c
> >> +++ b/linux-user/mmap.c
> >> @@ -184,7 +184,11 @@ static int mmap_frag(abi_ulong real_start,
> >>  }
> >>
> >>  #if HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 64
> >> +#ifdef TARGET_AARCH64
> >> +# define TASK_UNMAPPED_BASE  0x55
> >
> > Hi, Lirong,
> >
> > Can you point from which line of the file you linked to did you
> > arrive to the value 0x55?
> >
> > Second question: What about other targets?
>
> Personally, I prefer to not change the value for other targets if it is
> not required by someone that had some problems with the current value.
>
> It needs to be changed carefully and to be well tested after change.
>

Sure, but again, from where " 0x55" comes from?

> Thanks,
> Laurent



Re: [PATCH] linux-user: Update TASK_UNMAPPED_BASE for aarch64

2020-03-14 Thread Laurent Vivier
Le 14/03/2020 à 04:06, Aleksandar Markovic a écrit :
> On Fri, Mar 13, 2020 at 1:28 AM Lirong Yuan  wrote:
>>
>> This change updates TASK_UNMAPPED_BASE (the base address for guest programs) 
>> for aarch64. It is needed to allow qemu to work with Thread Sanitizer 
>> (TSan), which has specific boundary definitions for memory mappings on 
>> different platforms:
>> https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/tsan/rtl/tsan_platform.h
>>
>> Signed-off-by: Lirong Yuan 
>> ---
>>  linux-user/mmap.c | 4 
>>  1 file changed, 4 insertions(+)
>>
>> diff --git a/linux-user/mmap.c b/linux-user/mmap.c
>> index 8685f02e7e..e378033797 100644
>> --- a/linux-user/mmap.c
>> +++ b/linux-user/mmap.c
>> @@ -184,7 +184,11 @@ static int mmap_frag(abi_ulong real_start,
>>  }
>>
>>  #if HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 64
>> +#ifdef TARGET_AARCH64
>> +# define TASK_UNMAPPED_BASE  0x55
> 
> Hi, Lirong,
> 
> Can you point from which line of the file you linked to did you
> arrive to the value 0x55?
> 
> Second question: What about other targets?

Personally, I prefer to not change the value for other targets if it is
not required by someone that had some problems with the current value.

It needs to be changed carefully and to be well tested after change.

Thanks,
Laurent



Re: [PATCH] linux-user: Update TASK_UNMAPPED_BASE for aarch64

2020-03-13 Thread Aleksandar Markovic
On Fri, Mar 13, 2020 at 1:28 AM Lirong Yuan  wrote:
>
> This change updates TASK_UNMAPPED_BASE (the base address for guest programs) 
> for aarch64. It is needed to allow qemu to work with Thread Sanitizer (TSan), 
> which has specific boundary definitions for memory mappings on different 
> platforms:
> https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/tsan/rtl/tsan_platform.h
>
> Signed-off-by: Lirong Yuan 
> ---
>  linux-user/mmap.c | 4 
>  1 file changed, 4 insertions(+)
>
> diff --git a/linux-user/mmap.c b/linux-user/mmap.c
> index 8685f02e7e..e378033797 100644
> --- a/linux-user/mmap.c
> +++ b/linux-user/mmap.c
> @@ -184,7 +184,11 @@ static int mmap_frag(abi_ulong real_start,
>  }
>
>  #if HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 64
> +#ifdef TARGET_AARCH64
> +# define TASK_UNMAPPED_BASE  0x55

Hi, Lirong,

Can you point from which line of the file you linked to did you
arrive to the value 0x55?

Second question: What about other targets?

Regards,
Aleksandar

> +#else
>  # define TASK_UNMAPPED_BASE  (1ul << 38)
> +#endif
>  #else
>  # define TASK_UNMAPPED_BASE  0x4000
>  #endif
> --
> 2.25.1.481.gfbce0eb801-goog
>
>



Re: [PATCH] linux-user: Update TASK_UNMAPPED_BASE for aarch64

2020-03-13 Thread Lirong Yuan
On Fri, Mar 13, 2020 at 2:45 PM Laurent Vivier  wrote:

> Le 13/03/2020 à 01:28, Lirong Yuan a écrit :
> > This change updates TASK_UNMAPPED_BASE (the base address for guest
> programs) for aarch64. It is needed to allow qemu to work with Thread
> Sanitizer (TSan), which has specific boundary definitions for memory
> mappings on different platforms:
> >
> https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/tsan/rtl/tsan_platform.h
> >
> > Signed-off-by: Lirong Yuan 
> > ---
> >  linux-user/mmap.c | 4 
> >  1 file changed, 4 insertions(+)
> >
> > diff --git a/linux-user/mmap.c b/linux-user/mmap.c
> > index 8685f02e7e..e378033797 100644
> > --- a/linux-user/mmap.c
> > +++ b/linux-user/mmap.c
> > @@ -184,7 +184,11 @@ static int mmap_frag(abi_ulong real_start,
> >  }
> >
> >  #if HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 64
> > +#ifdef TARGET_AARCH64
> > +# define TASK_UNMAPPED_BASE  0x55
> > +#else
> >  # define TASK_UNMAPPED_BASE  (1ul << 38)
> > +#endif
> >  #else
> >  # define TASK_UNMAPPED_BASE  0x4000
> >  #endif
> >
>
> Applied to my linux-user branch.
>
> Thanks,
> Laurent
>

Great, thanks a lot! :)


Re: [PATCH] linux-user: Update TASK_UNMAPPED_BASE for aarch64

2020-03-13 Thread Laurent Vivier
Le 13/03/2020 à 01:28, Lirong Yuan a écrit :
> This change updates TASK_UNMAPPED_BASE (the base address for guest programs) 
> for aarch64. It is needed to allow qemu to work with Thread Sanitizer (TSan), 
> which has specific boundary definitions for memory mappings on different 
> platforms:
> https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/tsan/rtl/tsan_platform.h
> 
> Signed-off-by: Lirong Yuan 
> ---
>  linux-user/mmap.c | 4 
>  1 file changed, 4 insertions(+)
> 
> diff --git a/linux-user/mmap.c b/linux-user/mmap.c
> index 8685f02e7e..e378033797 100644
> --- a/linux-user/mmap.c
> +++ b/linux-user/mmap.c
> @@ -184,7 +184,11 @@ static int mmap_frag(abi_ulong real_start,
>  }
>  
>  #if HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 64
> +#ifdef TARGET_AARCH64
> +# define TASK_UNMAPPED_BASE  0x55
> +#else
>  # define TASK_UNMAPPED_BASE  (1ul << 38)
> +#endif
>  #else
>  # define TASK_UNMAPPED_BASE  0x4000
>  #endif
> 

Applied to my linux-user branch.

Thanks,
Laurent



Re: [PATCH] linux-user: Update TASK_UNMAPPED_BASE for aarch64

2020-03-13 Thread Laurent Vivier
Le 13/03/2020 à 01:28, Lirong Yuan a écrit :
> This change updates TASK_UNMAPPED_BASE (the base address for guest programs) 
> for aarch64. It is needed to allow qemu to work with Thread Sanitizer (TSan), 
> which has specific boundary definitions for memory mappings on different 
> platforms:
> https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/tsan/rtl/tsan_platform.h
> 
> Signed-off-by: Lirong Yuan 
> ---
>  linux-user/mmap.c | 4 
>  1 file changed, 4 insertions(+)
> 
> diff --git a/linux-user/mmap.c b/linux-user/mmap.c
> index 8685f02e7e..e378033797 100644
> --- a/linux-user/mmap.c
> +++ b/linux-user/mmap.c
> @@ -184,7 +184,11 @@ static int mmap_frag(abi_ulong real_start,
>  }
>  
>  #if HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 64
> +#ifdef TARGET_AARCH64
> +# define TASK_UNMAPPED_BASE  0x55
> +#else
>  # define TASK_UNMAPPED_BASE  (1ul << 38)
> +#endif
>  #else
>  # define TASK_UNMAPPED_BASE  0x4000
>  #endif
> 

Reviewed-by: Laurent Vivier 



[PATCH] linux-user: Update TASK_UNMAPPED_BASE for aarch64

2020-03-12 Thread Lirong Yuan
This change updates TASK_UNMAPPED_BASE (the base address for guest programs) 
for aarch64. It is needed to allow qemu to work with Thread Sanitizer (TSan), 
which has specific boundary definitions for memory mappings on different 
platforms:
https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/tsan/rtl/tsan_platform.h

Signed-off-by: Lirong Yuan 
---
 linux-user/mmap.c | 4 
 1 file changed, 4 insertions(+)

diff --git a/linux-user/mmap.c b/linux-user/mmap.c
index 8685f02e7e..e378033797 100644
--- a/linux-user/mmap.c
+++ b/linux-user/mmap.c
@@ -184,7 +184,11 @@ static int mmap_frag(abi_ulong real_start,
 }
 
 #if HOST_LONG_BITS == 64 && TARGET_ABI_BITS == 64
+#ifdef TARGET_AARCH64
+# define TASK_UNMAPPED_BASE  0x55
+#else
 # define TASK_UNMAPPED_BASE  (1ul << 38)
+#endif
 #else
 # define TASK_UNMAPPED_BASE  0x4000
 #endif
-- 
2.25.1.481.gfbce0eb801-goog