svn commit: r218970 - in head/sys: compat/linux sys
Lucius Windschuh
lwindschuh at googlemail.com
Sat Mar 5 19:30:31 UTC 2011
Hi John, hi Dmitry.
2011/2/23 John Baldwin <jhb at freebsd.org>:
> New Revision: 218970
> [...]
> Log:
> Use umtx_key objects to uniquely identify futexes. Private futexes in
> different processes that happen to use the same user address in the
> separate processes will now be treated as distinct futexes rather than the
> same futex. We can now honor shared futexes properly by mapping them to a
> PROCESS_SHARED umtx_key. Private futexes use THREAD_SHARED umtx_key
> objects.
This change breaks linux-jdk-1.6.0, at least for me on FreeBSD 9 i386:
$ /usr/local/linux-sun-jdk1.6.0/bin/java
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-d32 use a 32-bit data model if available
-d64 use a 64-bit data model if available
-client to select the "client" VM
-server to select the "server" VM
-hotspot is a synonym for the "client" VM [deprecated]
The default VM is server,
because you are running on a server-class machine.
-cp <class search path of directories and zip/jar files>
-classpath <class search path of directories and zip/jar files>
A : separated list of directories, JAR archives,
and ZIP archives to search for class files.
-D<name>=<value>
set a system property
-verbose[:class|gc|jni]
enable verbose output
-version print product version and exit
-version:<value>
require the specified version to run
-showversion print product version and continue
-jre-restrict-search | -jre-no-restrict-search
include/exclude user private JREs in the version search
-? -help print this help message
-X print help on non-standard options
-ea[:<packagename>...|:<classname>]
-enableassertions[:<packagename>...|:<classname>]
enable assertions
-da[:<packagename>...|:<classname>]
-disableassertions[:<packagename>...|:<classname>]
disable assertions
-esa | -enablesystemassertions
enable system assertions
-dsa | -disablesystemassertions
disable system assertions
-agentlib:<libname>[=<options>]
load native agent library <libname>, e.g. -agentlib:hprof
see also, -agentlib:jdwp=help and -agentlib:hprof=help
-agentpath:<pathname>[=<options>]
load native agent library by full pathname
-javaagent:<jarpath>[=<options>]
load Java programming language agent, see java.lang.instrument
-splash:<imagepath>
show splash screen with specified image
^T
load: 1.62 cmd: java 4007 [futex] 3.33r 0.00u 0.00s 0% 10784k
(... wait a while)
^T
load: 1.62 cmd: java 4007 [futex] 4.45r 0.00u 0.00s 0% 10784k
(... doesn't finish)
With r218969, the process finishes as expected.
BTW, is there an easy way to debug such futex issues, other than
perhaps linux_kdump?
Lucius
More information about the svn-src-all
mailing list