Assertion page_chunks < MediumChunk fail for 16K page size on TestVirtualSpaceNodeTest
Leslie Zhai
zhaixiang at loongson.cn
Wed Sep 5 07:05:18 UTC 2018
Hi all,
Assertion page_chunks < MediumChunk fail for 16K page size on
TestVirtualSpaceNodeTest[1]:
...
STDOUT:
Running internal VM tests
Running test: TestOS_test()
Running test: TestReservedSpace_test()
Running test: TestReserveMemorySpecial_test()
Running test: TestVirtualSpace_test()
Running test: TestMetaspaceAux_test()
Running test: TestMetachunk_test()
Running test: TestVirtualSpaceNode_test()
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/metaspace.cpp:3871
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error
(/home/loongson/aoqi/jdk8-mips/hotspot/src/share/vm/memory/metaspace.cpp:3871),
pid=32657, tid=0x000000ffebd571f0
# assert(page_chunks < MediumChunk) failed: Test expects medium chunks
to be at least 4*page_size
#
# JRE version: OpenJDK Runtime Environment (8.0) (build
1.8.0-internal-fastdebug-loongson_2018_09_03_18_49-b00) (Loongson
8.1-loongson3a-Loongnix)
# Java VM: OpenJDK 64-Bit Server VM (25.71-b00-fastdebug mixed mode
linux-mips64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable
core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/loongson/tmp/JTwork/scratch/hs_err_pid32657.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
#
Current thread is 1099173294576
Dumping core ...
STDERR:
rerun:
cd /home/loongson/tmp/JTwork/scratch && \
DISPLAY=localhost:14.0 \
HOME=/home/loongson \
LANG=zh_CN.UTF-8 \
PATH=/bin:/usr/bin \
CLASSPATH=/home/loongson/tmp/JTwork/classes/sanity:/home/loongson/aoqi/jdk8-mips/hotspot/test/sanity:/home/loongson/aoqi/j2sdk-image-835-fastdebug/lib/tools.jar:/home/loongson/bin/jtreg/lib/javatest.jar:/home/loongson/bin/jtreg/lib/jtreg.jar
\
/home/loongson/aoqi/j2sdk-image-835-fastdebug/bin/java \
-Dtest.class.path.prefix=/home/loongson/tmp/JTwork/classes/sanity:/home/loongson/aoqi/jdk8-mips/hotspot/test/sanity
\
-Dtest.src=/home/loongson/aoqi/jdk8-mips/hotspot/test/sanity \
-Dtest.src.path=/home/loongson/aoqi/jdk8-mips/hotspot/test/sanity \
-Dtest.classes=/home/loongson/tmp/JTwork/classes/sanity \
-Dtest.class.path=/home/loongson/tmp/JTwork/classes/sanity \
-Dtest.vm.opts= \
-Dtest.tool.vm.opts= \
-Dtest.compiler.opts= \
-Dtest.java.opts= \
-Dtest.jdk=/home/loongson/aoqi/j2sdk-image-835-fastdebug \
-Dcompile.jdk=/home/loongson/aoqi/j2sdk-image-835-fastdebug \
-Dtest.timeout.factor=5.0 \
-XX:+IgnoreUnrecognizedVMOptions \
-XX:+ExecuteInternalVMTests \
com.sun.javatest.regtest.agent.MainWrapper
/home/loongson/tmp/JTwork/sanity/ExecuteInternalVMTests.d/main.0.jta
TEST RESULT: Failed. Unexpected exit from test [exit code: 134]
--------------------------------------------------
Test results: failed: 1
And it is also reproducible for x86 16K page size:
diff -r eed8e846c982 src/share/vm/memory/metaspace.cpp
--- a/src/share/vm/memory/metaspace.cpp Tue Jul 03 18:01:40 2018 -0700
+++ b/src/share/vm/memory/metaspace.cpp Wed Sep 05 14:56:10 2018 +0800
@@ -3867,7 +3867,7 @@
{ // 4 pages of VSN is committed, some is used by chunks
ChunkManager cm(SpecializedChunk, SmallChunk, MediumChunk);
VirtualSpaceNode vsn(vsn_test_size_bytes);
- const size_t page_chunks = 4 * (size_t)os::vm_page_size() /
BytesPerWord;
+ const size_t page_chunks = 4 * 16384 / BytesPerWord;
assert(page_chunks < MediumChunk, "Test expects medium chunks to
be at least 4*page_size");
vsn.initialize();
vsn.expand_by(page_chunks, page_chunks);
...
STDOUT:
Running internal VM tests
Running test: TestOS_test()
Running test: TestReservedSpace_test()
Running test: TestReserveMemorySpecial_test()
Running test: TestVirtualSpace_test()
Running test: TestMetaspaceAux_test()
Running test: TestMetachunk_test()
Running test: TestVirtualSpaceNode_test()
# To suppress the following error report, specify this argument
# after -XX: or in .hotspotrc: SuppressErrorAt=/metaspace.cpp:3871
#
# A fatal error has been detected by the Java Runtime Environment:
#
# Internal Error
(/home/loongson/zhaixiang/jdk8u/hotspot/src/share/vm/memory/metaspace.cpp:3871),
pid=8307, tid=0x00007fc9199d0700
# assert(page_chunks < MediumChunk) failed: Test expects medium chunks
to be at least 4*page_size
#
# JRE version: OpenJDK Runtime Environment (8.0) (build
1.8.0-internal-fastdebug-loongson_2018_09_05_13_48-b00)
# Java VM: OpenJDK 64-Bit Server VM (25.71-b00-fastdebug mixed mode
linux-amd64 compressed oops)
# Failed to write core dump. Core dumps have been disabled. To enable
core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /home/loongson/zhaixiang/JTwork/scratch/hs_err_pid8307.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
#
Current thread is 140501694875392
Dumping core ...
...
----- 8< -------- 8< -------- 8< -------- 8< -------- 8< -------- 8< ---
Because vm_page_size is setter by sysconf(_SC_PAGESIZE)[2] So could I
change the assertion?
diff -r eed8e846c982 src/share/vm/memory/metaspace.cpp
--- a/src/share/vm/memory/metaspace.cpp Tue Jul 03 18:01:40 2018 -0700
+++ b/src/share/vm/memory/metaspace.cpp Wed Sep 05 15:00:55 2018 +0800
@@ -3868,7 +3868,7 @@
ChunkManager cm(SpecializedChunk, SmallChunk, MediumChunk);
VirtualSpaceNode vsn(vsn_test_size_bytes);
const size_t page_chunks = 4 * (size_t)os::vm_page_size() /
BytesPerWord;
- assert(page_chunks < MediumChunk, "Test expects medium chunks to
be at least 4*page_size");
+ assert(page_chunks <= MediumChunk, "Test expects medium chunks to
be at least 4*page_size");
vsn.initialize();
vsn.expand_by(page_chunks, page_chunks);
vsn.get_chunk_vs(SmallChunk);
Please give me some suggestion, thanks a lot!
1.
http://hg.openjdk.java.net/jdk8u/jdk8u-dev/hotspot/file/1d1ea10fe09f/src/share/vm/memory/metaspace.cpp#l3588
2.
http://hg.openjdk.java.net/jdk8u/jdk8u-dev/hotspot/file/80ee2541504e/src/os/linux/vm/os_linux.cpp#l5009
--
Regards,
Leslie Zhai
More information about the jdk8u-dev
mailing list