RFR: 8264149 BreakpointInfo::set allocates metaspace object in VM thread [v3]
    David Holmes 
    dholmes at openjdk.java.net
       
    Tue Mar 30 04:01:04 UTC 2021
    
    
  
On Tue, 30 Mar 2021 03:06:11 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
>> This change creates a Metaspace::allocate function that doesn't pass TRAPS to be used by MethodCounters.  TRAPS and exceptions shouldn't be thrown from non-JavaThreads.
>> 
>> Tested with tier1-7.
>
> Coleen Phillimore has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Make which version of MethodCounters::allocate() is called clearer.
Hi Coleen,
Updated code is much clearer but I have a suggested refactoring to avoid the duplicated OOM code.
Thanks,
David
src/hotspot/share/oops/method.cpp line 570:
> 568:   if (current->is_Java_thread()) {
> 569:     Thread* THREAD = current;
> 570:     counters = MethodCounters::allocate(mh, THREAD);
Can you add a comment before this line:
// Use the TRAPS version for a JavaThread so it will adjust the GC  threshold if needed.
Thanks.
src/hotspot/share/oops/method.cpp line 572:
> 570:     counters = MethodCounters::allocate(mh, THREAD);
> 571:     if (HAS_PENDING_EXCEPTION) {
> 572:       CLEAR_PENDING_EXCEPTION;  // MethodData above doesn't clear exception
I don't understand the comment.
src/hotspot/share/oops/method.cpp line 575:
> 573:       CompileBroker::log_metaspace_failure();
> 574:       ClassLoaderDataGraph::set_metaspace_oom(true);
> 575:       return NULL;
You could factor this out for both cases by testing "counters == NULL".
-------------
Changes requested by dholmes (Reviewer).
PR: https://git.openjdk.java.net/jdk/pull/3207
    
    
More information about the hotspot-dev
mailing list