RFR 8004128: NPG: remove stackwalking in Threads::gc_prologue and gc_epilogue code

Coleen Phillimore coleen.phillimore at oracle.com
Tue Jul 15 17:09:39 UTC 2014

On 7/15/14, 11:40 AM, Mikael Gerdin wrote:
> Hi Coleen,
> On Monday 14 July 2014 20.05.50 Coleen Phillimore wrote:
>> Summary: remove bcx and mdx handling.  We no longer have to convert
>> bytecode pointers or method data pointers to indices for GC since
>> Metadata aren't moved.
>> Tested with nsk.quick.testlist, jck tests, JPRT.
>> Most of this is renaming bcx to bcp and mdx to mdp.  The content changes
>> are in frame.cpp.  StefanK implemented 90% of these changes.
>> open webrev at http://cr.openjdk.java.net/~coleenp/8004128/
> This isn't exactly my area of the code, but I'm happy that we got around to
> this cleanup!
> I looked through the change and to my not-so-runtime-familiar eyes it seems
> good.

There was GC bits so I'm glad you looked at it.  It might be good for 
performance since you don't have to walk thread stacks for no good 
reason anymore.
> One thought about the frame accessors
>   244   intptr_t*  interpreter_frame_bcp_addr() const;
>   245   intptr_t*  interpreter_frame_mdp_addr() const;
> Now that the contents of bcp and mdp in the frames are always pointers,
> perhaps these accessors should be appropriately typed?
> Something like
>   244   address*  interpreter_frame_bcp_addr() const;
>   245   ProfileData**  interpreter_frame_mdp_addr() const;

That's a nice idea.  I'll see if this change isn't too disruptive.

> Also, BytecodeInterpreter still has a member named _mdx, should that be
> renamed to _mdp as well?
> /Mikael
>> bug link https://bugs.openjdk.java.net/browse/JDK-8004128
>> Thanks,
>> Coleen

More information about the hotspot-dev mailing list