opencontainers / opencontainers/runc
oom when enabling memory cgroups without swap on IBM power 8
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 13.5k
- Forks
- 2.3k
- Avg merge
- 2d 8h
- Merged PRs (30d)
- 30
Description
The system has enough memory for testing even without swap.
# free -m
total used free shared buff/cache available
Mem: 31653 492 28329 4 2830 29414
Swap: 0 0 0
# runc -v
runc version 1.0.0-rc2
commit: 6d6086f29040d5d98dd8c67f2073010f10514ee3
spec: 1.0.0-rc3
Use the rootfs from docker.io/caiqian/rhel7
# runc spec
Make changes as below to enable memory cgroup,
...
"platform": {
"os": "linux",
"arch": "ppc64le"
...
"process": {
"terminal": false,
"args": [
"sleep", "6000"
],
...
"linux": {
"resources": {
"devices": [
{
"allow": false,
"access": "rwm"
}
],
"memory": {
"limit": 16742640,
"reservation": 19996672
}
},
# runc run -d root
# runc exec root ls
ls: error while loading shared libraries: libpcre.so.1: failed to map segment from shared object: Cannot allocate memory
# dmesg
...
[175567.920712] cache: kmalloc-512(0:root), object size: 512, buffer size: 512, default order: 0, min order: 0
[175567.920717] node 2: slabs: 6, objs: 768, free: 0
[175567.941567] SLUB: Unable to allocate memory on node -1 (gfp=0x80d0)
[175567.941572] cache: vm_area_struct(0:root), object size: 216, buffer size: 216, default order: 0, min order: 0
[175567.941576] node 2: slabs: 5, objs: 1515, free: 0
BTW, the page size is 64kb on those systems.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce the configuration using runc spec, runc run -d root, and runc exec root ls with the supplied RHEL7 rootfs, memory limits, ppc64le platform, and no swap. Start by comparing the cgroup and loader failures with the dmesg allocation errors on a 64 KB page-size system; done means identifying the cause and defining a verified runc fix or limitation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, linux
- Domain
- infrastructure, operating-systems
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100