RFR(m): 8074552: SafeFetch32 and SafeFetchN do not work in error handling
david.holmes at oracle.com
Mon Mar 9 05:56:25 UTC 2015
FYI When I applied this to latest hs-rt forest and ran through JPRT the
Windows fastdebug builds were DOA (instant segfault just running "java
-version"). Can't see how your changes could do this so running a test
on unmodified forest.
On 9/03/2015 9:40 AM, David Holmes wrote:
> Hi Thomas,
> Minor nit: in src/share/vm/runtime/stubRoutines.cpp::test_safefetchN can
> you use UCONST64 macro instead of explicit ULL - thanks.
> Otherwise this seems okay, but we will also need the aarch64 component
> (and I'll look into our internal needs).
> On 7/03/2015 2:10 AM, Thomas Stüfe wrote:
>> Hi all,
>> could someone please review the following fix (I also will need a
>> The fix will make SafeFetch[32,N] work in error reporting.
>> At SAP, we use SafeFetch a lot in error reporting to poke around in
>> potentially invalid memory (e.g. writing hex dumps over areas which
>> may be
>> partly unmapped), and we feel that this could be useful for the
>> OpenJDK too.
>> Without this fix, SafeFetch will cause a crash, the current error
>> step will be interrupted and error reporting will continue with the next
>> step; that is not optimal because the interrupted step may have shown
>> valuable information.
>> This fix handles SafeFetch faults during error reporting the same way as
>> they are handled normally. The changes are:
>> - handle safe fetch fault in the various (os_cpu dependend) secondary
>> signal handlers
>> - provide a function to check if it is safe to use SafeFetch:
>> CanUseSafeFetch32(). SafeFetch needs stub routines and will crash when
>> before stub generation.
>> - set_context_pc() is added which complements the existing
>> and all instances where the pc in ucontext_t was modified directly are
>> changed to use set_context_pc()
>> - in stubRoutines.cpp, a small test was added to the already existing
>> routines tests which run at VM init
>> - in vmError.cpp, a test was added to test SafeFetch during error
>> reporting, similar to the tests introduced for 8065895
>> - A JTreg test was added
>> Thanks and Kind Regards,
>> Thomas Stuefe
More information about the hotspot-runtime-dev