RFR: 8205051: UseNUMA memory interleaving vs cpunodebind & localalloc [v3]
Swati Sharma
duke at openjdk.org
Fri Dec 13 10:27:58 UTC 2024
> Hi All,
>
> The PR handles the performance issues related to flag UseNUMA. We disable the UseNUMA flag when the process gets invoked with incorrect node alignment.
> We check the cpunodebind and membind(or interleave for interleave policy) bitmask equality and disable UseNUMA when they are not equal.
> For example on a 4 NUMA node system:
> 0123 Node Number
> 1100 cpunodebind bitmask
> 1111 membind bitmask
> Disable UseNUMA as CPU and memory bitmask are not equal.
>
> 0123 Node Number
> 1100 cpunodebind bitmask
> 1100 membind bitmask
> Enable UseNUMA as CPU and memory bitmask are equal.
>
> This covers all the cases with all policies and tested this with below command
> numactl --cpunodebind=0,1 --localalloc java -Xlog:gc*=info -XX:+UseParallelGC -XX:+UseNUMA -version
>
> For localalloc and preferred policies the membind bitmask returns true for all nodes, hence if cpunodebind is not bound to all nodes then the UseNUMA will be disabled.
>
> This PR covers disabling the UseNUMA flag for all GC's hence we observed an improvement of ~25% on G1GC , ~20% on ZGC and ~7-8% on PGC in both throughput and latency on SPECjbb2015 on a 2 NUMA node SRF-SP system with 6Group configuration.
>
> Please review and provide your valuable comments.
>
> Thanks,
> Swati Sharma
> Intel
Swati Sharma has updated the pull request incrementally with one additional commit since the last revision:
8205051: Added an extra method disable_numa to handle individual cases, minor comment change
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/22395/files
- new: https://git.openjdk.org/jdk/pull/22395/files/220e9519..16338513
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=22395&range=02
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=22395&range=01-02
Stats: 29 lines in 2 files changed: 11 ins; 11 del; 7 mod
Patch: https://git.openjdk.org/jdk/pull/22395.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/22395/head:pull/22395
PR: https://git.openjdk.org/jdk/pull/22395
More information about the hotspot-runtime-dev
mailing list