This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC 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] libgcj enable hash_syncronization & pthread_slow on darwin


Andreas Tobler wrote:

Andrew Pinski wrote:

Bryce McKinlay wrote:


Andreas Tobler wrote:


the attached patch enables enable_hash_synchronization_default and slow_pthread_self on darwin. The hash sync part is necessary to get some swing stuff working. Without we hang forever.
About the benefit of slow_pthread_self I'm not quite sure. Maybe it would help on a G5?




I do wonder if slow_pthread_self is neccessary on darwin. Presumably/hopefully their ABI has a fast way to get the Thread ID? If so then then the slow_pthread_self implementation may actually end up being slower than a pthread_self() call, because it requires a read barrier. We plan to remove slow_pthread_self eventually for Linux, once most people are using nptl.

Otherwise, this patch looks good.


Thanks!

I give it a test run without slow_pthread_self.
Is there an easy method to check the performance?




Here is how pthread_self done on PPC Darwin:
on G3 (750) and G4(74xx):
 a system call so it calls into the kernel.

on G5 (970):
one instruction, a move from special register which can be accessed from
user


Ok, in favour of G5 I will leave the slow_pthread_self.
I ran some tests here and did not encounter a significant delay with pthread_self(). Well, could be that I measured with a wrong approach.


I took this app: http://www.cs.arizona.edu/sumatra/toba/benchmarks.html

Ok, for mainline without enabling slow_pthread_self?


Sounds good, thanks for testing this out. The patch is approved.

Regards

Bryce.


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