This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH v2 3/3] nptl: Define __PTHREAD_MUTEX_{NUSERS_AFTER_KIND,USE_UNION}



On 06/11/2017 12:18, H.J. Lu wrote:
> On Fri, Nov 3, 2017 at 8:25 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Thu, Nov 2, 2017 at 5:14 AM, Adhemerval Zanella
>> <adhemerval.zanella@linaro.org> wrote:
>>> Ping.
>>>
>>> On 26/10/2017 15:14, Adhemerval Zanella wrote:
>>>> Changes from previous version:
>>>>
>>>>   - Fixed __nusers placement for __PTHREAD_MUTEX_NUSERS_AFTER_KIND.
>>>>   - Fixed typos.
>>>>
>>>> ---
>>>>
>>>> This patch adds two new internal defines to set the internal
>>>> pthread_mutex_t layout required by the supported ABIS:
>>>>
>>>>   1. __PTHREAD_MUTEX_NUSERS_AFTER_KIND which control whether to define
>>>>      __nusers fields before or after __kind.  The preferred value for
>>>>      is 0 for new ports and it sets __nusers before __kind.
>>>>
>>>>   2. __PTHREAD_MUTEX_USE_UNION which control whether internal __spins and
>>>>      __list members will be place inside an union for linuxthreads
>>>>      compatibility.  The preferred value is 0 for ports and it sets
>>>>      to not use an union to define both fields.
>>>>
>>>> It fixes the wrong offsets value for __kind value on x86_64-linux-gnu-x32.
>>>> Checked with a make check run-built-tests=no on all afected ABIs.
>>>>
>>>> Signed-off-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
>>>>
>>>>       [BZ #22298]
>>>>       * nptl/allocatestack.c (allocate_stack): Check if
>>>>       __PTHREAD_MUTEX_HAVE_PREV is non-zero, instead if
>>>>       __PTHREAD_MUTEX_HAVE_PREV is defined.
>>>>       * nptl/descr.h (pthread): Likewise.
>>>>       * nptl/nptl-init.c (__pthread_initialize_minimal_internal):
>>>>       Likewise.
>>>>       * nptl/pthread_create.c (START_THREAD_DEFN): Likewise.
>>>>       * sysdeps/nptl/fork.c (__libc_fork): Likewise.
>>>>       * sysdeps/nptl/pthread.h (PTHREAD_MUTEX_INITIALIZER): Likewise.
>>>>       * sysdeps/nptl/bits/thread-shared-types.h
>>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>>       defines.
>>>>       (__pthread_internal_list): Check __PTHREAD_MUTEX_USE_UNION instead
>>>>       of __WORDSIZE for internal layout.
>>>>       (__pthread_mutex_s): Check __PTHREAD_MUTEX_NUSERS_AFTER_KIND instead
>>>>       of __WORDSIZE for internal __nusers layout and __PTHREAD_MUTEX_USE_UNION
>>>>       instead of __WORDSIZE whether to use an union for __spins and __list
>>>>       fields.
>>>>       (__PTHREAD_MUTEX_HAVE_PREV): Define also for __PTHREAD_MUTEX_USE_UNION
>>>>       case.
>>>>       * sysdeps/aarch64/nptl/bits/pthreadtypes-arch.h
>>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>>       defines.
>>>>       * sysdeps/alpha/nptl/bits/pthreadtypes-arch.h
>>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>>       defines.
>>>>       * sysdeps/arm/nptl/bits/pthreadtypes-arch.h
>>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>>       defines.
>>>>       * sysdeps/hppa/nptl/bits/pthreadtypes-arch.h
>>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>>       defines.
>>>>       * sysdeps/ia64/nptl/bits/pthreadtypes-arch.h
>>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>>       defines.
>>>>       * sysdeps/m68k/nptl/bits/pthreadtypes-arch.h
>>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>>       defines.
>>>>       * sysdeps/microblaze/nptl/bits/pthreadtypes-arch.h
>>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>>       defines.
>>>>       * sysdeps/mips/nptl/bits/pthreadtypes-arch.h
>>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>>       defines.
>>>>       * sysdeps/nios2/nptl/bits/pthreadtypes-arch.h
>>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>>       defines.
>>>>       * sysdeps/powerpc/nptl/bits/pthreadtypes-arch.h
>>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>>       defines.
>>>>       * sysdeps/s390/nptl/bits/pthreadtypes-arch.h
>>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>>       defines.
>>>>       * sysdeps/sh/nptl/bits/pthreadtypes-arch.h
>>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>>       defines.
>>>>       * sysdeps/sparc/nptl/bits/pthreadtypes-arch.h
>>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>>       defines.
>>>>       * sysdeps/tile/nptl/bits/pthreadtypes-arch.h
>>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>>       defines.
>>>>       * sysdeps/x86/nptl/bits/pthreadtypes-arch.h
>>>>       (__PTHREAD_MUTEX_NUSERS_AFTER_KIND, __PTHREAD_MUTEX_USE_UNION): New
>>>>       defines.
> 
>> LGTM.
>>
>> Thanks.
>>
>> --
>> H.J.
> 
> Are you going to check in your patches to fix BZ #22298?
> 

I think the onyl missing point for the patchset was Florian said 
he need to double-check the coverage is adequate [1].

[1] https://sourceware.org/ml/libc-alpha/2017-11/msg00046.html


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]