Re: RFR: 8249004: Reduce ThreadsListHandle overhead in relation to direct handshakes [v10]

2021-11-02 Thread David Holmes
On Tue, 2 Nov 2021 17:26:41 GMT, Daniel D. Daugherty  wrote:

>> A fix to reduce ThreadsListHandle overhead in relation to handshakes and
>> we add sanity checks for ThreadsListHandles higher in the call stack.
>> 
>> This fix was tested with Mach5 Tier[1-8]; Tier8 is still running.
>
> Daniel D. Daugherty has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   8249004.cr2.patch

Hi Dan,

Generally seems okay but a couple of minor issues below.

Thanks,
David

src/hotspot/share/runtime/handshake.cpp line 350:

> 348: }
> 349: 
> 350: void Handshake::execute(HandshakeClosure* hs_cl, ThreadsListHandle* 
> tlh_p, JavaThread* target) {

Nit: can we drop the `_p` part of `tlh_p` please.

src/hotspot/share/runtime/thread.cpp line 446:

> 444:   Thread* current_thread = nullptr;
> 445:   if (checkTLHOnly) {
> 446: current_thread = Thread::current();

This seems redundant due to line 463. You can just have a `if (!checkTLHOnly)` 
block here.

src/hotspot/share/runtime/thread.cpp line 1764:

> 1762:   guarantee(Thread::is_JavaThread_protected(this, /* checkTLHOnly */ 
> true),
> 1763: "missing ThreadsListHandle in calling context.");
> 1764:   if (is_exiting()) {

Can't we remove this the same as we did for `java_suspend()`?

-

Changes requested by dholmes (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/4677


Re: RFR: 8275729: Qualified method names in CodeHeap Analytics

2021-11-02 Thread Vladimir Kozlov
On Mon, 1 Nov 2021 20:51:39 GMT, Evgeny Astigeevich  
wrote:

> This PR changes nmethods names in `METHOD NAMES for CodeHeap` section to be  
> qualified.
> Testing:
> - `make test TEST="gtest"`:  Passed
> - `make run-test TEST="tier1"`: Passed
> - `make run-test TEST="tier2"`: Passed
> - `make run-test 
> TEST=serviceability/dcmd/compiler/CodeHeapAnalyticsMethodNames.java`: Passed

BTW, you need to update Copyright year in file.

-

PR: https://git.openjdk.java.net/jdk/pull/6200


Re: RFR: 8275729: Qualified method names in CodeHeap Analytics

2021-11-02 Thread Vladimir Kozlov
On Tue, 2 Nov 2021 23:03:22 GMT, Evgeny Astigeevich  
wrote:

> Is NULL method holder an acceptable situation? Could it be a sign of a bug?

You are right, all methods should have class holders. I just followed code 
pattern.

> BTW, `Klass::external_name()` returns `` if `Klass::name()` is 
> `NULL`.

I see, you want to have the same string instead of ``. Reasonable.

I will test your changes too. File PR and I will review and post testing 
results.

-

PR: https://git.openjdk.java.net/jdk/pull/6200


Re: RFR: 8275729: Qualified method names in CodeHeap Analytics

2021-11-02 Thread Evgeny Astigeevich
On Tue, 2 Nov 2021 22:57:23 GMT, Vladimir Kozlov  wrote:

> Yes, I am currently testing similar fix:
> 
> ```
> -Klass* klass = method->method_holder();
> -assert(klass->is_loader_alive(), "must be alive");
> +Klass* methHolder = method->method_holder();
> +const char*methHolderS  = (methHolder  == NULL) ? NULL : 
> methHolder->external_name();
> +methHolderS = (methHolderS  == NULL) ? " unavailable>" : methHolderS;
>  
> -ast->print("%s.", klass->external_name());
> +ast->print("%s.", methHolderS);
> ```
> 
> Note, failed test is `closed` so I have to run testing.

Is NULL method holder an acceptable situation? Could it be a sign of a bug?
BTW, `Klass::external_name()` returns `` if `Klass::name()` is `NULL`.

-

PR: https://git.openjdk.java.net/jdk/pull/6200


Re: RFR: 8275729: Qualified method names in CodeHeap Analytics

2021-11-02 Thread Vladimir Kozlov
On Mon, 1 Nov 2021 20:51:39 GMT, Evgeny Astigeevich  
wrote:

> This PR changes nmethods names in `METHOD NAMES for CodeHeap` section to be  
> qualified.
> Testing:
> - `make test TEST="gtest"`:  Passed
> - `make run-test TEST="tier1"`: Passed
> - `make run-test TEST="tier2"`: Passed
> - `make run-test 
> TEST=serviceability/dcmd/compiler/CodeHeapAnalyticsMethodNames.java`: Passed

Yes, I am currently testing similar fix:

-Klass* klass = method->method_holder();
-assert(klass->is_loader_alive(), "must be alive");
+Klass* methHolder = method->method_holder();
+const char*methHolderS  = (methHolder  == NULL) ? NULL : 
methHolder->external_name();
+methHolderS = (methHolderS  == NULL) ? "" : methHolderS;
 
-ast->print("%s.", klass->external_name());
+ast->print("%s.", methHolderS);


Note, failed test is `closed` so I have to run testing.

-

PR: https://git.openjdk.java.net/jdk/pull/6200


Re: RFR: 8275729: Qualified method names in CodeHeap Analytics

2021-11-02 Thread Evgeny Astigeevich
On Tue, 2 Nov 2021 22:05:01 GMT, Vladimir Kozlov  wrote:

> I don't think we need this assert just to print klass's name. May be follow 
> the code pattern for method's name and signature.

Agree. I'll submit PR with the code:

Symbol* className = klass->name();
const char*   classNameS = (className == nullptr) ? nullptr : 
className->external_name();
classNameS = (classNameS == nullptr) ? "" : classNameS;
ast->print("%s.", classNameS);

-

PR: https://git.openjdk.java.net/jdk/pull/6200


Re: RFR: 8275729: Qualified method names in CodeHeap Analytics

2021-11-02 Thread Vladimir Kozlov
On Mon, 1 Nov 2021 20:51:39 GMT, Evgeny Astigeevich  
wrote:

> This PR changes nmethods names in `METHOD NAMES for CodeHeap` section to be  
> qualified.
> Testing:
> - `make test TEST="gtest"`:  Passed
> - `make run-test TEST="tier1"`: Passed
> - `make run-test TEST="tier2"`: Passed
> - `make run-test 
> TEST=serviceability/dcmd/compiler/CodeHeapAnalyticsMethodNames.java`: Passed

I don't think we need this assert just to print klass's name

-

PR: https://git.openjdk.java.net/jdk/pull/6200


Integrated: JDK-8274930: sun/tools/jps/TestJps.java can fail with long VM arguments string

2021-11-02 Thread Alex Menkov
On Thu, 7 Oct 2021 21:46:47 GMT, Alex Menkov  wrote:

> The fix adds "-XX:PerfMaxStringConstLength" argument running target app 
> (default is 1024, 8K should be enough for any environments)

This pull request has now been integrated.

Changeset: bb92fb02
Author:Alex Menkov 
URL:   
https://git.openjdk.java.net/jdk/commit/bb92fb02ca8c5795989065a9037748dc39ed77db
Stats: 2 lines in 1 file changed: 1 ins; 0 del; 1 mod

8274930: sun/tools/jps/TestJps.java can fail with long VM arguments string

Reviewed-by: sspitsyn, lmesnik

-

PR: https://git.openjdk.java.net/jdk/pull/5858


Re: RFR: 8275729: Qualified method names in CodeHeap Analytics

2021-11-02 Thread Vladimir Kozlov
On Mon, 1 Nov 2021 20:51:39 GMT, Evgeny Astigeevich  
wrote:

> This PR changes nmethods names in `METHOD NAMES for CodeHeap` section to be  
> qualified.
> Testing:
> - `make test TEST="gtest"`:  Passed
> - `make run-test TEST="tier1"`: Passed
> - `make run-test TEST="tier2"`: Passed
> - `make run-test 
> TEST=serviceability/dcmd/compiler/CodeHeapAnalyticsMethodNames.java`: Passed

The change caused failure in our testing: 
https://bugs.openjdk.java.net/browse/JDK-8276429
@eastig I will assign it to you

-

PR: https://git.openjdk.java.net/jdk/pull/6200


Re: RFR: 8276208: vmTestbase/nsk/jdb/repeat/repeat001/repeat001.java fails with "AssertionError: Unexpected output" [v2]

2021-11-02 Thread Ioi Lam
On Tue, 2 Nov 2021 01:07:30 GMT, Jakob Cornell  wrote:

>> This will fix a few issues with the tests added in #5290:
>> 
>> - [x] intermittent failures
>> - [x] tests should use `failure` method to report problems rather than 
>> throwing `AssertionError`
>
> Jakob Cornell has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Fix incorrect use of `receiveReplyFor' causing test failures

LGTM

-

Marked as reviewed by iklam (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/6182


Re: RFR: 8275729: Qualified method names in CodeHeap Analytics

2021-11-02 Thread Lutz Schmidt
On Tue, 2 Nov 2021 17:03:50 GMT, Evgeny Astigeevich  
wrote:

>> src/hotspot/share/code/codeHeapState.cpp line 2340:
>> 
>>> 2338: 
>>> 2339: Klass* klass = method->method_holder();
>>> 2340: assert(klass->is_loader_alive(), "must be alive");
>> 
>> Are you sure `klass` is always valid here and that its class loader has to 
>> be alive (i.e. the corresponding class hasn't been unloaded in the meantime)?
>> 
>> In [https://bugs.openjdk.java.net/browse/JDK-8275729](JDK-8275729) you say 
>> that the Top50 list already has qualified names but as far as I know, that 
>> information is already collected in the aggregation step where it is safe. 
>> You now query this information in the reporting step.
>> 
>> I know we had problems due to access to dead methods before (see 
>> [JDK-8219586: CodeHeap State Analytics processes dead 
>> nmethods](https://bugs.openjdk.java.net/browse/JDK-8219586) and I just want 
>> to make sure we don't re-introduce such problems.
>> 
>> Maybe @RealLucy or @fisk can have an additional look?
>
> @simonis 
> The code is guarded by checks:
> 
> // access nmethod and Method fields only if we own the CodeCache_lock.
> // This fact is implicitly transported via nm != NULL.
> if (nmethod_access_is_safe(nm)) {
> ...
>   bool get_name   = (cbType == nMethod_inuse) || (cbType == 
> nMethod_notused);
> ...
>   if (get_name) {
> 
> I was thinking whether I should use `if (klass->is_loader_alive())` or 
> `assert(klass->is_loader_alive())`. I chose the assert because if it is safe 
> to access `Method` than its holder `Klass` must be alive.

Hi,
the code is safe. Not because of the checks cited by @eastig but because 
print_names() is only called if the required locks (Compile_lock and 
CodeCache_lock) have been continuously held since the aggregation step. See 
src/hotspot/share/compiler/compileBroker.cpp. A lot of effort has been spent to 
be less restrictive on print_names(), with no success. 
Thanks for the enhancement.

-

PR: https://git.openjdk.java.net/jdk/pull/6200


Re: RFR: 8275729: Qualified method names in CodeHeap Analytics

2021-11-02 Thread Lutz Schmidt
On Mon, 1 Nov 2021 20:51:39 GMT, Evgeny Astigeevich  
wrote:

> This PR changes nmethods names in `METHOD NAMES for CodeHeap` section to be  
> qualified.
> Testing:
> - `make test TEST="gtest"`:  Passed
> - `make run-test TEST="tier1"`: Passed
> - `make run-test TEST="tier2"`: Passed
> - `make run-test 
> TEST=serviceability/dcmd/compiler/CodeHeapAnalyticsMethodNames.java`: Passed

To me, the change looks good.

-

PR: https://git.openjdk.java.net/jdk/pull/6200


Re: RFR: 8276208: vmTestbase/nsk/jdb/repeat/repeat001/repeat001.java fails with "AssertionError: Unexpected output" [v2]

2021-11-02 Thread Daniel D . Daugherty
On Tue, 2 Nov 2021 01:07:30 GMT, Jakob Cornell  wrote:

>> This will fix a few issues with the tests added in #5290:
>> 
>> - [x] intermittent failures
>> - [x] tests should use `failure` method to report problems rather than 
>> throwing `AssertionError`
>
> Jakob Cornell has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Fix incorrect use of `receiveReplyFor' causing test failures

@iklam - Can you review this fix? You were one of the original reviewers on:
JDK-8271356 Modify jdb to treat an empty command as a repeat of the previous 
command

Thanks!

-

PR: https://git.openjdk.java.net/jdk/pull/6182


Re: RFR: 8275729: Qualified method names in CodeHeap Analytics

2021-11-02 Thread Evgeny Astigeevich
On Tue, 2 Nov 2021 05:49:30 GMT, Yi Yang  wrote:

>> This PR changes nmethods names in `METHOD NAMES for CodeHeap` section to be  
>> qualified.
>> Testing:
>> - `make test TEST="gtest"`:  Passed
>> - `make run-test TEST="tier1"`: Passed
>> - `make run-test TEST="tier2"`: Passed
>> - `make run-test 
>> TEST=serviceability/dcmd/compiler/CodeHeapAnalyticsMethodNames.java`: Passed
>
> This looks good now. Old output can not tell us which class the method 
> belongs to.
> 
> 
> Old:
> 0x7f6e91063010 (+0x0010) 0x00a0(   0K)  none   0480 nMethod 
> (deopt) nmethod
> 0x7f6e91063310 (+0x0310) 0x00f8(   0K)  none   0480 nMethod 
> (active)name()Ljava/lang/String;
> 0x7f6e91063610 (+0x0610) 0x00f8(   0K)  none   0480 nMethod 
> (active)descriptor()Ljava/lang/module/ModuleDescriptor;
> 0x7f6e91063910 (+0x0910) 0x(   0K)  none   0480 nMethod 
> (active)getReferenceVolatile(Ljava/lang/Object;J)Ljava/lang/Object;
> 0x7f6e91063d90 (+0x0d90) 0x(   0K)  none   0480 nMethod 
> (active)hashCode()I
> 0x7f6e91064190 (+0x1190) 0x00f8(   0K)c1   1480 nMethod 
> (active)name()Ljava/lang/String;
> 0x7f6e91064490 (+0x1490) 0x00f8(   0K)c1   1480 nMethod 
> (active)modifiers()Ljava/util/Set;
> 0x7f6e91064790 (+0x1790) 0x00f8(   0K)c1   1480 nMethod 
> (active)targets()Ljava/util/Set;
> 0x7f6e91064a90 (+0x1a90) 0x00f8(   0K)c1   1480 nMethod 
> (active)source()Ljava/lang/String;
> 0x7f6e91064d90 (+0x1d90) 0x00f8(   0K)c1   1480 nMethod 
> (active)isEmpty()Z
> New:
> 
> 0x7f08adc94010 (+0x0010) 0x0150(   0K)c1   3480 nMethod 
> (deopt) nmethod
> 0x7f08adc94390 (+0x0390) 0x01b0(   0K)c1   3480 nMethod 
> (active)java.lang.String.isLatin1()Z
> 0x7f08adc94710 (+0x0710) 0x0258(   0K)c1   3480 nMethod 
> (active)
> jdk.internal.util.Preconditions.checkIndex(IILjava/util/function/BiFunction;)I
> 0x7f08adc94b90 (+0x0b90) 0x04e8(   1K)c1   3480 nMethod 
> (deopt) nmethod
> 0x7f08adc95310 (+0x1310) 0x0298(   0K)c1   3480 nMethod 
> (active)java.lang.StringLatin1.charAt([BI)C
> 0x7f08adc95790 (+0x1790) 0x01a0(   0K)c1   3480 nMethod 
> (active)java.lang.String.checkIndex(II)V
> 0x7f08adc95b10 (+0x1b10) 0x0170(   0K)c1   3480 nMethod 
> (active)java.lang.String.coder()B
> 0x7f08adc95e90 (+0x1e90) 0x03e8(   0K)c1   3480 nMethod 
> (active)java.lang.String.hashCode()I
> 0x7f08adc96490 (+0x2490) 0x0130(   0K)c1   3480 nMethod 
> (deopt) nmethod
> 0x7f08adc96790 (+0x2790) 0x0210(   0K)c1   3480 nMethod 
> (active)java.lang.String.length()I

Thanks for reviewing @kelthuzadx and @TobiHartmann.

-

PR: https://git.openjdk.java.net/jdk/pull/6200


Re: RFR: 8249004: Reduce ThreadsListHandle overhead in relation to direct handshakes [v6]

2021-11-02 Thread Daniel D . Daugherty
On Fri, 15 Oct 2021 18:31:26 GMT, Coleen Phillimore  wrote:

>> Daniel D. Daugherty has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   8249004.cr1.patch
>
> This has more moving pieces than the last version.  I'm a bit uneasy about 
> passing NULL as a thread to Handshake::execute(). This shouldn't be something 
> that should happen.

@coleenp and @dholmes-ora, the latest version should address the last
of your previous comments. Please re-review when you get the chance.

@robehn and @sspitsyn - It would be good to get re-reviews from you guys
on this latest version. Thanks!

-

PR: https://git.openjdk.java.net/jdk/pull/4677


Re: RFR: 8249004: Reduce ThreadsListHandle overhead in relation to direct handshakes [v10]

2021-11-02 Thread Daniel D . Daugherty
> A fix to reduce ThreadsListHandle overhead in relation to handshakes and
> we add sanity checks for ThreadsListHandles higher in the call stack.
> 
> This fix was tested with Mach5 Tier[1-8]; Tier8 is still running.

Daniel D. Daugherty has updated the pull request incrementally with one 
additional commit since the last revision:

  8249004.cr2.patch

-

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/4677/files
  - new: https://git.openjdk.java.net/jdk/pull/4677/files/045b3e0d..3e1d1b06

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk=4677=09
 - incr: https://webrevs.openjdk.java.net/?repo=jdk=4677=08-09

  Stats: 128 lines in 5 files changed: 22 ins; 46 del; 60 mod
  Patch: https://git.openjdk.java.net/jdk/pull/4677.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/4677/head:pull/4677

PR: https://git.openjdk.java.net/jdk/pull/4677


Re: RFR: 8275729: Qualified method names in CodeHeap Analytics

2021-11-02 Thread Evgeny Astigeevich
On Tue, 2 Nov 2021 16:34:34 GMT, Volker Simonis  wrote:

>> This PR changes nmethods names in `METHOD NAMES for CodeHeap` section to be  
>> qualified.
>> Testing:
>> - `make test TEST="gtest"`:  Passed
>> - `make run-test TEST="tier1"`: Passed
>> - `make run-test TEST="tier2"`: Passed
>> - `make run-test 
>> TEST=serviceability/dcmd/compiler/CodeHeapAnalyticsMethodNames.java`: Passed
>
> src/hotspot/share/code/codeHeapState.cpp line 2340:
> 
>> 2338: 
>> 2339: Klass* klass = method->method_holder();
>> 2340: assert(klass->is_loader_alive(), "must be alive");
> 
> Are you sure `klass` is always valid here and that its class loader has to be 
> alive (i.e. the corresponding class hasn't been unloaded in the meantime)?
> 
> In [https://bugs.openjdk.java.net/browse/JDK-8275729](JDK-8275729) you say 
> that the Top50 list already has qualified names but as far as I know, that 
> information is already collected in the aggregation step where it is safe. 
> You now query this information in the reporting step.
> 
> I know we had problems due to access to dead methods before (see 
> [JDK-8219586: CodeHeap State Analytics processes dead 
> nmethods](https://bugs.openjdk.java.net/browse/JDK-8219586) and I just want 
> to make sure we don't re-introduce such problems.
> 
> Maybe @RealLucy or @fisk can have an additional look?

@simonis 
The code is guarded by checks:

// access nmethod and Method fields only if we own the CodeCache_lock.
// This fact is implicitly transported via nm != NULL.
if (nmethod_access_is_safe(nm)) {
...
  bool get_name   = (cbType == nMethod_inuse) || (cbType == 
nMethod_notused);
...
  if (get_name) {

I was thinking whether I should use `if (klass->is_loader_alive())` or 
`assert(klass->is_loader_alive())`. I chose the assert because if it is safe to 
access `Method` than its holder `Klass` must be alive.

-

PR: https://git.openjdk.java.net/jdk/pull/6200


Integrated: 8276367: ProblemList vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java

2021-11-02 Thread Daniel D . Daugherty
On Tue, 2 Nov 2021 16:34:26 GMT, Daniel D. Daugherty  wrote:

> A trivial fix to ProblemList 
> vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java

This pull request has now been integrated.

Changeset: 01105d69
Author:Daniel D. Daugherty 
URL:   
https://git.openjdk.java.net/jdk/commit/01105d6985b39d4064b9066eab3612da5a401685
Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 mod

8276367: ProblemList 
vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java

Reviewed-by: bpb

-

PR: https://git.openjdk.java.net/jdk/pull/6214


Re: Integrated: 8276367: ProblemList vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java

2021-11-02 Thread Daniel D . Daugherty
On Tue, 2 Nov 2021 16:47:08 GMT, Brian Burkhalter  wrote:

>> A trivial fix to ProblemList 
>> vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java
>
> Marked as reviewed by bpb (Reviewer).

@bplb - Thanks for the fast review.

-

PR: https://git.openjdk.java.net/jdk/pull/6214


Re: Integrated: 8276367: ProblemList vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java

2021-11-02 Thread Brian Burkhalter
On Tue, 2 Nov 2021 16:34:26 GMT, Daniel D. Daugherty  wrote:

> A trivial fix to ProblemList 
> vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java

Marked as reviewed by bpb (Reviewer).

-

PR: https://git.openjdk.java.net/jdk/pull/6214


Integrated: 8276367: ProblemList vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java

2021-11-02 Thread Daniel D . Daugherty
A trivial fix to ProblemList 
vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java

-

Commit messages:
 - 8276367: ProblemList 
vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java

Changes: https://git.openjdk.java.net/jdk/pull/6214/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk=6214=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8276367
  Stats: 1 line in 1 file changed: 1 ins; 0 del; 0 mod
  Patch: https://git.openjdk.java.net/jdk/pull/6214.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/6214/head:pull/6214

PR: https://git.openjdk.java.net/jdk/pull/6214


Re: RFR: 8275729: Qualified method names in CodeHeap Analytics

2021-11-02 Thread Paul Hohensee
On Mon, 1 Nov 2021 20:51:39 GMT, Evgeny Astigeevich  
wrote:

> This PR changes nmethods names in `METHOD NAMES for CodeHeap` section to be  
> qualified.
> Testing:
> - `make test TEST="gtest"`:  Passed
> - `make run-test TEST="tier1"`: Passed
> - `make run-test TEST="tier2"`: Passed
> - `make run-test 
> TEST=serviceability/dcmd/compiler/CodeHeapAnalyticsMethodNames.java`: Passed

Volker, I sponsored this before you posted your review. Evgeny, if it's a 
problem, please file a bug.

-

PR: https://git.openjdk.java.net/jdk/pull/6200


Re: RFR: 8275729: Qualified method names in CodeHeap Analytics

2021-11-02 Thread Volker Simonis
On Mon, 1 Nov 2021 20:51:39 GMT, Evgeny Astigeevich  
wrote:

> This PR changes nmethods names in `METHOD NAMES for CodeHeap` section to be  
> qualified.
> Testing:
> - `make test TEST="gtest"`:  Passed
> - `make run-test TEST="tier1"`: Passed
> - `make run-test TEST="tier2"`: Passed
> - `make run-test 
> TEST=serviceability/dcmd/compiler/CodeHeapAnalyticsMethodNames.java`: Passed

No problem, I know I was late :)
But I also know that this is a sensitive area, so better double check...

-

PR: https://git.openjdk.java.net/jdk/pull/6200


Re: RFR: 8275729: Qualified method names in CodeHeap Analytics

2021-11-02 Thread Volker Simonis
On Mon, 1 Nov 2021 20:51:39 GMT, Evgeny Astigeevich  
wrote:

> This PR changes nmethods names in `METHOD NAMES for CodeHeap` section to be  
> qualified.
> Testing:
> - `make test TEST="gtest"`:  Passed
> - `make run-test TEST="tier1"`: Passed
> - `make run-test TEST="tier2"`: Passed
> - `make run-test 
> TEST=serviceability/dcmd/compiler/CodeHeapAnalyticsMethodNames.java`: Passed

src/hotspot/share/code/codeHeapState.cpp line 2340:

> 2338: 
> 2339: Klass* klass = method->method_holder();
> 2340: assert(klass->is_loader_alive(), "must be alive");

Are you sure `klass` is always valid here and that its class loader has to be 
alive (i.e. the corresponding class hasn't been unloaded in the meantime)?

In [https://bugs.openjdk.java.net/browse/JDK-8275729](JDK-8275729) you say that 
the Top50 list already has qualified names but as far as I know, that 
information is already collected in the aggregation step where it is safe. You 
now query this information in the reporting step.

I know we had problems due to access to dead methods before (see [JDK-8219586: 
CodeHeap State Analytics processes dead 
nmethods](https://bugs.openjdk.java.net/browse/JDK-8219586) and I just want to 
make sure we don't re-introduce such problems.

Maybe @RealLucy or @fisk can have an additional look?

-

PR: https://git.openjdk.java.net/jdk/pull/6200


Integrated: 8275729: Qualified method names in CodeHeap Analytics

2021-11-02 Thread Evgeny Astigeevich
On Mon, 1 Nov 2021 20:51:39 GMT, Evgeny Astigeevich  
wrote:

> This PR changes nmethods names in `METHOD NAMES for CodeHeap` section to be  
> qualified.
> Testing:
> - `make test TEST="gtest"`:  Passed
> - `make run-test TEST="tier1"`: Passed
> - `make run-test TEST="tier2"`: Passed
> - `make run-test 
> TEST=serviceability/dcmd/compiler/CodeHeapAnalyticsMethodNames.java`: Passed

This pull request has now been integrated.

Changeset: 8fc16f16
Author:Evgeny Astigeevich 
Committer: Paul Hohensee 
URL:   
https://git.openjdk.java.net/jdk/commit/8fc16f1605b396bfb9265a97bc126d435d6d5951
Stats: 75 lines in 2 files changed: 75 ins; 0 del; 0 mod

8275729: Qualified method names in CodeHeap Analytics

Reviewed-by: yyang, thartmann

-

PR: https://git.openjdk.java.net/jdk/pull/6200


Re: RFR: 8275729: Qualified method names in CodeHeap Analytics

2021-11-02 Thread Tobias Hartmann
On Mon, 1 Nov 2021 20:51:39 GMT, Evgeny Astigeevich  
wrote:

> This PR changes nmethods names in `METHOD NAMES for CodeHeap` section to be  
> qualified.
> Testing:
> - `make test TEST="gtest"`:  Passed
> - `make run-test TEST="tier1"`: Passed
> - `make run-test TEST="tier2"`: Passed
> - `make run-test 
> TEST=serviceability/dcmd/compiler/CodeHeapAnalyticsMethodNames.java`: Passed

Looks good to me.

-

Marked as reviewed by thartmann (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/6200


Integrated: 8275735: [linux] Remove deprecated Metrics api (kernel memory limit)

2021-11-02 Thread Severin Gehwolf
On Thu, 28 Oct 2021 13:03:56 GMT, Severin Gehwolf  wrote:

> Please review this change to remove some API which no longer works as 
> expected as recent OCI runtimes start to drop support for `--kernel-memory` 
> switch. See the bug for references. This part of the API is not present in 
> hotspot code.
> 
> Testing: Container tests (cgroup v1) on Linux x86_64 (all pass)

This pull request has now been integrated.

Changeset: 9971a2ca
Author:Severin Gehwolf 
URL:   
https://git.openjdk.java.net/jdk/commit/9971a2cab3892a17f3fd39243df5ecfff5b9f108
Stats: 104 lines in 6 files changed: 0 ins; 100 del; 4 mod

8275735: [linux] Remove deprecated Metrics api (kernel memory limit)

Reviewed-by: hseigel, mchung

-

PR: https://git.openjdk.java.net/jdk/pull/6156