Date: Sat, 5 Mar 2011 20:02:44 +0100 From: Lucius Windschuh <lwindschuh@googlemail.com> To: John Baldwin <jhb@freebsd.org>, dchagin@freebsd.org, svn-src-all@freebsd.org Subject: Re: svn commit: r218970 - in head/sys: compat/linux sys Message-ID: <AANLkTikwevur3nHKOBD%2BjujehMShg-fp1w=j%2Br_cv5ns@mail.gmail.com> In-Reply-To: <201102231323.p1NDNSVH061525@svn.freebsd.org>
index | next in thread | previous in thread | raw e-mail
Hi John, hi Dmitry.
2011/2/23 John Baldwin <jhb@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
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTikwevur3nHKOBD%2BjujehMShg-fp1w=j%2Br_cv5ns>
