add queries for other fault types

This commit is contained in:
2026-04-19 13:19:55 +02:00
parent 31d2b422cb
commit d925b19135
5 changed files with 95 additions and 3 deletions

View File

@ -7,14 +7,16 @@ use diagnostics;
sub query { sub query {
my ($experiment) = @_; my ($experiment) = @_;
my $resulttype = 'FAIL_MARKER';
return return
"SELECT CONCAT('0x', HEX(p.injection_instr_absolute)) AS fault_address, SUM(t.time2 - t.time1 + 1) AS total_fail_markers "SELECT CONCAT('0x', HEX(p.injection_instr_absolute)) AS fault_address, SUM(t.time2 - t.time1 + 1) AS total_results
FROM trace t FROM trace t
JOIN variant v ON v.id = t.variant_id JOIN variant v ON v.id = t.variant_id
JOIN fspgroup g ON g.variant_id = t.variant_id AND g.instr2 = t.instr2 AND g.data_address = t.data_address JOIN fspgroup g ON g.variant_id = t.variant_id AND g.instr2 = t.instr2 AND g.data_address = t.data_address
JOIN result_GenericExperimentMessage r ON r.pilot_id = g.pilot_id JOIN result_GenericExperimentMessage r ON r.pilot_id = g.pilot_id
JOIN fsppilot p ON p.id = r.pilot_id JOIN fsppilot p ON p.id = r.pilot_id
WHERE v.variant = '$experiment' AND r.resulttype = 'FAIL_MARKER' WHERE v.variant = '$experiment' AND r.resulttype = '$resulttype'
GROUP BY p.injection_instr_absolute GROUP BY p.injection_instr_absolute
ORDER BY SUM(t.time2 - t.time1 + 1) DESC;" ORDER BY SUM(t.time2 - t.time1 + 1) DESC;"
} }

View File

@ -0,0 +1,30 @@
package Queries::FaultsOuterspace;
use strict;
use warnings;
use diagnostics;
sub query {
my ($experiment) = @_;
my $resulttype = 'ACCESS_OUTERSPACE';
return
"SELECT CONCAT('0x', HEX(p.injection_instr_absolute)) AS fault_address, SUM(t.time2 - t.time1 + 1) AS total_results
FROM trace t
JOIN variant v ON v.id = t.variant_id
JOIN fspgroup g ON g.variant_id = t.variant_id AND g.instr2 = t.instr2 AND g.data_address = t.data_address
JOIN result_GenericExperimentMessage r ON r.pilot_id = g.pilot_id
JOIN fsppilot p ON p.id = r.pilot_id
WHERE v.variant = '$experiment' AND r.resulttype = '$resulttype'
GROUP BY p.injection_instr_absolute
ORDER BY SUM(t.time2 - t.time1 + 1) DESC;"
}
sub args { return "--batch --raw"; }
sub filename { return "faults_outerspace.csv"; }
sub postprocess { $_[0] =~ s/\t/,/g; }
1;

View File

@ -0,0 +1,30 @@
package Queries::FaultsTimeout;
use strict;
use warnings;
use diagnostics;
sub query {
my ($experiment) = @_;
my $resulttype = 'TIMEOUT';
return
"SELECT CONCAT('0x', HEX(p.injection_instr_absolute)) AS fault_address, SUM(t.time2 - t.time1 + 1) AS total_results
FROM trace t
JOIN variant v ON v.id = t.variant_id
JOIN fspgroup g ON g.variant_id = t.variant_id AND g.instr2 = t.instr2 AND g.data_address = t.data_address
JOIN result_GenericExperimentMessage r ON r.pilot_id = g.pilot_id
JOIN fsppilot p ON p.id = r.pilot_id
WHERE v.variant = '$experiment' AND r.resulttype = '$resulttype'
GROUP BY p.injection_instr_absolute
ORDER BY SUM(t.time2 - t.time1 + 1) DESC;"
}
sub args { return "--batch --raw"; }
sub filename { return "faults_timeout.csv"; }
sub postprocess { $_[0] =~ s/\t/,/g; }
1;

View File

@ -0,0 +1,30 @@
package Queries::FaultsTrap;
use strict;
use warnings;
use diagnostics;
sub query {
my ($experiment) = @_;
my $resulttype = 'TRAP';
return
"SELECT CONCAT('0x', HEX(p.injection_instr_absolute)) AS fault_address, SUM(t.time2 - t.time1 + 1) AS total_results
FROM trace t
JOIN variant v ON v.id = t.variant_id
JOIN fspgroup g ON g.variant_id = t.variant_id AND g.instr2 = t.instr2 AND g.data_address = t.data_address
JOIN result_GenericExperimentMessage r ON r.pilot_id = g.pilot_id
JOIN fsppilot p ON p.id = r.pilot_id
WHERE v.variant = '$experiment' AND r.resulttype = '$resulttype'
GROUP BY p.injection_instr_absolute
ORDER BY SUM(t.time2 - t.time1 + 1) DESC;"
}
sub args { return "--batch --raw"; }
sub filename { return "faults_trap.csv"; }
sub postprocess { $_[0] =~ s/\t/,/g; }
1;

View File

@ -230,7 +230,7 @@ sub results {
my $query = $_; my $query = $_;
$query =~ s/\.pm//g; $query =~ s/\.pm//g;
Util::notify("Running query $query for $experiment..."); # Util::notify("Running query $query for $experiment...");
Util::execute_query( $experiment, $query, Util::execute_query( $experiment, $query,
$remote_db_conf, $remote_builds_dir, 1 ); $remote_db_conf, $remote_builds_dir, 1 );