From d925b19135f87b14a1ba90d66ee413b26f7729e4 Mon Sep 17 00:00:00 2001 From: Christoph Urlacher Date: Sun, 19 Apr 2026 13:19:55 +0200 Subject: [PATCH] add queries for other fault types --- scripts/Queries/FaultsFailed.pm | 6 ++++-- scripts/Queries/FaultsOuterspace.pm | 30 +++++++++++++++++++++++++++++ scripts/Queries/FaultsTimeout.pm | 30 +++++++++++++++++++++++++++++ scripts/Queries/FaultsTrap.pm | 30 +++++++++++++++++++++++++++++ scripts/runner.pl | 2 +- 5 files changed, 95 insertions(+), 3 deletions(-) create mode 100644 scripts/Queries/FaultsOuterspace.pm create mode 100644 scripts/Queries/FaultsTimeout.pm create mode 100644 scripts/Queries/FaultsTrap.pm diff --git a/scripts/Queries/FaultsFailed.pm b/scripts/Queries/FaultsFailed.pm index 30a4e31..d3ac6f9 100644 --- a/scripts/Queries/FaultsFailed.pm +++ b/scripts/Queries/FaultsFailed.pm @@ -7,14 +7,16 @@ use diagnostics; sub query { my ($experiment) = @_; + my $resulttype = 'FAIL_MARKER'; + 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 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 = 'FAIL_MARKER' +WHERE v.variant = '$experiment' AND r.resulttype = '$resulttype' GROUP BY p.injection_instr_absolute ORDER BY SUM(t.time2 - t.time1 + 1) DESC;" } diff --git a/scripts/Queries/FaultsOuterspace.pm b/scripts/Queries/FaultsOuterspace.pm new file mode 100644 index 0000000..c823dcb --- /dev/null +++ b/scripts/Queries/FaultsOuterspace.pm @@ -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; diff --git a/scripts/Queries/FaultsTimeout.pm b/scripts/Queries/FaultsTimeout.pm new file mode 100644 index 0000000..097ed28 --- /dev/null +++ b/scripts/Queries/FaultsTimeout.pm @@ -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; diff --git a/scripts/Queries/FaultsTrap.pm b/scripts/Queries/FaultsTrap.pm new file mode 100644 index 0000000..be34bf0 --- /dev/null +++ b/scripts/Queries/FaultsTrap.pm @@ -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; diff --git a/scripts/runner.pl b/scripts/runner.pl index 37bb704..60d3477 100644 --- a/scripts/runner.pl +++ b/scripts/runner.pl @@ -230,7 +230,7 @@ sub results { my $query = $_; $query =~ s/\.pm//g; - Util::notify("Running query $query for $experiment..."); + # Util::notify("Running query $query for $experiment..."); Util::execute_query( $experiment, $query, $remote_db_conf, $remote_builds_dir, 1 );