RFR(s): 8222640: Remove deopt suspend

Robbin Ehn robbin.ehn at oracle.com
Wed Apr 17 14:32:40 UTC 2019


Hi Dan, thanks for digging!

Yes, I have already forward the mail to compiler, added here also.

Thanks, Robbin

On 2019-04-17 15:46, Daniel D. Daugherty wrote:
> On 4/17/19 4:35 AM, Robbin Ehn wrote:
>> Hi all, please consider this change.
>>
>> The code for deopt suspend is no longer needed since today the register window
>> is always flushed when this code executes. Exactly when this code was needed is not clear, entered via duke changeset 
>> 1. I did not dig since we no longer have such use case.
>>
>> Webrev:
>> http://cr.openjdk.java.net/~rehn/8222640/webrev/
>> Issue:
>> https://bugs.openjdk.java.net/browse/JDK-8222640
>>
>> Passes t1-5.
>>
>> Thanks, Robbin
> 
> Since this code was added by the Compiler team, I think you're going
> to want at least one Compiler team member to chime in on this review...
> 
> 
> I was going to add a historical comment to your bug, but JBS appears to
> be down at the moment... This code was added by this delta:
> 
> $ sp -r1.795.1.1 src/share/vm/runtime/thread.cpp
> src/share/vm/runtime/SCCS/s.thread.cpp:
> 
> D 1.795.1.1 06/12/07 10:06:52 sgoldman 2086 2084 00031/00010/04023
> MRs:
> COMMENTS:
> 6463133 - patchless deopt. Support specialized deopt suspend for register window
> based machines. Pass registerMap to revoke_bias to prevent redundant stack
> walks.  frames now cache the codeBlob.
> 
> 
> Looks like 6463133 was not a bug that I was tracking way back then
> so I don't have an email folder for it. I did find Steve Goldman's
> push message for it, but the fix for 6463133 is included with four
> other bug fixes:
> 
> ---------------------------------------------------------
> 
> Job ID:                 20061207101238.sgoldman.6463133_deopt-M
> Original workspace:     gretch:/disk2/ws/6463133_deopt-M
> Submitter:              sgoldman
> Archived data: /net/prt-data.east/archives/main/c2_baseline/2006/20061207101238.sgoldman.6463133_deopt-M/
> Webrev: 
> http://analemma.sfbay.sun.com/net/prt-archiver.sfbay/data/archived_workspaces/main/c2_baseline/2006/20061207101238.sgoldman.6463133_deopt-M/workspace/webrevs/webrev-2006.12.07/index.html 
> 
> 
> Fixed 6463133: Deoptimization should not use code patching
> Fixed 6490483: Java support for pstack broken
> Fixed 6490489: java pstack support for server on x86 corrupts stack frame info
> Fixed 6490492: java support for pstack rarely gets server compiled frames correct.
> Fixed 6500866: jvm crash running forte stress kit.
> 
> This converts deoptimization to no longer do patching of code
> and now only patches return address. This made a rather large
> change to the frame object so that now a frame always carries
> along the codeBlob it refers to if it in fact does refer to
> a codeBlob. This removes lots of redundant CodeCache::find_blob
> calls. The testing of this fix which obviously changes the way
> frames look on the stack discovered that both SA and pstack support
> have been broken. pstack support has been been broken for years.
> As part of the SA changes I found that the fix for:
> 
> 6252656: Putative invariant for TLABS _start+_size==_end+alignment_reserve() not being maintained
> 
> didn't properly update SA and I've added that fix.
> 
> There is a discussion of patchless deopt here
> 
> http://j2se.sfbay/web/bin/view/HotspotCompilers/PatchlessDeopt
> 
> which is currently (Dec. 7, 2006) out of date but which I will clean up.
> 
> One other notable change with this putback is that there is no longer a separate
> exception handler for each codeblob. Now the exception handler (and the new
> deopt handler) are stored in the stub (read uncommon code) area.
> 
> 
> Reviewed by: Tom
> 
> Fix verified (y/n): yes
> 
> Verification testing:
> 
>      PRT with various stress options. NSK and JDI tests with and without stress
>      options. Dan's forte stress tests on sparc/x86/amd64. Lots of various hand
>      testing of SA (in addition to sasanity) pstack, and dtrace.
> [end sgoldman Thu Dec  7 13:56:55 2006 EDT]
> 
> sgoldman Mon Dec 11 15:28:48 2006 PDT
> -------------------------------------
> 
> 
> Since this is an integration push from c2_baseline -> main/baseline, I do
> not have the list of files modified. I would have to find the c2_baseline
> TeamWare workspace if it still exists. However, I'm not sure it would help
> much since 6463133 is combined with 4 other fixes...
> 
> I did a search for all of the files that mention 6463133 in their SCCS
> history and that list is 83 files long. Ouch. I've attached that list to
> this email.
> 
> Dan


More information about the hotspot-compiler-dev mailing list