Speed up RISCV QEMU testing.

- Skip/delete some large tests.
 - Reduce some large tests.
 - Explicitly choose the CPU features, which seems to be disabling something expensive.

TEST=ci
Bug: https://github.com/dart-lang/sdk/issues/63465
Cq-Include-Trybots: luci.dart.try:vm-ffi-qemu-linux-release-arm-try,vm-ffi-qemu-linux-release-riscv64-try
Change-Id: Ifa591d6600da3e20c9de4d123906a7747029df7e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/509200
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
This commit is contained in:
Ryan Macnak
2026-06-08 13:27:27 -07:00
committed by dart-scoped@luci-project-accounts.iam.gserviceaccount.com
parent 9edafc75f7
commit 9b8d908379
6 changed files with 37 additions and 48 deletions
+1 -1
View File
@@ -250,7 +250,7 @@ dart/disassemble_determinism_test: Slow, Pass # Times out on slower bots.
dart/ctrlc_handling_test: SkipByDesign
[ $qemu ]
cc/ManyClasses: Slow, Pass # Generates 100k classes, slow on emulated architectures.
cc/ManyClasses: SkipSlow # Generates 100k classes, slow on emulated architectures.
cc/StressMallocDirectly: Skip # Queries RSS
cc/StressMallocThroughZones: Skip # Queries RSS
cc/SweepDontNeed: Skip # Queries RSS
-32
View File
@@ -531,38 +531,6 @@ BENCHMARK(SimpleMessage) {
benchmark->set_score(elapsed_time);
}
BENCHMARK(LargeMap) {
const char* kScript =
"@pragma('vm:entry-point', 'call')\n"
"makeMap() {\n"
" Map m = {};\n"
" for (int i = 0; i < 100000; ++i) m[i*13+i*(i>>7)] = i;\n"
" return m;\n"
"}";
Dart_Handle h_lib = TestCase::LoadTestScript(kScript, nullptr);
EXPECT_VALID(h_lib);
Dart_Handle h_result = Dart_Invoke(h_lib, NewString("makeMap"), 0, nullptr);
EXPECT_VALID(h_result);
TransitionNativeToVM transition(thread);
StackZone zone(thread);
Instance& map = Instance::Handle();
map ^= Api::UnwrapHandle(h_result);
const intptr_t kLoopCount = 100;
Timer timer;
timer.Start();
for (intptr_t i = 0; i < kLoopCount; i++) {
StackZone zone(thread);
std::unique_ptr<Message> message = WriteMessage(
/* same_group */ false, map, ILLEGAL_PORT, Message::kNormalPriority);
// Read object back from the snapshot.
ReadMessage(thread, message.get());
}
timer.Stop();
int64_t elapsed_time = timer.TotalElapsedTime();
benchmark->set_score(elapsed_time);
}
BENCHMARK_MEMORY(InitialRSS) {
benchmark->set_score(bin::Process::MaxRSS());
}
@@ -1785,7 +1785,8 @@ ASSEMBLER_TEST_RUN(InstructionFence, test) {
EXPECT_DISASSEMBLY(
"0000100f fence.i\n"
"00008067 ret\n");
Call(test->entry());
// Not running: may trap. This was removed from the user ISA.
}
ASSEMBLER_TEST_GENERATE(EnvironmentCall, assembler) {
@@ -201,6 +201,8 @@ void TestLargeFrame(const char* type,
const char* one,
const char* main) {
SetFlagScope<int> sfs(&FLAG_optimization_counter_threshold, 1000);
SetFlagScope<bool> sfs2(&FLAG_background_compilation, false);
TextBuffer printer(256 * KB);
intptr_t num_locals = 2000;
@@ -233,7 +235,7 @@ void TestLargeFrame(const char* type,
ISOLATE_UNIT_TEST_CASE(FlowGraph_LargeFrame_Int) {
TestLargeFrame("int", "0", "1",
"main() {\n"
" for (var i = 0; i < 100; i++) {\n"
" for (var i = 0; i < 3; i++) {\n"
" var r = largeFrame(1);\n"
" if (r != 2000) throw r;\n"
" }\n"
@@ -244,7 +246,7 @@ ISOLATE_UNIT_TEST_CASE(FlowGraph_LargeFrame_Int) {
ISOLATE_UNIT_TEST_CASE(FlowGraph_LargeFrame_Double) {
TestLargeFrame("double", "0.0", "1.0",
"main() {\n"
" for (var i = 0; i < 100; i++) {\n"
" for (var i = 0; i < 3; i++) {\n"
" var r = largeFrame(1);\n"
" if (r != 2000.0) throw r;\n"
" }\n"
@@ -255,7 +257,7 @@ ISOLATE_UNIT_TEST_CASE(FlowGraph_LargeFrame_Double) {
ISOLATE_UNIT_TEST_CASE(FlowGraph_LargeFrame_Int32x4) {
TestLargeFrame("Int32x4", "Int32x4(0, 0, 0, 0)", "Int32x4(1, 2, 3, 4)",
"main() {\n"
" for (var i = 0; i < 100; i++) {\n"
" for (var i = 0; i < 3; i++) {\n"
" var r = largeFrame(1);\n"
" if (r.x != 2000) throw r;\n"
" if (r.y != 4000) throw r;\n"
@@ -270,7 +272,7 @@ ISOLATE_UNIT_TEST_CASE(FlowGraph_LargeFrame_Float32x4) {
TestLargeFrame("Float32x4", "Float32x4(0.0, 0.0, 0.0, 0.0)",
"Float32x4(1.0, 2.0, 3.0, 4.0)",
"main() {\n"
" for (var i = 0; i < 100; i++) {\n"
" for (var i = 0; i < 3; i++) {\n"
" var r = largeFrame(1);\n"
" if (r.x != 2000.0) throw r;\n"
" if (r.y != 4000.0) throw r;\n"
@@ -284,7 +286,7 @@ ISOLATE_UNIT_TEST_CASE(FlowGraph_LargeFrame_Float32x4) {
ISOLATE_UNIT_TEST_CASE(FlowGraph_LargeFrame_Float64x2) {
TestLargeFrame("Float64x2", "Float64x2(0.0, 0.0)", "Float64x2(1.0, 2.0)",
"main() {\n"
" for (var i = 0; i < 100; i++) {\n"
" for (var i = 0; i < 3; i++) {\n"
" var r = largeFrame(1);\n"
" if (r.x != 2000.0) throw r;\n"
" if (r.y != 4000.0) throw r;\n"