fix runner external commands
This commit is contained in:
@ -86,28 +86,10 @@ sub trace {
|
|||||||
notify("Tracing $experiment...");
|
notify("Tracing $experiment...");
|
||||||
|
|
||||||
system(
|
system(
|
||||||
$bochs_runner,
|
"$bochs_runner -V $fail_share/vgabios.bin -b $fail_share/BIOS-bochs-latest -1 -f $fail_trace -e $remote_builds_dir/$experiment/system.elf -i $remote_builds_dir/$experiment/system.iso -- -Wf,--start-symbol=fail_start_trace -Wf,--save-symbol=fail_start_trace -Wf,--end-symbol=fail_stop_trace -Wf,--state-file=$remote_builds_dir/$experiment/state -Wf,--trace-file=$remote_builds_dir/$experiment/trace.pb -Wf,--elf-file=$remote_builds_dir/$experiment/system.elf"
|
||||||
"-V",
|
|
||||||
"$fail_share/vgabios.bin",
|
|
||||||
"-b",
|
|
||||||
"$fail_share/BIOS-bochs-latest",
|
|
||||||
"-1",
|
|
||||||
"-f",
|
|
||||||
"$fail_trace",
|
|
||||||
"-e",
|
|
||||||
"$remote_builds_dir/$experiment/system.elf",
|
|
||||||
"-i",
|
|
||||||
"$remote_builds_dir/$experiment/system.iso",
|
|
||||||
"--",
|
|
||||||
"-Wf,--start-symbol=fail_start_trace",
|
|
||||||
"-Wf,--save-symbol=fail_start_trace",
|
|
||||||
"-Wf,--end-symbol=fail_stop_trace",
|
|
||||||
"-Wf,--state-file=$remote_builds_dir/$experiment/state",
|
|
||||||
"-Wf,--trace-file=$remote_builds_dir/$experiment/trace.pb",
|
|
||||||
"-Wf,--elf-file=$remote_builds_dir/$experiment/system.elf"
|
|
||||||
);
|
);
|
||||||
|
|
||||||
notify("Tracing $experiment complete.");
|
# notify("Tracing $experiment complete.");
|
||||||
}
|
}
|
||||||
|
|
||||||
sub import_trace {
|
sub import_trace {
|
||||||
@ -116,67 +98,26 @@ sub import_trace {
|
|||||||
notify("Importing $experiment trace...");
|
notify("Importing $experiment trace...");
|
||||||
|
|
||||||
system(
|
system(
|
||||||
"$fail_import", "--database-option-file",
|
"$fail_import --database-option-file $remote_db_conf -t $remote_builds_dir/$experiment/trace.pb -i MemoryImporter -e $remote_builds_dir/$experiment/system.elf -v $experiment -b mem"
|
||||||
$remote_db_conf, "-t",
|
|
||||||
"$remote_builds_dir/$experiment/trace.pb", "-i",
|
|
||||||
"MemoryImporter", "-e",
|
|
||||||
"$remote_builds_dir/$experiment/system.elf", "-v",
|
|
||||||
$experiment, "-b",
|
|
||||||
"mem"
|
|
||||||
);
|
);
|
||||||
system(
|
system(
|
||||||
"$fail_import", "--database-option-file",
|
"$fail_import --database-option-file $remote_db_conf -t $remote_builds_dir/$experiment/trace.pb -i RegisterImporter -e $remote_builds_dir/$experiment/system.elf -v $experiment -b regs --flags"
|
||||||
$remote_db_conf, "-t",
|
|
||||||
"$remote_builds_dir/$experiment/trace.pb", "-i",
|
|
||||||
"RegisterImporter", "-e",
|
|
||||||
"$remote_builds_dir/$experiment/system.elf", "-v",
|
|
||||||
$experiment, "-b",
|
|
||||||
"regs", "--flags"
|
|
||||||
);
|
);
|
||||||
system(
|
system(
|
||||||
"$fail_import", "--database-option-file",
|
"$fail_import --database-option-file $remote_db_conf -t $remote_builds_dir/$experiment/trace.pb -i RegisterImporter -e $remote_builds_dir/$experiment/system.elf -v $experiment -b ip --no-gp --ip"
|
||||||
$remote_db_conf, "-t",
|
|
||||||
"$remote_builds_dir/$experiment/trace.pb", "-i",
|
|
||||||
"RegisterImporter", "-e",
|
|
||||||
"$remote_builds_dir/$experiment/system.elf", "-v",
|
|
||||||
$experiment, "-b",
|
|
||||||
"ip", "--no-gp",
|
|
||||||
"--ip"
|
|
||||||
);
|
);
|
||||||
system(
|
system(
|
||||||
"$fail_import", "--database-option-file",
|
"$fail_import --database-option-file $remote_db_conf -t $remote_builds_dir/$experiment/trace.pb -i ElfImporter --objdump objdump -e $remote_builds_dir/$experiment/system.elf -v $experiment -b ip"
|
||||||
$remote_db_conf, "-t",
|
|
||||||
"$remote_builds_dir/$experiment/trace.pb", "-i",
|
|
||||||
"ElfImporter", "--objdump",
|
|
||||||
"objdump", "-e",
|
|
||||||
"$remote_builds_dir/$experiment/system.elf", "-v",
|
|
||||||
$experiment, "-b",
|
|
||||||
"ip"
|
|
||||||
);
|
);
|
||||||
system(
|
system(
|
||||||
"$fail_import", "--database-option-file",
|
"$fail_import --database-option-file $remote_db_conf -t $remote_builds_dir/$experiment/trace.pb -i ElfImporter --objdump objdump -e $remote_builds_dir/$experiment/system.elf -v $experiment -b mem"
|
||||||
$remote_db_conf, "-t",
|
|
||||||
"$remote_builds_dir/$experiment/trace.pb", "-i",
|
|
||||||
"ElfImporter", "--objdump",
|
|
||||||
"objdump", "-e",
|
|
||||||
"$remote_builds_dir/$experiment/system.elf", "-v",
|
|
||||||
$experiment, "-b",
|
|
||||||
"mem"
|
|
||||||
);
|
);
|
||||||
system(
|
system(
|
||||||
"$fail_import", "--database-option-file",
|
"$fail_import --database-option-file $remote_db_conf -t $remote_builds_dir/$experiment/trace.pb -i ElfImporter --objdump objdump -e $remote_builds_dir/$experiment/system.elf -v $experiment -b regs"
|
||||||
$remote_db_conf, "-t",
|
|
||||||
"$remote_builds_dir/$experiment/trace.pb", "-i",
|
|
||||||
"ElfImporter", "--objdump",
|
|
||||||
"objdump", "-e",
|
|
||||||
"$remote_builds_dir/$experiment/system.elf", "-v",
|
|
||||||
"$experiment", "-b",
|
|
||||||
"regs"
|
|
||||||
);
|
);
|
||||||
system( "$fail_prune", "--database-option-file", "$remote_db_conf",
|
system( "$fail_prune --database-option-file $remote_db_conf -v $experiment -b %% --overwrite" );
|
||||||
"-v", $experiment, "-b", "%%", "--overwrite" );
|
|
||||||
|
|
||||||
notify("Importing $experiment trace complete.");
|
# notify("Importing $experiment trace complete.");
|
||||||
}
|
}
|
||||||
|
|
||||||
sub inject {
|
sub inject {
|
||||||
@ -191,50 +132,31 @@ sub inject {
|
|||||||
|
|
||||||
# child -> server
|
# child -> server
|
||||||
exec(
|
exec(
|
||||||
$fail_server, "--port",
|
"$fail_server --port $fail_server_port --database-option-file $remote_db_conf -v $experiment -b % --inject-single-bit --inject-registers"
|
||||||
$fail_server_port, "--database-option-file",
|
|
||||||
$remote_db_conf, "-v",
|
|
||||||
$experiment, "-b",
|
|
||||||
"%", "--inject-single-bit",
|
|
||||||
"--inject-registers"
|
|
||||||
) or die "exec server failed: $!";
|
) or die "exec server failed: $!";
|
||||||
}
|
}
|
||||||
|
|
||||||
# parent -> client
|
# parent -> client
|
||||||
my $count = cpu_count();
|
# my $count = cpu_count();
|
||||||
system(
|
my $count = 1;
|
||||||
"nice",
|
|
||||||
$bochs_runner,
|
|
||||||
"-V", "$fail_share/vgabios.bin",
|
|
||||||
"-b", "$fail_share/BIOS-bochs-latest",
|
|
||||||
"-f", "$fail_inject",
|
|
||||||
"-e", "$remote_builds_dir/$experiment/system.elf",
|
|
||||||
"-i", "$remote_builds_dir/$experiment/system.iso",
|
|
||||||
"-j", $count,
|
|
||||||
"--",
|
|
||||||
"-Wf,--server-port=$fail_server_port",
|
|
||||||
"-Wf,--state-dir=$remote_builds_dir/$experiment/state",
|
|
||||||
"-Wf,--trap",
|
|
||||||
"-Wf,--catch-outerspace",
|
|
||||||
|
|
||||||
# "-Wf,--catch-write-textsegment",
|
# "-Wf,--catch-write-textsegment",
|
||||||
"-Wf,--timeout=500000",
|
system(
|
||||||
"-Wf,--ok-marker=fail_marker_positive",
|
"nice $bochs_runner -V $fail_share/vgabios.bin -b $fail_share/BIOS-bochs-latest -f $fail_inject -e $remote_builds_dir/$experiment/system.elf -i $remote_builds_dir/$experiment/system.iso -j $count -- -Wf,--server-port=$fail_server_port -Wf,--state-dir=$remote_builds_dir/$experiment/state -Wf,--trap -Wf,--catch-outerspace -Wf,--timeout=500000 -Wf,--ok-marker=fail_marker_positive -Wf,--fail-marker=fail_marker_negative -Wf,--detected-marker=fail_marker_detected > /dev/null"
|
||||||
"-Wf,--fail-marker=fail_marker_negative",
|
|
||||||
"-Wf,--detected-marker=fail_marker_detected",
|
|
||||||
">/dev/null"
|
|
||||||
) or die "client failed: $?";
|
) or die "client failed: $?";
|
||||||
|
|
||||||
kill 'TERM', $pid;
|
kill 'TERM', $pid;
|
||||||
waitpid( $pid, 0 );
|
waitpid( $pid, 0 );
|
||||||
|
|
||||||
notify("Injecting $experiment complete.");
|
# notify("Injecting $experiment complete.");
|
||||||
}
|
}
|
||||||
|
|
||||||
# TODO: Add a function that accepts query + output file args
|
# TODO: Add a function that accepts query + output file args
|
||||||
sub results {
|
sub results {
|
||||||
my ($experiment) = @_;
|
my ($experiment) = @_;
|
||||||
|
|
||||||
|
notify("Querying $experiment...");
|
||||||
|
|
||||||
my $results_overview_query = "SELECT
|
my $results_overview_query = "SELECT
|
||||||
variant, benchmark, resulttype, sum(t.time2 - t.time1 + 1) as faults
|
variant, benchmark, resulttype, sum(t.time2 - t.time1 + 1) as faults
|
||||||
FROM variant v
|
FROM variant v
|
||||||
|
|||||||
Reference in New Issue
Block a user