Integrated: JDK-8257989: Error in gtest os_page_size_for_region_unaligned after 8257588

Marcus G K Williams github.com+168222+mgkwill at openjdk.java.net
Wed Dec 9 19:02:36 UTC 2020


On Wed, 9 Dec 2020 18:26:32 GMT, Marcus G K Williams <github.com+168222+mgkwill at openjdk.org> wrote:

> There appears to be a bug at ln105 of test/hotspot/gtest/runtime/test_os.cpp
> 
> https://github.com/openjdk/jdk/pull/1522/files/163b308b97c07d567c48f100475481cdc5e75740#diff-6d3fc66964a0fccf7f85c284fffec5dffa62be8497423a7684cee83d55338884R104
> 
> `   // Given a slightly smaller size than a page size,
>    // return the next smaller page size.
>     if (os::_page_sizes[1] > os::_page_sizes[0]) {
>       size_t expected = os::_page_sizes[0];
>       size_t actual = os::page_size_for_region_unaligned(os::_page_sizes[1] - 17, 1);
>       ASSERT_EQ(actual, expected);
>     for (size_t s = os::page_sizes().largest(); s != 0; s = os::page_sizes().next_smaller(s)) {
>       const size_t expected = os::page_sizes().next_smaller(s);
>       if (expected != 0) {
>         size_t actual = os::page_size_for_region_unaligned(expected - 17, 1);
>         ASSERT_EQ(actual, expected);
>       }
>     }`
> 
> On ln104 we are trying to compare the next smaller page size of 's', with a page size returned for slightly smaller size of the size 's -17'.
> 
> Instead we compare next smaller page size of 's' to 'expected - 17'. I believe this should be 's - 17':
> `os::page_size_for_region_unaligned(expected - 17, 1);`
> vs.
> `os::page_size_for_region_unaligned(s - 17, 1);`
> 
> Running gtest tests with 2 largepage sizes (3 total sizes) fails, however default of 2 page_sizes passes (4k and 2m or 1g):
> (./hotspot/variant-server/libjvm/gtest/gtestLauncher -jdk:./images/jdk -Xms2G -Xmx2G -XX:+UseLargePages -XX:LargePageSizeInBytes=2M)
>> [----------] 17 tests from os                                                                                                                                                                          [ RUN      ] os.page_size_for_region_vm                                                                                                                                                                [       OK ] os.page_size_for_region_vm (0 ms)                                                                                                                                                         [ RUN      ] os.page_size_for_region_aligned_vm                                                                                                                                                        [       OK ] os.page_size_for_region_aligned_vm (0 ms)                                                                                                                                                 
 [ RUN      ] os.page_size_for_region_alignment_vm                                                                                                                                                      [       OK ] os.page_size_for_region_alignment_vm (0 ms)                                                                                                                                               [ RUN      ] os.page_size_for_region_unaligned_vm                                                                                                                                                      test/hotspot/gtest/runtime/test_os.cpp:106: Failure                                                                                                                                                    Expected equality of these values:                                                                                                                                                                       
 actual                                                                                                                                                                                                   Which is: 4096                                                                                                                                                                                       expected                                                                                                                                                                                                 Which is: 2097152                                                                                                                                                                                  [  FAILED  ] os.page_size_for_region_unaligned_vm (0 ms) 
> 
> This only happen when https://github.com/openjdk/jdk/pull/1153 is present in code, because otherwise you will only have two page_sizes, but still this should return the correct results.
> 
> Signed-off-by: Marcus G K Williams <marcus.williams at intel.com>

This pull request has now been integrated.

Changeset: b977a7b8
Author:    Marcus G K Williams <marcus.williams at intel.com>
Committer: Thomas Stuefe <stuefe at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/b977a7b8
Stats:     1 line in 1 file changed: 0 ins; 0 del; 1 mod

8257989: Error in gtest os_page_size_for_region_unaligned after 8257588

Reviewed-by: stuefe

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

PR: https://git.openjdk.java.net/jdk/pull/1719


More information about the hotspot-runtime-dev mailing list