in resctl-bench/src/bench/iocost_tune.rs [1658:1724]
fn remarks(&self, res: &IoCostTuneResult) -> Vec<String> {
let mut remarks = vec![];
// Remark on latencies.
if let (Some(rlat_50_mean), Some(rlat_99_mean), Some(rlat_99_99), Some(rlat_100_100)) = (
res.data
.get(&DataSel::RLat("50".to_string(), "mean".to_string())),
res.data
.get(&DataSel::RLat("99".to_string(), "mean".to_string())),
res.data
.get(&DataSel::RLat("99".to_string(), "99".to_string())),
res.data
.get(&DataSel::RLat("100".to_string(), "100".to_string())),
) {
remarks.append(&mut self.remark_on_lat(
READ,
rlat_50_mean,
rlat_99_mean,
rlat_99_99,
rlat_100_100,
));
} else {
remarks.push("rlat-99-99 and/or rlat-100-100 unavailable.".to_string());
}
if let (Some(wlat_50_mean), Some(wlat_99_mean), Some(wlat_99_99), Some(wlat_100_100)) = (
res.data
.get(&DataSel::RLat("50".to_string(), "mean".to_string())),
res.data
.get(&DataSel::RLat("99".to_string(), "mean".to_string())),
res.data
.get(&DataSel::WLat("99".to_string(), "99".to_string())),
res.data
.get(&DataSel::WLat("100".to_string(), "100".to_string())),
) {
remarks.append(&mut self.remark_on_lat(
WRITE,
wlat_50_mean,
wlat_99_mean,
wlat_99_99,
wlat_100_100,
));
} else {
remarks.push("wlat-99-99 and/or wlat-100-100 unavailable.".to_string());
}
// Remark on aMOF-delta.
for (name, sol) in res.solutions.iter() {
match &sol.target {
QoSTarget::AMOFMaxVrate
| QoSTarget::AMOFDeltaMin
| QoSTarget::IsolatedBandwidth => {
let err = sol.adjusted_mem_offload_delta / sol.mem_offload_factor;
if err >= 0.05 {
remarks.push(format!(
"{}: Isolatable memory size is {}% < supportable, sizing may be difficult.",
name,
format_pct(err),
));
}
}
_ => {}
}
}
remarks
}