mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-06-28 16:27:50 +00:00
agent: validate hugepage size is supported
before setting a limit, otherwise paths may not be found. guest supporting different hugepage size is more likely with peer-pods where podvm may use different flavor. Fixes: #5191 Signed-off-by: Snir Sheriber <ssheribe@redhat.com>
This commit is contained in:
parent
1dcb413e68
commit
72738dc11f
@ -252,19 +252,28 @@ fn set_devices_resources(
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn set_hugepages_resources(
|
fn set_hugepages_resources(
|
||||||
_cg: &cgroups::Cgroup,
|
cg: &cgroups::Cgroup,
|
||||||
hugepage_limits: &[LinuxHugepageLimit],
|
hugepage_limits: &[LinuxHugepageLimit],
|
||||||
res: &mut cgroups::Resources,
|
res: &mut cgroups::Resources,
|
||||||
) {
|
) {
|
||||||
info!(sl!(), "cgroup manager set hugepage");
|
info!(sl!(), "cgroup manager set hugepage");
|
||||||
let mut limits = vec![];
|
let mut limits = vec![];
|
||||||
|
let hugetlb_controller = cg.controller_of::<HugeTlbController>();
|
||||||
|
|
||||||
for l in hugepage_limits.iter() {
|
for l in hugepage_limits.iter() {
|
||||||
let hr = HugePageResource {
|
if hugetlb_controller.is_some() && hugetlb_controller.unwrap().size_supported(&l.page_size)
|
||||||
size: l.page_size.clone(),
|
{
|
||||||
limit: l.limit,
|
let hr = HugePageResource {
|
||||||
};
|
size: l.page_size.clone(),
|
||||||
limits.push(hr);
|
limit: l.limit,
|
||||||
|
};
|
||||||
|
limits.push(hr);
|
||||||
|
} else {
|
||||||
|
warn!(
|
||||||
|
sl!(),
|
||||||
|
"{} page size support cannot be verified, dropping requested limit", l.page_size
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
res.hugepages.limits = limits;
|
res.hugepages.limits = limits;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user