Linux version 2.2.5 memory management

Richard B. Johnson (root@chaos.analogic.com)
Sat, 17 Apr 1999 20:04:19 -0400 (EDT)


This message is in MIME format. The first part should be readable text,
while the remaining parts are likely unreadable without MIME-aware tools.
Send mail to mime@docserver.cac.washington.edu for more info.

---1295196120-2044441634-924393859=:2483
Content-Type: TEXT/PLAIN; charset=US-ASCII

There is a serious problem with V2.2.5 memory management.
When the machine is first booted (single-user, no swap, only root mounted)
I can acquire about 50 megabyte of free pages from a 132 megabyte machine.

Whether or not this is appropriate is another matter. I acquire pages
until the 'low_on_memory' flag is true. If I acquire pages until the
return value is NULL, the machine will hang forever with processes being
killed off including init.

If I dirty the pages, then give them all back -- and I promise that I
did give them all back (source-code is available), on subsequent attempts
to acquire pages, I can only get about a megabyte.

Once in this new state, I acquire and give back the same low amount
consistantly. In other words, there is an initial gigantic leak, followed
by no aparent additional leak.

The test-code implements a device module which can be configured as
a FIFO, i.e., you write to it until it's full, then you can read back
what has been written. This is not the 'Unix' notion of a FIFO, but
a FIFO that can be read and written as a device. This device can initially
acquire about 50 megabytes of pages before it is 'full'. It is emptied
by reading from it, at which time it returns pages to the kernel.

Therefore the testing can be done with a simple script, the results are
attached.

If I do the tests in single-user mode, then restart multi-user,
eventually (after several hours), the kernel recovers most of the pages
that have been lost. I can speed up the recovery by executing `ls -R /`,
i.e., exercising the directory cache.

At that time, I can consistently get 30 or more megabytes of pages without
any apparent additional leaks.

I believe that there is something very wrong with the heuistics in
returning free pages to the free list. Free pages have to go on the
free list before they have been sorted out to see what makes continuous
areas of various sizes. It looks from the code that recently freed
pages are not used again until they have been 'coalased' because somebody
needed some continuous ones via kmalloc.

Cheers,
Dick Johnson
***** FILE SYSTEM WAS MODIFIED *****
Penguin : Linux version 2.2.5 on an i686 machine (400.59 BogoMips).
Warning : It's hard to remain at the trailing edge of technology.

---1295196120-2044441634-924393859=:2483
Content-Type: APPLICATION/octet-stream; name="typescript.gz"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.LNX.3.95.990417200419.2483B@chaos.analogic.com>
Content-Description:

H4sIAHsHGTcAA+2dW2/byhHH3wX4O2yRl7SA671f/FI4TtwGaHKCyMVB+3Ig
W3QsxLEMSU7SfvruUhdL4dBaXiXRoyQKvd6dXXJW5I9/zQ5f/enkanR/Mr3t
vSLk8nY0Jf7vz58//5qW9K4HM3LyMBlfn3xLvo3ub8a9YfJ9lkxnJOldP5AT
/9PJ/5LJmPiN0XVaNt8ilNKtNdjWGnxrDbG1htxaQ22tobfWMFtr2K013NYa
Z1trvNla43xrjbdba7zbWuOidzclx3cDv/mX3uQbOb5ZbH0bD1f1M7MrvPrX
k9HDjExng8ksGZLxPen7emcPE8IMYfaU6lMuCXPO9b5Mxt+Tu8H98PRkMh7P
ToaT0fdkQl6R6S05/r6Yx0fZfo56ZPGajWeDu9Ow9ThNhunGzSRJ/Mb0djAJ
JVePNzfJZOpLrgfXt77kqPch+eZ/1FJJa7UkxHFjpKREKW6Y9IMjkjNprN/g
0lGhLSGCW+kcP+r1fwweTom2XFsqOF0OhD4VpR1crgZGtPAmyNc3afnFfHTh
pYQzq/L+YrjhJRmbl79ZjT19cSl4Wn4+35Nl375Pm5aHsa061v5l6ap81fFa
+epkcNS7eH/xG/G+TUhyP7i6S4ZH0BQJhaeL7VPycUymDwM/Xe6Sm1lw9FOl
tdNIXYZYXYZ4XYZEXYZkXYZUXYZ0XYZMXYZsXYZcXYbO6jL0pi5D53UZeluX
oXd1Gbo4WrsgHfWOJz+OJ8fhrz+jMRKuHumpcLWhJNfSn302Ljzz09HWtr61
NYpn2rKYtoxaxrP98ri2gnOZaSvi2vqWNtNWVuhXRfZrmc601ZH9apE9zqbC
/toK++vi2jJms23P4tpK/yfT9k2FMZ9HHisKfBbeVtjfdzFtOedCZ/v1n+UV
UR5tIGXjrOdZzNCASyQAnlbaG/FcZxj3OKYZVzJAHxOSMg2xnhPGeS7UlhnJ
hdCxrOe785YB1iN+XADrKS6UhljPj10WYT1l9Lx++LMfvK0FM1ynPhBG89QH
zkgrrfeB3+/gDMIV5d49kA+Mo4rb4ANrnQlMHusDkeMDpzjkA+YWvvnVB0tf
xvrALfgceRt5G3kbebuDvB0ujRZgmyjeZowqnWW5SN4GGTKSt/2ZPNtvJG+D
bSN5G+TASN4G+43kbbBtJG+DY47kbbDfSN4G+22Bt8ExR/I22G8kb4P9RvF2
Tttd8jZ3ai6pMuVSkdWfKBzjwvM2d36wztOfBz1/kwFqq+VZT2kKs54GeZsZ
KkHWU7aQtrpivT3ibX+gjeCBtzVl/jYnHAUraFC8m/ZBDm8vfNO0D5C3kbeR
t5G3u8jbOdwbx9tUWpXVbCN5G2SMWN6GuKgN3obaxvI2NOZ9522obSRvg/Oq
Dd6G2iJvF+ZtFb66Crwtgt65wdvWOd4U6ykwluEZ3oa11U7wdvae54m3m/RB
7j1PHm/X6wPkbeRt5G3k7Y7yNvT9eyxvQ5wQy9sQqyNvx7fdd30bahvF2x4r
jMjOjVjehuZVLG9DY47lbeg4Hy5vZ7XVBW8LxawIJZwy5+uArGckk2k8iaOa
mQLxJPnaKhxPwjWorTJneDHW43sXT+J9IMIRDz5QOmyseLtpH9givF27D5C3
kbeRt5G3u8nbICe0wdtQv23wNtS2hfjtFxdPUpq3dxhPgry9NZ5EaGFYKn1b
x4WCtdUKrFconoSLBbv9ynohzPnQedtqJljK29YotcHbIeCcNuUDLYvxdpj3
dfoAeRt5G3kbebuTvM0oA9ZqRfI2GDPQRjxJlfjtCrxdSd+uwttV9G2o3z2P
3wbXlu47b3crnsRKFgIWguCsTcp6S942TLoQYcKsr6NpzbzN81gP5m0Jr5dM
164eOm87a7m185sQz9dkjbcb9kGh+O3afYC8jbyNvI283UXe9pdRBeQYieRt
FbKb7ELfflnrJZk1vLS+nWFXU4G3TQXeNgX0bajfsrxtCvA2NOay+rYpwNtQ
232NJzFcsFDCPPy5nNjh1uJJZE4sgykaO7yXvJ2551nxtk4z6TTkg9x7Hpi3
VY6+XdYHyNvI28jbyNsvhLdNBd42FXjbVOBtU4G3TQXeNhV421SIJzEV4kni
eTuEFGTbRvI2yPmxvP1rDHZLvJ35vqYIb0NjLqtv7563c9dLSmaMSTFQCCfg
3M8VWK/Yeknu4LV6TBTL/byfvJ27XrJhHxRbL1m7D5C3kbeRt5G3u8jbQH7m
Q+BtqG3ZeJIivA1xURu8DY25bDxJS/o2yK5d1rehfg+Yt/PityXTSlHZOuvB
vB2y4r1E3t6ND2DertsHyNvI28jbyNvd5O3MGsACvA1qemXjt9vhbWYFL83b
4LHqrr5dLZ4Ealt2vWRbvA21bSOeZA95O1/fbpT1Curb3eZtp1kI3FHWD8+S
DX1b6JB/uyEf8IL6NhzTg7yNvI28jbyNvL1+rfdX1NLxJJV4G2rbhr5dJZ6k
ir4NjbkN3q6ib0NjboO3q+jb0Jjb4O0q+vYBxW9Lpsw8bUYz2mqx+G0LP9uw
G7ydmw+waR8Ui9+u2wfI28jbyNvI293kbfBaXzYf4CHEb2M8Ca6XxHiSKvEk
TM4fM74X8SS8w7yd93zJpn1QLD9J3T5A3kbeRt5G3u4mb1eKJ6nC27uJJzlE
fZsZRbM+iuNtOH4mkrfBuYG8/QJ42/IwJj824zfYhr5NhZSiKW1V22L6ttHd
1bctpyKk3fY+sIpt6NsN+6CYvl23D5C3kbeRt5G3O8nbzJ/Xy+vb5eNJmHEs
G8cSydvgWjzUt1HfRt5GfTu10wXexvWSyNvI28jbyNsd4m04b1t310tW0bez
ebAL8DZ4nHG9ZPyYcb0k8vbL4u3c/Nu+XDLT2HrJgvm3l8cOeRt5G3kbeRt5
+9n8207vQt+uxtsHGL9dibd3pW+XXy/JDHXl828jb+86noTxMF1JSIRhgpK6
Fk9Cnf/YNxXL4IrlJ/E3A53lbUst1eGex4SUrRv6dqM+MLSYvl23D5C3kbeR
t5G3u8jbObHBZZ/n3k5+EpjlOhy/Derq+/58ycPTt+EYp0jeBj8LB8vbz+UD
lOlR2pN8gBZ+tmEXePu5eJJGfVA0nqRmHyBvI28jbyNvd5K3D3O95K6eL1me
t+F1i5H6NugjjCdBfXsn+QAldbz93Bg5vG06HE+SPrU9HBR/u63Te5528m+L
vHsezL+NvI28jbyNvF2et6kx5eO3Icbobvw25t/udv5t+Lse5G3k7X3JB/jk
A0VT6VsIz7sa9oE/rdnUB4xyw5v0Qd56SVnQBxZ5G3kbeRt5u8O8DX4Pvt/6
NsxFzcdvw/3udz5A1LdR364pH6AL0Q1KUmaptA2xXm4+wAXTZWKHVR5vl2O9
feJtIB/gKoa+WR/krZfMiaGv2QfI28jbyNvI253k7V3lAzxMfRvqd9/zAZbn
bZjzI3kbvI/bb30befvZ/CQL3m5YW82JHc7h7bq11X3ibaeFSR8iqTxuqw3e
XssR04APZDHezs8Rg7yNvI28jbyNvP10reeU7ub5kocYv70r3sZ8gKhvt5yf
RPM0AYYRXAeyW9O3n3JjNKCtLtgtWt/OzY1x+LwdlyOmCR/UlSMGeRt5G3kb
eRt5e03DhHJ9dJm3d5MPENaKm9e3uZbA9xeRvA3mNonNBwjtbxxvw3Myjrfh
fiN5G9Tk43gb7jeWtyH/7l389oK3ObNG8cb07WLxJE7mPdvw8HnbScHTh0hq
qrTY0Lcb9kExfbtuHyBvI28jbyNvd5K3q8VvV4kngRijjedLQmOO5G2w3zZ4
e0frJcH9jdW3oeMcy9tQXr42eBvKA/NCny/pdAjbZso6Ljf0bc65bSx2WKli
+rZrM377YUruBj/9ob7459nf+77hv96/9e+fwvun8P7p83tCPvp/pP/+P+/8
f5/7ffL7+T/OPi7G1b88I5eX/yaX7z+8I+e/ffhw9vFt6jqW5tcmZP7OVtvL
f4TzZYXh+I9pcpdch9nT/52Qv4XSU6rI69H9aPbn+UyQ6+b4yujK3PI/Sq6G
N3eP/k6CbJqj5PXX9BfDuUW7YVE8Z/Hrw8hPVQJZDL+B7Mln7U29s4agvfQ3
c4Ns3SBTK4NLo2SewpxISaajL9PH6UNy740GN64MPj4MB7OEvL7K+MRP48wQ
Wfo0ovSHH4PRTK7tcqg3H+LVYHq78AlZM+c/55k9NunnLPwwSQbDP65vB/dL
c2JpbvAlmc3+Cxm0hQzy7QZdIYNyq0FOCxlU2w2yQgb1doN65ek1g/MJpTcN
knUfT68nowfgk8e4WZldM5hOFE1jDW6M0C7NsqdZaEOhsHJzFpK1eR0mITke
kV8NMpYuzUnNsqcPSnpvLxeTe/n6vG5wfiYkz5wrk5+j2VFv/t7rp/vjz1z3
SSDXvr96rV/sTpUgzF9fev8HllbEoLgaAQA=
---1295196120-2044441634-924393859=:2483--

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/