Expand description
Operations on a HugeTLB subsystem.
Subsystem implements Cgroup trait and subsystem-specific operations.
For more information about this subsystem, see the kernel’s documentation Documentation/cgroup-v1/hugetlb.txt.
§Examples
use std::path::PathBuf;
use controlgroup::{
    Pid,
    v1::{self, hugetlb::{self, HugepageSize, Limit}, Cgroup, CgroupPath, SubsystemKind},
};
let mut hugetlb_cgroup = hugetlb::Subsystem::new(
    CgroupPath::new(SubsystemKind::HugeTlb, PathBuf::from("students/charlie")));
hugetlb_cgroup.create()?;
// Define a resource limit about how many hugepage TLB a cgroup can use.
let resources = hugetlb::Resources {
    limits: [
        (hugetlb::HugepageSize::Mb2, Limit::Pages(1)),
        (hugetlb::HugepageSize::Gb1, Limit::Pages(1)),
    ].iter().copied().collect(),
};
// Apply the resource limit.
hugetlb_cgroup.apply(&resources.into())?;
// Add tasks to this cgroup.
let pid = Pid::from(std::process::id());
hugetlb_cgroup.add_task(pid)?;
// Do something ...
hugetlb_cgroup.remove_task(pid)?;
hugetlb_cgroup.delete()?;Structs§
- Resources
 - Resource limit no how many hugepage TLBs a cgroup can use.
 - Subsystem
 - Handler of a HugeTLB subsystem.
 
Enums§
- Hugepage
Size  - Hugepage sizes.
 - Limit
 - Limit on hugepage TLB usage in different units.