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

Thomas Stuefe stuefe at openjdk.org
Mon Nov 14 10:16:58 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 updated the pull request incrementally with one additional commit since the last revision:

  test changes, comment change

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

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

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

  Stats: 3 lines in 2 files changed: 0 ins; 0 del; 3 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