randomize interrupts until wort
This commit is contained in:
parent
48466ac2d7
commit
bbc83ef6be
@ -84,7 +84,7 @@ impl Default for MaxIcountMetadata {
|
|||||||
|
|
||||||
/// A piece of metadata tracking all icounts
|
/// A piece of metadata tracking all icounts
|
||||||
#[derive(Debug, SerdeAny, Serialize, Deserialize)]
|
#[derive(Debug, SerdeAny, Serialize, Deserialize)]
|
||||||
pub struct IcHist(pub Vec<u64>);
|
pub struct IcHist (pub Vec<u64>, pub u64);
|
||||||
|
|
||||||
//========== Observer
|
//========== Observer
|
||||||
|
|
||||||
@ -139,10 +139,11 @@ where
|
|||||||
let hist = metadata.get_mut::<IcHist>();
|
let hist = metadata.get_mut::<IcHist>();
|
||||||
match hist {
|
match hist {
|
||||||
None => {
|
None => {
|
||||||
metadata.insert(IcHist(vec![self.end_tick - self.start_tick]));
|
metadata.insert(IcHist(vec![self.end_tick - self.start_tick], self.end_tick-self.start_tick));
|
||||||
}
|
}
|
||||||
Some(v) => {
|
Some(v) => {
|
||||||
v.0.push(self.end_tick - self.start_tick);
|
v.0.push(self.end_tick - self.start_tick);
|
||||||
|
v.1 = max(v.1, self.end_tick - self.start_tick);
|
||||||
if v.0.len() >= 100 {
|
if v.0.len() >= 100 {
|
||||||
if let Ok(td) = env::var("TIME_DUMP") {
|
if let Ok(td) = env::var("TIME_DUMP") {
|
||||||
let mut file = OpenOptions::new()
|
let mut file = OpenOptions::new()
|
||||||
|
@ -351,7 +351,10 @@ where
|
|||||||
}
|
}
|
||||||
#[cfg(not(feature = "feed_systemtrace"))]
|
#[cfg(not(feature = "feed_systemtrace"))]
|
||||||
{
|
{
|
||||||
let maxtick : u64 = (_input.exec_time().expect("No duration found").as_nanos() >> 4).try_into().unwrap();
|
let metadata = state.metadata();
|
||||||
|
let hist = metadata.get::<IcHist>().unwrap();
|
||||||
|
let maxtick : u64 = hist.1;
|
||||||
|
// let maxtick : u64 = (_input.exec_time().expect("No duration found").as_nanos() >> 4).try_into().unwrap();
|
||||||
let mut numbers : Vec<u32> = vec![];
|
let mut numbers : Vec<u32> = vec![];
|
||||||
for i in 0..num_interrupts {
|
for i in 0..num_interrupts {
|
||||||
prefix.push(u32::to_le_bytes(myrand.between(0, maxtick).try_into().unwrap()));
|
prefix.push(u32::to_le_bytes(myrand.between(0, maxtick).try_into().unwrap()));
|
||||||
|
Loading…
x
Reference in New Issue
Block a user