[LTP] Some tests fail with over-commit disabled

Mason slash.tmp@free.fr
Wed May 18 18:12:03 CEST 2016


Hello,

On a system with 1.5 GB of memory and no swap:

$ cat /proc/meminfo 
MemTotal:        1555140 kB
MemFree:         1472304 kB
MemAvailable:    1467212 kB
Buffers:               0 kB
Cached:            71080 kB
SwapCached:            0 kB
Active:            10300 kB
Inactive:          61368 kB
Active(anon):      10300 kB
Inactive(anon):    61368 kB
Active(file):          0 kB
Inactive(file):        0 kB
Unevictable:           0 kB
Mlocked:               0 kB
HighTotal:        794624 kB
HighFree:         721836 kB
LowTotal:         760516 kB
LowFree:          750468 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:           520 kB
Mapped:             1460 kB
Shmem:             71080 kB
Slab:               5264 kB
SReclaimable:       1264 kB
SUnreclaim:         4000 kB
KernelStack:         272 kB
PageTables:           68 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      777568 kB
Committed_AS:      72764 kB
VmallocTotal:     245760 kB
VmallocUsed:       18708 kB
VmallocChunk:     226272 kB


Some tests PASS when over-commit is enabled, but FAIL when it is disabled.

$ sysctl -w vm.overcommit_memory=0 && msgctl09
vm.overcommit_memory = 0
msgctl09    1  TPASS  :  msgctl09 ran successfully!

$ sysctl -w vm.overcommit_memory=2 && msgctl09
vm.overcommit_memory = 2
Fork failure in the second child of child group 4
Fork failure in the first child of child group 10
msgctl09    1  TFAIL  :  msgctl09.c:203: Child exit status = 1
Fork failure in the first child of child group 14
Fork failure in the second child of child group 15
Fork failure in the first child of child group 3
Fork failure in the second child of child group 2
Fork failure in the second child of child group 8
Fork failure in the second child of child group 7
/tmp$ Fork failure in the first child of child group 6
Fork failure in the first child of child group 11
Fork failure in the first child of child group 9
Fork failure in the first child of child group 12
Fork failure in the first child of child group 1
Fork failure in the first child of child group 0


Raising the overcommit amount doesn't seem to help (much).

$ sysctl -w vm.overcommit_ratio=95
$ grep Commit /proc/meminfo 
CommitLimit:     1477380 kB
Committed_AS:      72764 kB
$ sysctl -w vm.overcommit_memory=2 && msgctl09
vm.overcommit_memory = 2
Fork failure in the second child of child group 9
msgctl09    1  TFAIL  :  msgctl09.c:203: Child exit status = 1
Fork failure in the second child of child group 4
/tmp$ Fork failure in the second child of child group 1
Fork failure in the second child of child group 15
Fork failure in the second child of child group 0
Fork failure in the second child of child group 5
Fork failure in the first child of child group 7


I expected ulimit -s 500 to help, but it doesn't... Not sure why.

$ sysctl -w vm.overcommit_memory=2 && msgctl09
vm.overcommit_memory = 2
Fork failure in the second child of child group 10
Fork failure in the second child of child group 3
Fork failure in the first child of child group 14
Fork failure in the first child of child group 7
Fork failure in the second child of child group 0
Fork failure in the first child of child group 5
Fork failure in the first child of child group 1
Fork failure in the second child of child group 12
Fork failure in the second child of child group 6
Fork failure in the first child of child group 11
Fork failure in the second child of child group 2
msgctl09    1  TFAIL  :  msgctl09.c:203: Child exit status = 1


Does anyone have an idea why fork is failing?

Regards.


More information about the ltp mailing list