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: PowerPC: Add DSO and TAR fields to TLS


On 12/12/2013 07:49 AM, Adhemerval Zanella wrote:
> Hi all,
> 
> This patch add three fields in powerpc tcb: one for tar save (ISA 2.07) and
> two for DSO (Dynamic System Optimizer, an IBM product). Tested on PPC32,
> PPC64, PPC64LE. Ok to apply?

Looks good to me as long as nothing else relies on the size of the DTV
and that offsets into the DTV are negative from the thread pointer
such that adding things to the front of the structure is appropriate.

I don't think anything relies on DTV size, and the Power TLS ABI does
indeed use negative offsets from the thread pointer.

Correct me if I'm wrong.
 
> ---
> 
> nptl/ChangeLog:
> 
> 2011-12-12  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
> 
> 	* sysdeps/powerpc/tls.h (struct tcbhead_t): Add DSO and TAR fields.
> 	* nptl/sysdeps/powerpc/tcb-offsets.sym: Likewise.
> 
> --
> 
> diff --git a/nptl/sysdeps/powerpc/tcb-offsets.sym b/nptl/sysdeps/powerpc/tcb-offsets.sym
> index 8ac133d..eac5b5c 100644
> --- a/nptl/sysdeps/powerpc/tcb-offsets.sym
> +++ b/nptl/sysdeps/powerpc/tcb-offsets.sym
> @@ -15,6 +15,9 @@ MULTIPLE_THREADS_OFFSET		thread_offsetof (header.multiple_threads)
>  PID				thread_offsetof (pid)
>  TID				thread_offsetof (tid)
>  POINTER_GUARD			(offsetof (tcbhead_t, pointer_guard) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
> +TAR_SAVE			(offsetof (tcbhead_t, tar_save) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
> +DSO_SLOT1			(offsetof (tcbhead_t, dso_slot1) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
> +DSO_SLOT2			(offsetof (tcbhead_t, dso_slot2) - TLS_TCB_OFFSET - sizeof (tcbhead_t))
>  #ifndef __ASSUME_PRIVATE_FUTEX
>  PRIVATE_FUTEX_OFFSET		thread_offsetof (header.private_futex)
>  #endif
> diff --git a/nptl/sysdeps/powerpc/tls.h b/nptl/sysdeps/powerpc/tls.h
> index c21c027..31329c7 100644
> --- a/nptl/sysdeps/powerpc/tls.h
> +++ b/nptl/sysdeps/powerpc/tls.h
> @@ -61,6 +61,11 @@ typedef union dtv
>     are private.  */
>  typedef struct
>  {
> +  /* Reservation for Dynamic System Optimizer ABI.  */
> +  uintptr_t dso_slot2;
> +  uintptr_t dso_slot1;
> +  /* Reservation for tar register (ISA 2.07).  */
> +  uintptr_t tar_save;
>    /* GCC split stack support.  */
>    void *__private_ss;
>    /* Reservation for the Event-Based Branching ABI.  */
> 


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