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: New pthread_cond_t and hppa.


On Mon, 2017-03-06 at 09:56 -0500, Carlos O'Donell wrote:
> On 03/03/2017 08:18 PM, Torvald Riegel wrote:
> > On Fri, 2017-03-03 at 19:37 -0500, Carlos O'Donell wrote:
> >> Torvald,
> >>
> >> On hppa we had no free word to use for the newer expanded
> >> pthread_cond_t. Since the first four words of pthread_cond_t
> >> are going to be "1, 1, 1, 1" in legacy applications it looks
> >> like I need to reserve at least one of these lowest bit values
> >> for the initializer I use to decide if the old-style structure
> >> has been converted or not.
> >>
> >> What's your take on shaving 1-bit off of __wseq32 or __g1_start32?
> > 
> > That's possible, but __g1_orig_size might be even easier because there
> > are already accessors to it in pthread_cond_common.c.
>  
> Only the first four 32-bit words are set to {1,1,1,1} by the old static
> initializer, so I'd have to rearrange the structure, but it should work.
> 
> My question is mostly along the theoretical lines of: What does it mean
> if I loose a bit on __g1_orig_size?

[CC'ing libc-alpha too]

Loosing the bit shouldn't make a difference, because we're missing 3
bits anyway in __wrefs.  See the definition of
__PTHREAD_COND_MAX_GROUP_SIZE in pthread_cond_common.c.  Maybe we should
add a comment that this needs to be less than or equal to the size that
g1_orig_size can hold.



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