mirror of
https://github.com/edera-dev/krata.git
synced 2025-08-03 05:10:55 +00:00
feat(power-management-core): implement SetHostPowerManagementPolicy RPC
Signed-off-by: Ariadne Conill <ariadne@ariadne.space>
This commit is contained in:
@ -16,7 +16,7 @@ use krata::{
|
|||||||
PullImageReply, PullImageRequest, ReadGuestMetricsReply, ReadGuestMetricsRequest,
|
PullImageReply, PullImageRequest, ReadGuestMetricsReply, ReadGuestMetricsRequest,
|
||||||
ResolveGuestReply, ResolveGuestRequest, SnoopIdmReply, SnoopIdmRequest,
|
ResolveGuestReply, ResolveGuestRequest, SnoopIdmReply, SnoopIdmRequest,
|
||||||
WatchEventsReply, WatchEventsRequest, HostCpuTopologyRequest, HostCpuTopologyReply,
|
WatchEventsReply, WatchEventsRequest, HostCpuTopologyRequest, HostCpuTopologyReply,
|
||||||
HostCpuTopologyInfo,
|
HostCpuTopologyInfo, HostPowerManagementPolicy,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
@ -575,4 +575,21 @@ impl ControlService for DaemonControlService {
|
|||||||
|
|
||||||
Ok(Response::new(HostCpuTopologyReply { cpus }))
|
Ok(Response::new(HostCpuTopologyReply { cpus }))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async fn set_host_power_management_policy(
|
||||||
|
&self,
|
||||||
|
request: Request<HostPowerManagementPolicy>,
|
||||||
|
) -> Result<Response<HostPowerManagementPolicy>, Status> {
|
||||||
|
let policy = request.into_inner();
|
||||||
|
let power = self.runtime.power_management_context().await.map_err(ApiError::from)?;
|
||||||
|
let scheduler = &policy.scheduler;
|
||||||
|
|
||||||
|
power.set_smt_policy(policy.smt_awareness).await.map_err(ApiError::from)?;
|
||||||
|
power.set_scheduler_policy(scheduler).await.map_err(ApiError::from)?;
|
||||||
|
|
||||||
|
Ok(Response::new(HostPowerManagementPolicy {
|
||||||
|
scheduler: scheduler.to_string(),
|
||||||
|
smt_awareness: policy.smt_awareness,
|
||||||
|
}))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user