From d61bc072b22293ccde46e095925e38f0f262599d Mon Sep 17 00:00:00 2001 From: singhnitin Date: Thu, 15 Aug 2024 23:05:35 -0500 Subject: [PATCH] removing some os version dependencies and variables --- src/hotspot/os/windows/globals_windows.hpp | 2 +- src/hotspot/os/windows/os_windows.cpp | 2 - .../hotspot/gtest/runtime/test_os_windows.cpp | 55 +++++++------------ 3 files changed, 21 insertions(+), 38 deletions(-) diff --git a/src/hotspot/os/windows/globals_windows.hpp b/src/hotspot/os/windows/globals_windows.hpp index 268d8744e5784..5a947a9f8490c 100644 --- a/src/hotspot/os/windows/globals_windows.hpp +++ b/src/hotspot/os/windows/globals_windows.hpp @@ -40,7 +40,7 @@ product(bool, UseAllWindowsProcessorGroups, false, \ \ product(bool, EnableAllLargePageSizesForWindows, false, EXPERIMENTAL, \ "Enable support for multiple large page sizes on " \ - "Windows 11/Windows Server 2022 and later") \ + "Windows Server") \ \ product(bool, UseOSErrorReporting, false, \ "Let VM fatal error propagate to the OS (ie. WER on Windows)") diff --git a/src/hotspot/os/windows/os_windows.cpp b/src/hotspot/os/windows/os_windows.cpp index 529c842be5610..28eaa696eedc3 100644 --- a/src/hotspot/os/windows/os_windows.cpp +++ b/src/hotspot/os/windows/os_windows.cpp @@ -3336,8 +3336,6 @@ size_t os::win32::large_page_init_decide_size() { WARN("JVM cannot use large pages bigger than 4mb."); return 0; } - } else { - WARN("EnableAllLargePageSizesForWindows flag is ignored on Windows versions prior to Windows 11/Windows Server 2022 due to limited support."); } #endif if (LargePageSizeInBytes > 0) { diff --git a/test/hotspot/gtest/runtime/test_os_windows.cpp b/test/hotspot/gtest/runtime/test_os_windows.cpp index d8854d5259309..a81765955b7c7 100644 --- a/test/hotspot/gtest/runtime/test_os_windows.cpp +++ b/test/hotspot/gtest/runtime/test_os_windows.cpp @@ -733,7 +733,6 @@ TEST_VM(os_windows, large_page_init_multiple_sizes) { AutoSaveRestore guardLargePageSizeInBytes(LargePageSizeInBytes); FLAG_SET_CMDLINE(UseLargePages, true); FLAG_SET_CMDLINE(EnableAllLargePageSizesForWindows, true); - bool is_supported_windows_version = true; // Determine the minimum page size const size_t min_size = GetLargePageMinimum(); @@ -751,35 +750,29 @@ TEST_VM(os_windows, large_page_init_multiple_sizes) { os::large_page_init(); // Verify that large pages are enabled - if (is_supported_windows_version) { - EXPECT_TRUE(UseLargePages) << "UseLargePages should be true after initialization for LargePageSizeInBytes = 4 * min_size"; - } + EXPECT_TRUE(UseLargePages) << "UseLargePages should be true after initialization for LargePageSizeInBytes = 4 * min_size"; // Verify that decided_large_page_size is greater than the default page size const size_t default_page_size = os::vm_page_size(); size_t decided_large_page_size = os::win32::large_page_init_decide_size(); - if (is_supported_windows_version) { - EXPECT_GT(decided_large_page_size, default_page_size) << "Large page size should be greater than the default page size for LargePageSizeInBytes = 4 * min_size"; - } + EXPECT_GT(decided_large_page_size, default_page_size) << "Large page size should be greater than the default page size for LargePageSizeInBytes = 4 * min_size"; #if !defined(IA32) - if (is_supported_windows_version) { - size_t page_size_count = 0; - size_t page_size = os::page_sizes().largest(); + size_t page_size_count = 0; + size_t page_size = os::page_sizes().largest(); - do { - ++page_size_count; - page_size = os::page_sizes().next_smaller(page_size); - } while (page_size >= os::page_sizes().smallest()); + do { + ++page_size_count; + page_size = os::page_sizes().next_smaller(page_size); + } while (page_size >= os::page_sizes().smallest()); - EXPECT_GT(page_size_count, 1u) << "There should be multiple large page sizes available."; + EXPECT_GT(page_size_count, 1u) << "There should be multiple large page sizes available."; - size_t large_page_size = decided_large_page_size; + size_t large_page_size = decided_large_page_size; - for (size_t page_size = os::page_sizes().largest(); page_size >= min_size; page_size = os::page_sizes().next_smaller(page_size)) { - EXPECT_TRUE(page_size % min_size == 0) << "Each page size should be a multiple of the minimum large page size."; - EXPECT_LE(page_size, large_page_size) << "Page size should not exceed the determined large page size."; - } + for (size_t page_size = os::page_sizes().largest(); page_size >= min_size; page_size = os::page_sizes().next_smaller(page_size)) { + EXPECT_TRUE(page_size % min_size == 0) << "Each page size should be a multiple of the minimum large page size."; + EXPECT_LE(page_size, large_page_size) << "Page size should not exceed the determined large page size."; } #endif } @@ -793,16 +786,12 @@ TEST_VM(os_windows, large_page_init_decide_size) { AutoSaveRestore guardUseLargePages(UseLargePages); AutoSaveRestore guardLargePageSizeInBytes(LargePageSizeInBytes); FLAG_SET_CMDLINE(UseLargePages, true); - bool is_supported_windows_version = os::win32::is_windows_11_or_greater() || - os::win32::is_windows_server_2022_or_greater(); FLAG_SET_CMDLINE(LargePageSizeInBytes, 0); // Reset to default // Test for large page support size_t decided_size = os::win32::large_page_init_decide_size(); size_t min_size = GetLargePageMinimum(); - if (is_supported_windows_version && min_size == 0) { - EXPECT_EQ(decided_size, 0) << "Expected decided size to be 0 when large page is not supported by the processor"; - } + EXPECT_EQ(decided_size, 0) << "Expected decided size to be 0 when large page is not supported by the processor"; // Scenario 1: Test with 2MB large page size if (min_size == 2 * M) { @@ -812,19 +801,17 @@ TEST_VM(os_windows, large_page_init_decide_size) { } // Scenario 2: Test with 1MB large page size - if (is_supported_windows_version && min_size == 2 * M) { + if (min_size == 2 * M) { FLAG_SET_CMDLINE(LargePageSizeInBytes, 1 * M); // Set large page size to 1MB decided_size = os::win32::large_page_init_decide_size(); // Recalculate decided size EXPECT_EQ(decided_size, 2 * M) << "Expected decided size to be 2M when large page is 1M and OS reported size is 2M"; } #if defined(IA32) || defined(AMD64) - if (!is_supported_windows_version) { - FLAG_SET_CMDLINE(LargePageSizeInBytes, 5 * M); // Set large page size to 5MB - if (!EnableAllLargePageSizesForWindows) { - decided_size = os::win32::large_page_init_decide_size(); // Recalculate decided size - EXPECT_EQ(decided_size, 0) << "Expected decided size to be 0 for large pages bigger than 4mb on IA32 or AMD64"; - } + FLAG_SET_CMDLINE(LargePageSizeInBytes, 5 * M); // Set large page size to 5MB + if (!EnableAllLargePageSizesForWindows) { + decided_size = os::win32::large_page_init_decide_size(); // Recalculate decided size + EXPECT_EQ(decided_size, 0) << "Expected decided size to be 0 for large pages bigger than 4mb on IA32 or AMD64"; } #endif @@ -837,9 +824,7 @@ TEST_VM(os_windows, large_page_init_decide_size) { // Assert that the decided size defaults to minimum page size when LargePageSizeInBytes // is not a multiple of the minimum size, assuming conditions are always met - if(is_supported_windows_version) { - EXPECT_EQ(decided_size, min_size) << "Expected decided size to default to minimum large page size when LargePageSizeInBytes is not a multiple of minimum size"; - } + EXPECT_EQ(decided_size, min_size) << "Expected decided size to default to minimum large page size when LargePageSizeInBytes is not a multiple of minimum size"; } class ReserveMemorySpecialRunnable : public TestRunnable {