feat: 支持cgroups

BREAKING CHANGE:
支持cgroups对外变更:
1.在proc目录下支持plimits目录,支持ipc, pid, memory, devices, sched控制器

Close #I6GVPL

Signed-off-by: zhushengle <zhushengle@huawei.com>
Change-Id: Ib996e07bf148abce9e40290d6188b763b52e89bb
This commit is contained in:
zhushengle
2023-02-22 18:55:15 +08:00
parent 57455849ca
commit b45cdbda3e
38 changed files with 3931 additions and 42 deletions

View File

@@ -156,6 +156,12 @@ int SysSchedSetScheduler(int id, int policy, int prio, int flag)
id = (int)LOS_GetCurrProcessID();
}
#ifdef LOSCFG_KERNEL_PLIMITS
if (prio < OsPidLimitGetPriorityLimit()) {
return -EINVAL;
}
#endif
ret = OsPermissionToCheck(id, LOS_GetCurrProcessID());
if (ret < 0) {
return ret;
@@ -210,6 +216,12 @@ int SysSetProcessPriority(int which, int who, unsigned int prio)
who = (int)LOS_GetCurrProcessID();
}
#ifdef LOSCFG_KERNEL_PLIMITS
if (prio < OsPidLimitGetPriorityLimit()) {
return -EINVAL;
}
#endif
ret = OsPermissionToCheck(who, LOS_GetCurrProcessID());
if (ret < 0) {
return ret;
@@ -224,6 +236,12 @@ int SysSchedSetParam(int id, unsigned int prio, int flag)
return -OsUserTaskSchedulerSet(id, LOS_SCHED_RR, prio, false);
}
#ifdef LOSCFG_KERNEL_PLIMITS
if (prio < OsPidLimitGetPriorityLimit()) {
return -EINVAL;
}
#endif
return SysSetProcessPriority(LOS_PRIO_PROCESS, id, prio);
}