Re: nptl 0.30

"dada1" <[email protected]>
Newsgroups gmane.comp.lib.phil
Message-ID <05f601c2edf0$05c70c20$760010ac@edumazet>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> dada1 wrote:
>
> > File sysdeps/pthread/pthread_cond_wait.c, line 61
> >
> > lll_futex_wake (futex, INT_MAX);
> > /* We are done.  */
> > lll_mutex_unlock (cbuffer->cond->__data.__lock);
>
> That is in a cancellation handler.  And I used that order deliberately
> to enable the canceled thread to resolve as quickly as possible.  If it
> makes people happy I can revert it.  It's of no real consequence since
> in all probability, if any thread gets awaken, it's most of the time put
> the sleep again.
>
> Provide some benchmarking.
>

Ulrich, I was speaking of your habit to such constructs. I chose to talk
about cancellation because this is what I saw at first code inspection.
I wont provide benchmark as I dont use cancellation myself.

About performance, I am 100% sure your order CANT be faster... awaken
threads put to sleep again just blow the CPU caches for nothing (each thread
has its own stack)

I have a big threaded application that benefit a huge gain just by inverting
the unlock/wake. This is because the linux kernel *always* preempt the
current thread in favor of the awaken thread(s). The number of context
switchs came from 11000 to 3000 per second.

You already did the change I suggested in
sysdeps/unix/sysv/linux/i386/i486/pthread_cond_broadcast.S

Why dont you do the same in sysdeps/pthread/pthread_cond_broadcast.c ?
If this file is not used at all, then suppress it, we wont loose time to
inspect the source code and bother you.

Eric
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.