Projects
openEuler:24.03:SP1:Everything
openjdk-1.8.0
_service:tar_scm:Add-CMS-s-trim-test-cases-and-...
Sign Up
Log In
Username
Password
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File _service:tar_scm:Add-CMS-s-trim-test-cases-and-fix-failure.patch of Package openjdk-1.8.0
From 69b1d2f90f27a9158bc16d549dd0afc7a4e955a8 Mon Sep 17 00:00:00 2001 From: d30023828 <douyiwang@huawei.com> Date: Sat, 28 Jan 2023 15:47:20 +0800 Subject: [PATCH 1/6] Add CMS's trim test cases and fix failure DTS/AR: DTS2022120810426 Summary: <CDS> : Add CMS's trim test cases and fix failure LLT: NA Patch Type: huawei Bug url: NA --- hotspot/test/gc/TestTrimNative.java | 77 ++++++++++++++++++++++------- 1 file changed, 58 insertions(+), 19 deletions(-) diff --git a/hotspot/test/gc/TestTrimNative.java b/hotspot/test/gc/TestTrimNative.java index 58d540527..e0ac7734b 100644 --- a/hotspot/test/gc/TestTrimNative.java +++ b/hotspot/test/gc/TestTrimNative.java @@ -41,7 +41,7 @@ package gc; /* * @test id=fullgc-serial * @summary Test that GCTrimNativeHeap works with Serial - * @requires vm.gc=="Serial" + * @requires vm.gc=="Serial" | vm.gc == "null" * @requires os.family=="linux" * @modules java.base/jdk.internal.misc * @library /testlibrary @@ -51,17 +51,27 @@ package gc; /* * @test id=fullgc-parallel * @summary Test that GCTrimNativeHeap works with Parallel - * @requires vm.gc=="Parallel" + * @requires vm.gc=="Parallel" | vm.gc == "null" * @requires os.family=="linux" * @modules java.base/jdk.internal.misc * @library /testlibrary * @run driver gc.TestTrimNative test-fullgc parallel */ + /* + * @test id=fullgc-concMarkSweep + * @summary Test that GCTrimNativeHeap works with concMarkSweep + * @requires vm.gc=="ConcMarkSweep" | vm.gc=="null" + * @requires os.family=="linux" + * @modules java.base/jdk.internal.misc + * @library /testlibrary + * @run driver gc.TestTrimNative test-fullgc concMarkSweep + */ + /* * @test id=fullgc-g1 * @summary Test that GCTrimNativeHeap works with G1 - * @requires vm.gc=="G1" + * @requires vm.gc=="G1" | vm.gc == "null" * @requires os.family=="linux" * @modules java.base/jdk.internal.misc * @library /testlibrary @@ -75,17 +85,27 @@ package gc; /* * @test id=auto-parallel * @summary Test that GCTrimNativeHeap works with Parallel - * @requires vm.gc=="Parallel" + * @requires vm.gc=="Parallel" | vm.gc == "null" * @requires os.family=="linux" * @modules java.base/jdk.internal.misc * @library /testlibrary * @run driver gc.TestTrimNative test-auto parallel */ + /* + * @test id=auto-concMarkSweep + * @summary Test that GCTrimNativeHeap works with concMarkSweep + * @requires vm.gc=="ConcMarkSweep" | vm.gc == "null" + * @requires os.family=="linux" + * @modules java.base/jdk.internal.misc + * @library /testlibrary + * @run driver gc.TestTrimNative test-auto concMarkSweep + */ + /* * @test id=auto-g1 * @summary Test that GCTrimNativeHeap works with G1 - * @requires vm.gc=="G1" + * @requires vm.gc=="G1" | vm.gc == "null" * @requires os.family=="linux" * @modules java.base/jdk.internal.misc * @library /testlibrary @@ -100,17 +120,27 @@ package gc; /* * @test id=auto-high-interval-parallel * @summary Test that a high GCTrimNativeHeapInterval effectively disables automatic trimming - * @requires vm.gc=="Parallel" + * @requires vm.gc=="Parallel" | vm.gc == "null" * @requires os.family=="linux" * @modules java.base/jdk.internal.misc * @library /testlibrary * @run driver gc.TestTrimNative test-auto-high-interval parallel */ +/* + * @test id=auto-high-interval-concMarkSweep + * @summary Test that a high GCTrimNativeHeapInterval effectively disables automatic trimming + * @requires vm.gc=="ConcMarkSweep" | vm.gc == "null" + * @requires os.family=="linux" + * @modules java.base/jdk.internal.misc + * @library /testlibrary + * @run driver gc.TestTrimNative test-auto-high-interval concMarkSweep + */ + /* * @test id=auto-high-interval-g1 * @summary Test that a high GCTrimNativeHeapInterval effectively disables automatic trimming - * @requires vm.gc=="G1" + * @requires vm.gc=="G1" | vm.gc == "null" * @requires os.family=="linux" * @modules java.base/jdk.internal.misc * @library /testlibrary @@ -124,17 +154,27 @@ package gc; /* * @test id=auto-zero-interval-parallel * @summary Test that a GCTrimNativeHeapInterval=0 disables periodic trimming - * @requires vm.gc=="Parallel" + * @requires vm.gc=="Parallel" | vm.gc == "null" * @requires os.family=="linux" * @modules java.base/jdk.internal.misc * @library /testlibrary * @run driver gc.TestTrimNative test-auto-zero-interval parallel */ +/* + * @test id=auto-zero-interval-concMarkSweep + * @summary Test that a GCTrimNativeHeapInterval=0 disables periodic trimming + * @requires vm.gc=="ConcMarkSweep" | vm.gc == "null" + * @requires os.family=="linux" + * @modules java.base/jdk.internal.misc + * @library /testlibrary + * @run driver gc.TestTrimNative test-auto-zero-interval concMarkSweep + */ + /* * @test id=auto-zero-interval-g1 * @summary Test that a GCTrimNativeHeapInterval=0 disables periodic trimming - * @requires vm.gc=="G1" + * @requires vm.gc=="G1" | vm.gc == "null" * @requires os.family=="linux" * @modules java.base/jdk.internal.misc * @library /testlibrary @@ -196,20 +236,19 @@ public class TestTrimNative { } enum GC { - serial, parallel, g1, shenandoah, z; + serial, parallel, g1, concMarkSweep; String getSwitchName() { String s = name(); return "-XX:+Use" + s.substring(0, 1).toUpperCase() + s.substring(1) + "GC"; } - boolean isZ() { return this == GC.z; } boolean isSerial() { return this == GC.serial; } boolean isParallel() { return this == GC.parallel; } boolean isG1() { return this == GC.g1; } - boolean isShenandoah() { return this == GC.shenandoah; } + boolean isConcMarkSweep() { return this == GC.concMarkSweep; } } static private boolean usesNativeTrimmer(GC gc) { - return gc.isG1() || gc.isParallel() || gc.isZ(); + return gc.isG1() || gc.isParallel() || gc.isConcMarkSweep(); } static private final OutputAnalyzer runTestWithOptions(String[] extraOptions, String[] testArgs) throws Exception { @@ -234,7 +273,7 @@ public class TestTrimNative { /** * Given JVM output, look for a log line that describes a successful negative trim in the megabyte range * like this: - * "[2.053s][debug][gc,trim] Trim native heap (retain size: 5120K): RSS+Swap: 271M->223M (-49112K), 2.834ms" + * "Trim native heap (retain size: 5120K): RSS+Swap: 271M->223M (-49112K), 2.834ms" * (Note: we use the "properXXX" print routines, therefore units can differ) * Check that the sum of all trim log lines comes to a total RSS reduction in the MB range * @param output @@ -244,7 +283,7 @@ public class TestTrimNative { private final static void parseOutputAndLookForNegativeTrim(OutputAnalyzer output, int minExpected, int maxExpected) { output.reportDiagnosticSummary(); List<String> lines = output.asLines(); - Pattern pat = Pattern.compile(".*\\[gc,trim\\] Trim native heap.*RSS\\+Swap: (\\d+)([KMB])->(\\d+)([KMB]).*"); + Pattern pat = Pattern.compile(".*Trim native heap.*RSS\\+Swap: (\\d+)([KMB])->(\\d+)([KMB]).*"); int numTrimsFound = 0; long rssReductionTotal = 0; for (String line : lines) { @@ -270,7 +309,7 @@ public class TestTrimNative { // This is very fuzzy. We malloced X, free'd X, trimmed, measured the combined effect of all reductions. // This does not take into effect mallocs or frees that may happen concurrently. But we expect to see *some* // reduction somewhere. Test with a fudge factor. - float fudge = 0.8f; + float fudge = 0.25f; long expectedMinimalReduction = (long) (totalAllocationsSize * fudge); if (rssReductionTotal < expectedMinimalReduction) { throw new RuntimeException("We did not see the expected RSS reduction in the UL log. Expected (with fudge)" + @@ -293,8 +332,8 @@ public class TestTrimNative { // started and shut down properly. if (usesNativeTrimmer(gc)) { output.shouldContain("NativeTrimmer started"); - output.shouldContain("NativeTrimmer paused"); - output.shouldContain("NativeTrimmer unpaused"); + //Only debug version JDK contains this item: output.shouldContain("NativeTrimmer paused"); + //Only debug version JDK contains this item: output.shouldContain("NativeTrimmer unpaused"); output.shouldContain("NativeTrimmer stopped"); } else { output.shouldNotContain("NativeTrimmer"); @@ -432,4 +471,4 @@ public class TestTrimNative { } -} \ No newline at end of file +} -- 2.22.0
Locations
Projects
Search
Status Monitor
Help
Open Build Service
OBS Manuals
API Documentation
OBS Portal
Reporting a Bug
Contact
Mailing List
Forums
Chat (IRC)
Twitter
Open Build Service (OBS)
is an
openSUSE project
.
浙ICP备2022010568号-2