fn remarks()

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
    }