RFR: JDK-8172791 fixing issues with Reserved Stack Area
Daniel D. Daugherty
daniel.daugherty at oracle.com
Fri Jun 30 23:56:41 UTC 2017
On 6/30/17 9:03 AM, Andrew Haley wrote:
> Just to explain why this patch is needed: without it, JEP 270
> (ReservedStackArea) does not work at all if a method with a
> ReservedStack annotation is inlined. Which, in practice, is all the
> time, because aggressive inlining is what C2 does.
>
> Can somebody please have a look at this?
>
>
> On 18/04/17 15:47, Frederic Parain wrote:
>> Greetings,
>>
>> Please review this fix which addresses several issues with the
>> ReservedStackArea implementation:
>> 1 - the method look_for_reserved_stack_annotated_method() fails to
>> detect in-lined
>> annotated methods, making the annotation ineffective for
>> in-lined methods
>> 2 - sometime an assertion failure related to reserved area status
>> occurs after incorrect
>> restoring of guards pages during a return from runtime
>>
>> Bug:
>> https://bugs.openjdk.java.net/browse/JDK-8172791
>>
>> webrev:
>> http://cr.openjdk.java.net/~fparain/8172791/webrev.00/index.html
src/cpu/x86/vm/interp_masm_x86.cpp
Is the deletion of:
L1083: push(rthread);
related to the assertion failure part of the fix? It looks like
it is just fixing a call protocol error (pushing rthread when it
is not needed), but I'm not sure.
src/share/vm/code/compiledMethod.cpp
No comments.
src/share/vm/code/compiledMethod.hpp
No comments.
src/share/vm/opto/compile.cpp
No comments.
src/share/vm/runtime/sharedRuntime.cpp
L3157: for (ScopeDesc *sd = nm->scope_desc_near(fr.pc());
sd; sd = sd->sender()) {
nit: implied boolean with 'sd;'
please change to: 'sd != NULL;'
test/runtime/ReservedStack/ReservedStackTest.java
Why stop running the test on -Xint?
Thumbs up on the fix.
This fix is going to need a review from someone on the
Compiler team also. Fred, who did your JEP-270 reviews
from the Compiler team?
Dan
>>
>> This fix has been contributed by Andrew Haley.
>>
>> Thank you,
>>
>> Fred
More information about the hotspot-dev
mailing list