RFR: 8315923: pretouch_memory by atomic-add-0 fragments huge pages unexpectedly
Johan Sjölen
jsjolen at openjdk.org
Mon Oct 2 10:26:49 UTC 2023
On Mon, 18 Sep 2023 07:37:26 GMT, Liming Liu <duke at openjdk.org> wrote:
> As described at [JDK-8315923](https://bugs.openjdk.org/browse/JDK-8315923), this patch uses madvise with MADV_POPULATE_WRITE to pretouch memory when supported (since kernel 5.14).
>
> Ran the newly added jtreg test on 64c Neoverse-N1 machines with kernel 4.18, 5.13 and 6.1, and observed that transparent huge pages formed right after pretouch on kernel 6.1. Recorded the time spent on the test in *seconds* with `VERBOSE=time` as the table below, and got that the patch takes improvements when the system call is supported, while does not hurt if not supported:
>
> <table>
> <tr>
> <th>Kernel</th>
> <th colspan="2"><tt>-XX:-TransparentHugePages</tt></th>
> <th colspan="2"><tt>-XX:+TransparentHugePages</tt></th>
> </tr>
> <tr><td></td><td>Unpatched</td><td>Patched</td><td>Unpatched</td><td>Patched</td></tr>
> <tr><td>4.18</td><td>11.30</td><td>11.30</td><td>0.25</td><td>0.25</td></tr>
> <tr><td>5.13</td><td>0.22</td><td>0.22</td><td>3.42</td><td>3.42</td></tr>
> <tr><td>6.1</td><td>0.27</td><td>0.33</td><td>3.54</td><td>0.33</td></tr>
> </table>
Some nits, but looks good to me.
src/hotspot/share/runtime/os.hpp line 230:
> 228: // Some platforms may have special treatments for pretouch, while most
> 229: // platforms do the same. So the common part of the code was extract here to
> 230: // avoid copying it around.
Small grammar fixes:
- treatment in singular
- do the same *thing*
- was extract*ed*
- Missing comma after "So"
```c++
// Some platforms may have special treatment for pretouch, while most
// platforms do the same thing. So, the common part of the code was extracted here to
// avoid copying it around.
-------------
PR Review: https://git.openjdk.org/jdk/pull/15781#pullrequestreview-1652473163
PR Review Comment: https://git.openjdk.org/jdk/pull/15781#discussion_r1342517099
More information about the hotspot-runtime-dev
mailing list