mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-03-31 17:55:36 +00:00
Move CoreAffinityConfig to aquatic_common, use in glommio http
This commit is contained in:
parent
8747f8de4e
commit
d659117ae5
7 changed files with 37 additions and 23 deletions
|
|
@ -26,6 +26,7 @@ aquatic_cli_helpers = "0.1.0"
|
|||
aquatic_common = "0.1.0"
|
||||
aquatic_http_protocol = "0.1.0"
|
||||
cfg-if = "1"
|
||||
core_affinity = "0.5"
|
||||
either = "1"
|
||||
hashbrown = "0.11.2"
|
||||
indexmap = "1"
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
use std::{net::SocketAddr, path::PathBuf};
|
||||
|
||||
use aquatic_common::access_list::AccessListConfig;
|
||||
use aquatic_common::cpu_pinning::CoreAffinityConfig;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use aquatic_cli_helpers::LogLevel;
|
||||
|
|
@ -23,6 +24,7 @@ pub struct Config {
|
|||
pub statistics: StatisticsConfig,
|
||||
pub privileges: PrivilegeConfig,
|
||||
pub access_list: AccessListConfig,
|
||||
pub core_affinity: CoreAffinityConfig,
|
||||
}
|
||||
|
||||
impl aquatic_cli_helpers::Config for Config {
|
||||
|
|
@ -116,6 +118,7 @@ impl Default for Config {
|
|||
statistics: StatisticsConfig::default(),
|
||||
privileges: PrivilegeConfig::default(),
|
||||
access_list: AccessListConfig::default(),
|
||||
core_affinity: CoreAffinityConfig::default(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,12 @@ mod network;
|
|||
const SHARED_CHANNEL_SIZE: usize = 1024;
|
||||
|
||||
pub fn run(config: Config) -> anyhow::Result<()> {
|
||||
if config.core_affinity.set_affinities {
|
||||
core_affinity::set_for_current(core_affinity::CoreId {
|
||||
id: config.core_affinity.offset,
|
||||
});
|
||||
}
|
||||
|
||||
let access_list = if config.access_list.mode.is_on() {
|
||||
AccessList::create_from_path(&config.access_list.path).expect("Load access list")
|
||||
} else {
|
||||
|
|
@ -43,9 +49,9 @@ pub fn run(config: Config) -> anyhow::Result<()> {
|
|||
|
||||
let mut builder = LocalExecutorBuilder::default();
|
||||
|
||||
// if config.core_affinity.set_affinities {
|
||||
// builder = builder.pin_to_cpu(config.core_affinity.offset + 1 + i);
|
||||
// }
|
||||
if config.core_affinity.set_affinities {
|
||||
builder = builder.pin_to_cpu(config.core_affinity.offset + 1 + i);
|
||||
}
|
||||
|
||||
let executor = builder.spawn(|| async move {
|
||||
network::run_socket_worker(
|
||||
|
|
@ -70,10 +76,10 @@ pub fn run(config: Config) -> anyhow::Result<()> {
|
|||
|
||||
let mut builder = LocalExecutorBuilder::default();
|
||||
|
||||
// if config.core_affinity.set_affinities {
|
||||
// builder =
|
||||
// builder.pin_to_cpu(config.core_affinity.offset + 1 + config.socket_workers + i);
|
||||
// }
|
||||
if config.core_affinity.set_affinities {
|
||||
builder =
|
||||
builder.pin_to_cpu(config.core_affinity.offset + 1 + config.socket_workers + i);
|
||||
}
|
||||
|
||||
let executor = builder.spawn(|| async move {
|
||||
handlers::run_request_worker(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue