RFR: JDK-8294266: Add a way to pre-touch java thread stacks [v3]

Thomas Stuefe stuefe at openjdk.org
Sun Nov 13 12:13:46 UTC 2022


> When doing performance- and footprint analysis, `AlwaysPreTouch` option is very handy for reducing noise. It would be good to have a similar option for pre-touching thread stacks. In addition to reducing noise, it can serve as worst-case test for thread costs, as well as a test for NMT regressions.
> 
> Patch adds a new diagnostic switch, `AlwaysPreTouchStacks`, as a companion switch to `AlwaysPreTouch`. Touching is super-simple using `alloca()`. Also, regression test.
> 
> Examples:
> 
> NMT, thread stacks, 10000 Threads, default:
> 
> 
> -                    Thread (reserved=10332400KB, committed=331828KB)                                       
>                             (thread #10021)                                                                 
>                             (stack: reserved=10301560KB, committed=300988KB)                                
>                             (malloc=19101KB #60755)                                                         
>                             (arena=11739KB #20037)                                                          
> 
> 
> NMT, thread stacks, 10000 Threads, +AlwaysPreTouchStacks:
> 
> 
> -                    Thread (reserved=10332400KB, committed=10284360KB)                        
>                             (thread #10021)                                                    
>                             (stack: reserved=10301560KB, committed=10253520KB)                 
>                             (malloc=19101KB #60755)                                            
>                             (arena=11739KB #20037)

Thomas Stuefe has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains one new commit since the last revision:

  AlwaysPreTouchStacks

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/10403/files
  - new: https://git.openjdk.org/jdk/pull/10403/files/9cc43613..322dc77f

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=10403&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=10403&range=01-02

  Stats: 39 lines in 2 files changed: 35 ins; 0 del; 4 mod
  Patch: https://git.openjdk.org/jdk/pull/10403.diff
  Fetch: git fetch https://git.openjdk.org/jdk pull/10403/head:pull/10403

PR: https://git.openjdk.org/jdk/pull/10403


More information about the hotspot-dev mailing list