On Wed, 3 Feb 2021 12:44:53 GMT, Hamlin Li <[email protected]> wrote:

> parallel -histo of jmap was added by JDK-8214535, it's better to support 
> parallel for jcmd GC.class_histogram too.

I think you'll need a CSR just as 
[JDK-8215624](https://bugs.openjdk.java.net/browse/JDK-8215624). Also, a test 
is needed. There are a couple of tests under 
`test/hotspot/jtreg/serviceability/dcmd/gc` that already test 
`GC.class_histogram`. You could probably clone or modify one of them to test 
the new `-parallel` option.

src/hotspot/share/services/diagnosticCommand.cpp line 559:

> 557:        "BOOLEAN", false, "false"),
> 558:   _parallel_thread_num("-parallel", "parallel threads number for heap 
> iteration",
> 559:        "INT", false, "0")     {

Does "0" mean use a default number of parallel threads as it does for the jmap? 
It's unclear, but it seems that it doesn't, which I think leads to eventually 
hitting this assert in `update_active_workers(uint v)`:
    assert(v != 0, "Trying to set active workers to 0");
If that's not the case, please explain how 0 is handled. In any case, I think 
it should be made consistent with jmap and should also be documented in the 
above  help output:
  parallel=<count> generate histogram using this many parallel threads, default 0
                     0 use system determined number of threads
                     1 use one thread, i.e., disable parallelism
                     n use n threads, n must be positive

-------------

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

Reply via email to