From 45abaef710a7265515471c4ce2d0096b4a966a7f Mon Sep 17 00:00:00 2001 From: Michal Hrusecky <Michal@Hrusecky.net> Date: Wed, 1 May 2019 21:54:49 +0200 Subject: [PATCH] procd: Try new style of cgroups --- .../0022-procd-New-style-of-cgroups.patch | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 patches/openwrt/to-upstream/0022-procd-New-style-of-cgroups.patch diff --git a/patches/openwrt/to-upstream/0022-procd-New-style-of-cgroups.patch b/patches/openwrt/to-upstream/0022-procd-New-style-of-cgroups.patch new file mode 100644 index 000000000..06a31cf05 --- /dev/null +++ b/patches/openwrt/to-upstream/0022-procd-New-style-of-cgroups.patch @@ -0,0 +1,90 @@ +From a0376b192655bd06c18e54095282bac5ba5c6570 Mon Sep 17 00:00:00 2001 +From: Michal Hrusecky <Michal@Hrusecky.net> +Date: Wed, 1 May 2019 21:45:31 +0200 +Subject: [PATCH] procd: New style of cgroups + +--- + package/system/procd/Makefile | 2 +- + .../new-style-of-cgroup-hiearchy.patch | 57 +++++++++++++++++++ + 2 files changed, 58 insertions(+), 1 deletion(-) + create mode 100644 package/system/procd/patches/new-style-of-cgroup-hiearchy.patch + +diff --git a/package/system/procd/Makefile b/package/system/procd/Makefile +index 5971e0293d..3cea5b803e 100644 +--- a/package/system/procd/Makefile ++++ b/package/system/procd/Makefile +@@ -15,7 +15,7 @@ PKG_SOURCE_URL=$(PROJECT_GIT)/project/procd.git + PKG_SOURCE_DATE:=2018-03-28 + PKG_SOURCE_VERSION:=dfb68f8556df63878add145ad9c656381bc20656 + PKG_MIRROR_HASH:=8d2c70fb0264a6548e39acc5ab1c44cec50fc550c4f931760b0796f8893c9b7f +-CMAKE_INSTALL:=1 ++CMAKE_INSTALL:=2 + + PKG_LICENSE:=GPL-2.0 + PKG_LICENSE_FILES:= +diff --git a/package/system/procd/patches/new-style-of-cgroup-hiearchy.patch b/package/system/procd/patches/new-style-of-cgroup-hiearchy.patch +new file mode 100644 +index 0000000000..1d7430269d +--- /dev/null ++++ b/package/system/procd/patches/new-style-of-cgroup-hiearchy.patch +@@ -0,0 +1,57 @@ ++Index: procd-2018-03-28-dfb68f85/initd/early.c ++=================================================================== ++--- procd-2018-03-28-dfb68f85.orig/initd/early.c +++++ procd-2018-03-28-dfb68f85/initd/early.c ++@@ -52,14 +52,51 @@ early_console(const char *dev) ++ } ++ ++ static void +++mount_cgroups() +++{ +++ int fd = open("/proc/cgroups", O_RDONLY|O_CLOEXEC); +++ char buff[1024]; +++ char cgroup_buff[1124]; +++ ssize_t sz = 0; +++ ssize_t i,j = 0; +++ if(fd <= 0) +++ return; +++ sz = read(fd, buff, 1023); +++ if(sz <=0 ) { +++ close(fd); +++ return; +++ } +++ buff[sz] = 0; +++ if(mount("tmpfs", "/sys/fs/cgroup", "tmpfs", MS_NOATIME | MS_NOSUID, "size=512K")) +++ sz = 0; +++ for(i=0; i<sz; i++) { +++ if((buff[i]) == '\n') { +++ i++; +++ j=i; +++ while(i < sz && buff[i] != '\t') i++; +++ if(i > j && i < sz) { +++ buff[i]=0; +++ snprintf(cgroup_buff, 1123, "/sys/fs/cgroup/%s", buff+j); +++ if(mkdir(cgroup_buff, 0755)) { +++ continue; +++ } +++ mount(buff+j, cgroup_buff, "cgroup", MS_NODEV | MS_NOEXEC | MS_NOSUID, buff+j); +++ } +++ } +++ } +++ close(fd); +++ return; +++} +++ +++static void ++ early_mounts(void) ++ { ++ unsigned int oldumask = umask(0); ++ ++ mount("proc", "/proc", "proc", MS_NOATIME | MS_NODEV | MS_NOEXEC | MS_NOSUID, 0); ++ mount("sysfs", "/sys", "sysfs", MS_NOATIME | MS_NODEV | MS_NOEXEC | MS_NOSUID, 0); ++- mount("cgroup", "/sys/fs/cgroup", "cgroup", MS_NODEV | MS_NOEXEC | MS_NOSUID, 0); ++ mount("tmpfs", "/dev", "tmpfs", MS_NOATIME | MS_NOSUID, "mode=0755,size=512K"); +++ mount_cgroups(); ++ ignore(symlink("/tmp/shm", "/dev/shm")); ++ mkdir("/dev/pts", 0755); ++ mount("devpts", "/dev/pts", "devpts", MS_NOATIME | MS_NOEXEC | MS_NOSUID, "mode=600"); +-- +2.21.0 + -- GitLab