RFR: 8280139: Report more detailed statistics about task stealing in task queue stats

Thomas Schatzl tschatzl at openjdk.java.net
Wed Jan 19 13:03:45 UTC 2022


Hi all,

  can I have reviews that improves task queue statistics?

This is a step to see problems with task queue in general and measure future task stealing improvements in GC; particularly contention on steal information has shown to be correlated to performance, so information about basic occurrences during stealing (how many empty, how many contended, how many contended in a row, max contended accesses in a row) in the task queue is very interesting for further performance work.

Old output of `gc+tasks+stats=trace` after compiling in these statistics:

thr      qpush       qpop     qpop-s   qattempt     qsteal      opush       omax
--- ---------- ---------- ---------- ---------- ---------- ---------- ----------
0    3777115    3776816       3872      17434       9630          0          0

And new:

thr        push         pop    pop-slow  st-attempt    st-empty     st-ctdd  st-success st-ctdd-max st-biasdrop  ovflw-push   ovflw-max
--- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- ----------- -----------
0     4616264     4616218        3608       12945           1        1650       11294           5        9405           0           0
[...]

The first four columns stayed the same, then the `qsteal` has been split up into the various steal results (empty/contended/success). `st_ctdd_max` gives the maximum amount of contended steal attempts in a row. `st_biasdrop` shows how many times the steal bias has been dropped (reset).
`ovflw-push` and `ovfl-max` are the same as before, just renamed a bit to use the available space.

There has been no intention to change anything about the algorithm, so there is no need for perf testing (I can see). Later changes will do that.

Thanks,
  Thomas

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

Commit messages:
 - Cleanup, remove tasks count
 - More task queue statistics

Changes: https://git.openjdk.java.net/jdk/pull/7143/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=7143&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8280139
  Stats: 78 lines in 3 files changed: 44 ins; 0 del; 34 mod
  Patch: https://git.openjdk.java.net/jdk/pull/7143.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/7143/head:pull/7143

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



More information about the hotspot-gc-dev mailing list