Massive performance loss from OS::sleep hack

Kris Kennaway kris at FreeBSD.org
Wed Sep 19 03:16:57 PDT 2007


Kurt Miller wrote:
> On Tuesday 18 September 2007 03:17:14 pm Kris Kennaway wrote:
>> Kurt Miller wrote:
>>> David Xu confirmed for me that pthread_yield() does give some
>>> time to lower priority threads on 7.0 using thr. Attached and inline
>>> are two patches for the 1.5 port that is how I suggest the issue be
>>> addressed.
>>>
>>> For 7.0 and up default UseThreadPriorities to true and always
>>> use pthread_yield(). For < 7.0 default UseThreadPriorities to
>>> false and conditionally use pthread_yield()/os_sleep(). User's
>>> can toggle UseThreadPriorities with the command line argument
>>> -XX:+UseThreadPriorities
>> Do we know that 6.x requires the old behaviour?  Maybe it can default to
>> on there too.  Otherwise this looks good to my eyeball (but the
>> DEFAULT_LD_LIBRARY_PATH change looks unrelated)
>>
>> -#define DEFAULT_LD_LIBRARY_PATH "/usr/lib" /* See ld.so.1(1) */
>> +#define DEFAULT_LD_LIBRARY_PATH "/usr/lib:/usr/local/lib" /* See
>> ld.so.1(1)
> 
> Yea I messed up the DEFAULT_LD_LIBRARY_PATH part. I didn't intend
> to change that segment of the existing os_bsd.cpp patch.
> 
> Regarding 6.x it either needs UseThreadPriorities defaulted to false
> or the os_sleep hack. After discussing the options with Daniel we
> agree that defaulting UseThreadPriorities to false and eliminating
> the os_sleep hack for all versions is the most consitant approach.
> 
> The following is a CVS diff of ports/java/jdk15 that updates the
> port to fix the performance issue plus an alternative method
> to setting DEFAULT_LD_LIBRARY_PATH without patching and
> substituting it:

This looks good to me, thanks!

Kris


More information about the freebsd-java mailing list