RFR: 8333446: Add tests for hierarchical container support [v9]

Severin Gehwolf sgehwolf at openjdk.org
Tue Sep 10 09:18:11 UTC 2024


On Mon, 9 Sep 2024 17:28:16 GMT, Zdenek Zambersky <zzambers at openjdk.org> wrote:

>> Severin Gehwolf has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 17 additional commits since the last revision:
>> 
>>  - Adapt JDK-8339148
>>  - Merge branch 'master' into jdk-8333446-systemd-slice-tests
>>  - Merge branch 'master' into jdk-8333446-systemd-slice-tests
>>  - Fix comment of WB::host_cpus()
>>  - Handle non-root + CGv2
>>  - Add nested hierarchy to test framework
>>  - Revert "Add root check for SystemdMemoryAwarenessTest.java"
>>    
>>    This reverts commit 7e8d9ed46815096ae8c4502f3320ebf5208438d5.
>>  - Add root check for SystemdMemoryAwarenessTest.java
>>  - Merge branch 'master' into jdk-8333446-systemd-slice-tests
>>  - Merge branch 'master' into jdk-8333446-systemd-slice-tests
>>  - ... and 7 more: https://git.openjdk.org/jdk/compare/79b21a7e...30f32d22
>
> I have done some testing on RHELs (build with changes from this PR + other 2 container PRs applied):
> **RHEL-8** (cgroup1/non-root)
> - test was skipped correctly
> 
> **RHEL-9** (cgroup2/non-root)
> - I saw failure of `active_processor_count` check.
> - after investigation, I have found, that `cpu` cgroup controller is not delegated to `user at 1000.service` (and children) on rhel-9 (unlike in e.g. fedora) it only had `memory pids` (btw. available controllers at given "level" are listed in `cgroup.controllers` file in cgroups v2)
> - when I modified `user at .service` to also delegate cpu controller, test passed
> 
> Apart from issue with check for `active_processor_count` on RHEL-9/non-root, it looks good. However I don't know how to easily fix issue with `active_processor_count` check. Maybe check could be skipped for non-root. (Work-around is to modify system configuration.)

@zzambers Thanks for taking a look.

> I have done some testing on RHELs (build with changes from this PR + other 2 container PRs applied): **RHEL-8** (cgroup1/non-root)
> 
>     * test was skipped correctly
> 
> 
> **RHEL-9** (cgroup2/non-root)
> 
>     * I saw failure of `active_processor_count` check.
> 
>     * after investigation, I have found, that `cpu` cgroup controller is not delegated to `user at 1000.service` (and children) on rhel-9 (unlike in e.g. fedora) it only had `memory pids` (btw. available controllers at given "level" are listed in `cgroup.controllers` file in cgroups v2)
> 
>     * when I modified `user at .service` to also delegate cpu controller, test passed

Could it be that the setup you've done to employ delegation is similar to this one?
https://github.com/jerboaa/openjdk-cgroupv2-setup/blob/97690683af17b303276ea473fe44b3dde7ead327/config_cgroupv2.yml#L24-L32
 
> Apart from issue with check for `active_processor_count` on RHEL-9/non-root, it looks good. However I don't know how to easily fix issue with `active_processor_count` check. Maybe check could be skipped for non-root. (Work-around is to modify system configuration.)

Do existing podman container tests pass on that system? It seems fair to assume that that's the baseline config for container tests in general: systemd ones or podman/docker. I know that on cg v2 not all container tests pass out-of-the-box. In particular certain CPU awareness tests. Keeping that basic idea in terms of required config for those tests consistent with other container tests seem adequate to me.

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

PR Comment: https://git.openjdk.org/jdk/pull/19530#issuecomment-2340114316


More information about the hotspot-dev mailing list