RFR: JDK-8257588: Make os::_page_sizes a bitmask [v6]

Marcus G K Williams github.com+168222+mgkwill at openjdk.java.net
Wed Dec 9 18:30:38 UTC 2020


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

>> Thomas Stuefe has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Add missing include (ppc,s390 builds failed)
>
> test/hotspot/gtest/runtime/test_os.cpp line 104:
> 
>> 102:       const size_t expected = os::page_sizes().next_smaller(s);
>> 103:       if (expected != 0) {
>> 104:         size_t actual = os::page_size_for_region_unaligned(expected - 17, 1);
> 
> @tstuefe should **expected** here be **s** ?
> 
> It seems like we are trying to compare the next smaller page size of S, with a slightly smaller size of the size S.
> 
> `os::page_size_for_region_unaligned(expected - 17, 1);`
> vs.
> `os::page_size_for_region_unaligned(s - 17, 1);`
> 
> Running these 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.

See https://github.com/openjdk/jdk/pull/1719 for fix.

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

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


More information about the hotspot-dev mailing list