[PATCH v15 7/8] nptl: Remove the rseq area from 'struct pthread'

Florian Weimer fweimer@redhat.com
Wed Jan 8 09:25:56 GMT 2025


* Michael Jeanson:

> The rseq extensible ABI implementation moved the rseq area to the 'extra
> TLS' block, remove the unused 'rseq_area' member of 'struct pthread'.
>
> Signed-off-by: Michael Jeanson <mjeanson@efficios.com>
> Reviewed-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
> ---
>  nptl/descr.h | 22 +++-------------------
>  1 file changed, 3 insertions(+), 19 deletions(-)
>
> diff --git a/nptl/descr.h b/nptl/descr.h
> index d0d30929e2..c60ca137d4 100644
> --- a/nptl/descr.h
> +++ b/nptl/descr.h
> @@ -407,27 +407,11 @@ struct pthread
>    /* getrandom vDSO per-thread opaque state.  */
>    void *getrandom_buf;
>  
> -  /* rseq area registered with the kernel.  Use a custom definition
> -     here to isolate from kernel struct rseq changes.  The
> -     implementation of sched_getcpu needs acccess to the cpu_id field;
> -     the other fields are unused and not included here.  */
> -  union
> -  {
> -    struct
> -    {
> -      uint32_t cpu_id_start;
> -      uint32_t cpu_id;
> -      uint64_t rseq_cs;
> -      uint32_t flags;
> -    };
> -    char pad[32];		/* Original rseq area size.  */
> -  } rseq_area __attribute__ ((aligned (32)));
> -
>    /* Amount of end padding, if any, in this structure.
> -     This definition relies on rseq_area being last.  */
> +     This definition relies on getrandom_buf being last.  */
>  #define PTHREAD_STRUCT_END_PADDING \
> -  (sizeof (struct pthread) - offsetof (struct pthread, rseq_area) \
> -   + sizeof ((struct pthread) {}.rseq_area))
> +  (sizeof (struct pthread) - offsetof (struct pthread, getrandom_buf) \
> +   + sizeof ((struct pthread) {}.getrandom_buf))
>  } __attribute ((aligned (TCB_ALIGNMENT)));
>  
>  static inline bool

This looks okay to me too.

Reviewed-by: Florian Weimer <fweimer@redhat.com>

Thanks,
Florian



More information about the Libc-alpha mailing list