separate client/server logs + move logs to experiment dir

This commit is contained in:
Christoph Urlacher
2026-05-04 13:32:04 +02:00
parent 2de6e20675
commit 10fe608a90

View File

@ -136,7 +136,7 @@ sub import_trace {
"-v $experiment",
"-b ip",
"--objdump objdump",
"--sources",
# "--sources",
)
);
system(
@ -150,7 +150,7 @@ sub import_trace {
"-v $experiment",
"-b mem",
"--objdump objdump",
"--sources",
# "--sources",
)
);
system(
@ -164,7 +164,7 @@ sub import_trace {
"-v $experiment",
"-b regs",
"--objdump objdump",
"--sources",
# "--sources",
)
);
@ -186,39 +186,19 @@ sub inject {
Util::notify("Injecting $experiment using $count cores...");
say "Forking...";
my $pid = fork();
die "fork failed: $!" unless defined $pid;
if ( $pid == 0 ) {
# child -> server
say "Running server in child process...";
exec(
join " ",
(
my $server_command = join " ", (
"$fail_server",
"--port $fail_server_port",
"--database-option-file $remote_db_conf",
"-v $experiment",
"-b %",
"--inject-single-bit",
"--inject-registers"
)
) == 0 or die "exec server failed: $!";
}
"--inject-registers",
">$remote_root/server.log"
);
say "Server command: $server_command";
# parent -> client
say "Waiting for server...";
sleep(10);
say "Running client with $count cores in parent process";
system(
join " ",
(
my $client_command = join " ", (
"nice $bochs_runner",
"-V $fail_share/vgabios.bin",
"-b $fail_share/BIOS-bochs-latest",
@ -236,9 +216,28 @@ sub inject {
"-Wf,--ok-marker=fail_marker_positive",
"-Wf,--fail-marker=fail_marker_negative",
"-Wf,--detected-marker=fail_marker_detected",
">/dev/null"
)
) == 0 or die "client failed: $?";
# ">/dev/null"
">$remote_root/client.log"
);
say "Client command: $client_command";
say "Forking...";
my $pid = fork();
die "fork failed: $!" unless defined $pid;
if ( $pid == 0 ) {
# child -> server
say "Running server in child process...";
exec($server_command) == 0 or die "exec server failed: $!";
}
# parent -> client
say "Waiting for server...";
sleep(10);
say "Running client with $count cores in parent process";
system($client_command) == 0 or die "client failed: $?";
say "Killing server with pid $pid...";
kill 'TERM', $pid;
@ -261,6 +260,10 @@ sub results {
}
}
system("rm $remote_root/runner.log");
system("rm $remote_root/server.log");
system("rm $remote_root/client.log");
# Run experiments
my @experiments = Util::find_subdirs($remote_builds_dir);
for my $experiment (@experiments) {
@ -271,6 +274,10 @@ for my $experiment (@experiments) {
import_trace($experiment);
inject($experiment);
results($experiment);
system("mv $remote_root/runner.log $remote_builds_dir/$experiment/runner.log");
system("mv $remote_root/server.log $remote_builds_dir/$experiment/server.log");
system("mv $remote_root/client.log $remote_builds_dir/$experiment/client.log");
}
Util::notify("Finished all experiments");