RFR(s): 8076185: Provide SafeFetchX implementation for zero
Severin Gehwolf
sgehwolf at redhat.com
Tue Mar 31 09:45:54 UTC 2015
Hi,
On Tue, 2015-03-31 at 11:08 +0200, Thomas Stüfe wrote
> > We also should accept that my SafeFetch implementation will
> be slower
> > than the standard one using inline assembly, because
> setjmp() does a
> > lot of stores. As far as I can see now, we do not use
> SafeFetch
> > extensivly anywhere, so this should be ok, but something to
> keep in
> > mind.
>
> This is expected. The only use of SafeFetch I'm aware is in
> src/share/vm/runtime/objectMonitor.cpp and the error handler.
> Speaking
> of which:
>
> $ java -XX:+UnlockDiagnosticVMOptions -Xmx100M
> -XX:ErrorHandlerTest=14 -XX:+TestSafeFetchInErrorHandler
> -version
>
> Does not yet work as expected. But that's a separate issue.
>
>
>
> That is ok.
>
>
> For -XX:+TestSafeFetchInErrorHandler to work, we would need to handle
> SafeFetch faults in the secondary signal handlers too (see
> vmError_<os>.cpp). That could be easily added but we would leave POSIX
> territory. Using longjmp() is not guaranteed to work from nested
> signal handlers ("However, if longjmp() is invoked from a nested
> signal handler (that is, from a function invoked as a result of a
> signal raised during the handling of another signal), the behaviour is
> undefined.").
>
>
> I think that use case is not that important for zero.
I agree. Should we make note of this in JDK-8074552?
Thanks,
Severin
More information about the hotspot-dev
mailing list