Feature-gate CPU pinning, since it only works on Linux

This commit is contained in:
Joakim Frostegård 2021-11-09 11:40:16 +01:00
parent c90c82fb5c
commit 4f8328b70a
22 changed files with 77 additions and 19 deletions

View file

@ -1,7 +1,6 @@
use std::net::SocketAddr;
use aquatic_cli_helpers::LogLevel;
use aquatic_common::cpu_pinning::CpuPinningConfig;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, Serialize, Deserialize)]
@ -13,7 +12,8 @@ pub struct Config {
pub num_connections: usize,
pub duration: usize,
pub torrents: TorrentConfig,
pub cpu_pinning: CpuPinningConfig,
#[cfg(feature = "cpu-pinning")]
pub cpu_pinning: aquatic_common::cpu_pinning::CpuPinningConfig,
}
impl aquatic_cli_helpers::Config for Config {
@ -49,7 +49,8 @@ impl Default for Config {
num_connections: 8,
duration: 0,
torrents: TorrentConfig::default(),
cpu_pinning: CpuPinningConfig::default_for_load_test(),
#[cfg(feature = "cpu-pinning")]
cpu_pinning: aquatic_common::cpu_pinning::CpuPinningConfig::default_for_load_test(),
}
}
}

View file

@ -3,6 +3,7 @@ use std::thread;
use std::time::{Duration, Instant};
use ::glommio::LocalExecutorBuilder;
#[cfg(feature = "cpu-pinning")]
use aquatic_common::cpu_pinning::{pin_current_if_configured_to, WorkerIndex};
use rand::prelude::*;
use rand_distr::Pareto;
@ -64,6 +65,7 @@ fn run(config: Config) -> ::anyhow::Result<()> {
LocalExecutorBuilder::default()
.spawn(move || async move {
#[cfg(feature = "cpu-pinning")]
pin_current_if_configured_to(
&config.cpu_pinning,
config.num_workers,
@ -75,6 +77,7 @@ fn run(config: Config) -> ::anyhow::Result<()> {
.unwrap();
}
#[cfg(feature = "cpu-pinning")]
pin_current_if_configured_to(
&config.cpu_pinning,
config.num_workers as usize,