hash notify value, config fixes
This commit is contained in:
parent
558b464c1a
commit
4d29735354
@ -5,7 +5,7 @@ authors = ["Alwin Berger <alwin.berger@tu-dortmund.de>"]
|
|||||||
edition = "2021"
|
edition = "2021"
|
||||||
|
|
||||||
[features]
|
[features]
|
||||||
default = ["std", "snapshot_fast", "restarting", "do_hash_notify_state", "config_stg", "fuzz_int", "shortcut", "trace_job_response_times" ]
|
default = ["std", "snapshot_fast", "restarting", "do_hash_notify_state", "do_hash_notify_value", "config_stg", "fuzz_int", "shortcut", "trace_job_response_times" ]
|
||||||
std = []
|
std = []
|
||||||
# Exec environemnt basics
|
# Exec environemnt basics
|
||||||
snapshot_restore = []
|
snapshot_restore = []
|
||||||
@ -20,6 +20,7 @@ observe_edges = [] # observe cfg edges
|
|||||||
observe_hitcounts = [ "observe_edges" ] # reduces edge granularity
|
observe_hitcounts = [ "observe_edges" ] # reduces edge granularity
|
||||||
observe_systemstate = []
|
observe_systemstate = []
|
||||||
do_hash_notify_state = []
|
do_hash_notify_state = []
|
||||||
|
do_hash_notify_value = []
|
||||||
trace_job_response_times = [ "trace_stg" ]
|
trace_job_response_times = [ "trace_stg" ]
|
||||||
trace_stg = [ "observe_systemstate" ]
|
trace_stg = [ "observe_systemstate" ]
|
||||||
trace_reads = [ "trace_stg", "trace_job_response_times" ]
|
trace_reads = [ "trace_stg", "trace_job_response_times" ]
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import csv
|
import csv
|
||||||
import os
|
import os
|
||||||
def_flags="--release --no-default-features --features std,snapshot_fast,restarting,do_hash_notify_state,fuzz_int,trace_job_response_times"
|
def_flags="--release --no-default-features --features std,snapshot_fast,restarting,do_hash_notify_state,do_hash_notify_value,fuzz_int,trace_job_response_times"
|
||||||
remote="remote/"
|
remote="remote/"
|
||||||
RUNTIME=1800
|
RUNTIME=1800
|
||||||
NUM_ITERS=2
|
NUM_ITERS=2
|
||||||
@ -224,7 +224,7 @@ rule trace2gantt:
|
|||||||
|
|
||||||
rule quicktest:
|
rule quicktest:
|
||||||
input:
|
input:
|
||||||
expand("timedump/{fuzzer}/{target}{variant}#{num}.time", fuzzer=['feedgeneration100', 'stg'], target=['copter'], variant=['_seq_full', '_par_full', '_seq_stateful_full', '_par_stateful_full', '_seq_dataflow_full'], num=range(0,int( 4 ))),
|
expand("timedump/{fuzzer}/{target}{variant}#{num}.time", fuzzer=['feedgeneration100', 'stg'], target=['copter'], variant=['_seq_full', '_par_full', '_seq_stateful_full', '_par_stateful_full', '_seq_dataflow_full'], num=range(0,int( 3 ))),
|
||||||
|
|
||||||
rule all_bins:
|
rule all_bins:
|
||||||
input:
|
input:
|
||||||
|
@ -24,17 +24,17 @@ release_seq_stateful_bytes,main_release,FUZZ_INPUT,4096,trigger_Qemu_break,T3,
|
|||||||
release_par_stateful_full,main_release,FUZZ_INPUT,4096,trigger_Qemu_break,T3,0#10000;1#5000
|
release_par_stateful_full,main_release,FUZZ_INPUT,4096,trigger_Qemu_break,T3,0#10000;1#5000
|
||||||
release_par_stateful_int,main_release,FUZZ_INPUT,4096,trigger_Qemu_break,T3,0#10000;1#5000
|
release_par_stateful_int,main_release,FUZZ_INPUT,4096,trigger_Qemu_break,T3,0#10000;1#5000
|
||||||
release_par_stateful_bytes,main_release,FUZZ_INPUT,4096,trigger_Qemu_break,T3,
|
release_par_stateful_bytes,main_release,FUZZ_INPUT,4096,trigger_Qemu_break,T3,
|
||||||
coptere_seq_full,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
copter_seq_full,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
||||||
coptere_seq_full,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
copter_seq_full,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
||||||
coptere_seq_int,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
copter_seq_int,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
||||||
coptere_seq_bytes,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,
|
copter_seq_bytes,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,
|
||||||
coptere_par_full,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
copter_par_full,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
||||||
coptere_par_int,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
copter_par_int,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
||||||
coptere_par_bytes,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,
|
copter_par_bytes,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,
|
||||||
coptere_seq_stateful_full,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
copter_seq_stateful_full,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
||||||
coptere_seq_stateful_int,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
copter_seq_stateful_int,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
||||||
coptere_seq_stateful_bytes,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,
|
copter_seq_stateful_bytes,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,
|
||||||
coptere_par_stateful_full,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
copter_par_stateful_full,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
||||||
coptere_par_stateful_int,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
copter_par_stateful_int,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
||||||
coptere_par_stateful_bytes,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,
|
copter_par_stateful_bytes,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,
|
||||||
coptere_seq_dataflow_full,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
copter_seq_dataflow_full,main_osek,FUZZ_INPUT,4096,trigger_Qemu_break,FC,0#20000
|
|
@ -78,9 +78,12 @@ pub fn set_env_from_config(kernel : &PathBuf, path : &PathBuf) {
|
|||||||
let mut reader = csv::Reader::from_path(path).expect("CSV read from config failed");
|
let mut reader = csv::Reader::from_path(path).expect("CSV read from config failed");
|
||||||
let p = kernel.as_path();
|
let p = kernel.as_path();
|
||||||
let stem = p.file_stem().expect("Kernel filename error").to_str().unwrap();
|
let stem = p.file_stem().expect("Kernel filename error").to_str().unwrap();
|
||||||
|
let mut found = false;
|
||||||
for r in reader.records() {
|
for r in reader.records() {
|
||||||
let rec = r.expect("CSV entry error");
|
let rec = r.expect("CSV entry error");
|
||||||
if stem == &rec[0] {
|
if stem == &rec[0] {
|
||||||
|
println!("Config from file {:?}", rec);
|
||||||
|
found = true;
|
||||||
std::env::set_var("FUZZ_MAIN", &rec[1]);
|
std::env::set_var("FUZZ_MAIN", &rec[1]);
|
||||||
std::env::set_var("FUZZ_INPUT", &rec[2]);
|
std::env::set_var("FUZZ_INPUT", &rec[2]);
|
||||||
std::env::set_var("FUZZ_INPUT_LEN", &rec[3]);
|
std::env::set_var("FUZZ_INPUT_LEN", &rec[3]);
|
||||||
@ -88,6 +91,9 @@ pub fn set_env_from_config(kernel : &PathBuf, path : &PathBuf) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if !found {
|
||||||
|
eprintln!("No config found for kernel {:?}", stem);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -296,7 +296,7 @@ pub struct RefinedTCB {
|
|||||||
pub priority: u32,
|
pub priority: u32,
|
||||||
pub base_priority: u32,
|
pub base_priority: u32,
|
||||||
mutexes_held: u32,
|
mutexes_held: u32,
|
||||||
// notify_value: u32,
|
notify_value: u32,
|
||||||
notify_state: u8,
|
notify_state: u8,
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -307,6 +307,8 @@ impl PartialEq for RefinedTCB {
|
|||||||
&& self.base_priority == other.base_priority;
|
&& self.base_priority == other.base_priority;
|
||||||
#[cfg(feature = "do_hash_notify_state")]
|
#[cfg(feature = "do_hash_notify_state")]
|
||||||
let ret = ret && self.notify_state == other.notify_state;
|
let ret = ret && self.notify_state == other.notify_state;
|
||||||
|
#[cfg(feature = "do_hash_notify_value")]
|
||||||
|
let ret = ret && self.notify_state == other.notify_state;
|
||||||
ret
|
ret
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -318,7 +320,8 @@ impl Hash for RefinedTCB {
|
|||||||
self.mutexes_held.hash(state);
|
self.mutexes_held.hash(state);
|
||||||
#[cfg(feature = "do_hash_notify_state")]
|
#[cfg(feature = "do_hash_notify_state")]
|
||||||
self.notify_state.hash(state);
|
self.notify_state.hash(state);
|
||||||
// self.notify_value.hash(state);
|
#[cfg(feature = "do_hash_notify_value")]
|
||||||
|
self.notify_value.hash(state);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -336,7 +339,7 @@ impl RefinedTCB {
|
|||||||
priority: input.uxPriority,
|
priority: input.uxPriority,
|
||||||
base_priority: input.uxBasePriority,
|
base_priority: input.uxBasePriority,
|
||||||
mutexes_held: input.uxMutexesHeld,
|
mutexes_held: input.uxMutexesHeld,
|
||||||
// notify_value: input.ulNotifiedValue[0],
|
notify_value: input.ulNotifiedValue[0],
|
||||||
notify_state: input.ucNotifyState[0],
|
notify_state: input.ucNotifyState[0],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -354,7 +357,7 @@ impl RefinedTCB {
|
|||||||
priority: input.uxPriority,
|
priority: input.uxPriority,
|
||||||
base_priority: input.uxBasePriority,
|
base_priority: input.uxBasePriority,
|
||||||
mutexes_held: input.uxMutexesHeld,
|
mutexes_held: input.uxMutexesHeld,
|
||||||
// notify_value: input.ulNotifiedValue[0],
|
notify_value: input.ulNotifiedValue[0],
|
||||||
notify_state: input.ucNotifyState[0],
|
notify_state: input.ucNotifyState[0],
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user