@@ -53,6 +53,7 @@ Result<std::vector<std::string>> CrosvmCpuArguments(
5353 std::map<std::string, std::vector<int >> freq_domains;
5454 std::string affinity_arg = " --cpu-affinity=" ;
5555 std::string capacity_arg = " --cpu-capacity=" ;
56+ std::string ipc_ratio_arg = " --cpu-ipc-ratio=" ;
5657 std::string frequencies_arg = " --cpu-frequencies-khz=" ;
5758 std::string cgroup_path_arg = " --vcpu-cgroup-path=" ;
5859 std::string freq_domain_arg;
@@ -71,6 +72,7 @@ Result<std::vector<std::string>> CrosvmCpuArguments(
7172 for (size_t i = 0 ; i < cpus; i++) {
7273 if (i != 0 ) {
7374 capacity_arg += " ," ;
75+ ipc_ratio_arg += " ," ;
7476 affinity_arg += " :" ;
7577 frequencies_arg += " ;" ;
7678 }
@@ -94,6 +96,10 @@ Result<std::vector<std::string>> CrosvmCpuArguments(
9496 CF_EXPECT (GetValue<std::string>(cpu_json, {" capacity" }));
9597 std::string cap_arg = fmt::format (" {}={}" , i, capacity);
9698
99+ const std::string cpu_ipc_ratio =
100+ CF_EXPECT (GetValue<std::string>(cpu_json, {" ipc_ratio" }));
101+ std::string ipc_arg = fmt::format (" {}={}" , i, cpu_ipc_ratio);
102+
97103 const std::string domain =
98104 CF_EXPECT (GetValue<std::string>(cpu_json, {" freq_domain" }));
99105
@@ -104,12 +110,14 @@ Result<std::vector<std::string>> CrosvmCpuArguments(
104110 capacity_arg += cap_arg;
105111 affinity_arg += affine_arg;
106112 frequencies_arg += freq_arg;
113+ ipc_ratio_arg += ipc_arg;
107114
108115 cpu_arguments.emplace_back (std::move (cpu_cluster));
109116 }
110117
111118 cpu_arguments.emplace_back (std::move (affinity_arg));
112119 cpu_arguments.emplace_back (std::move (capacity_arg));
120+ cpu_arguments.emplace_back (std::move (ipc_ratio_arg));
113121 cpu_arguments.emplace_back (std::move (frequencies_arg));
114122 cpu_arguments.emplace_back (std::move (cgroup_path_arg));
115123 cpu_arguments.emplace_back (" --virt-cpufreq-upstream" );
0 commit comments