After this documentation was released in July 2003, I was approached
by Prentice Hall and asked to write a book on the Linux VM under the Bruce Peren's Open Book Series.
The book is available and called simply "Understanding The Linux Virtual
Memory Manager". There is a lot of additional material in the book that is
not available here, including details on later 2.4 kernels, introductions
to 2.6, a whole new chapter on the shared memory filesystem, coverage of TLB
management, a lot more code commentary, countless other additions and
clarifications and a CD with lots of cool stuff on it. This material (although
now dated and lacking in comparison to the book) will remain available
although I obviously encourge you to buy the book from your favourite book
store :-) . As the book is under the Bruce Perens Open Book Series, it will
be available 90 days after appearing on the book shelves which means it
is not available right now. When it is available, it will be downloadable
from http://www.phptr.com/perens
so check there for more information.
To be fully clear, this webpage is not the actual book.
Next: 13.2 Killing the Selected
Up: 13. Out Of Memory
Previous: 13. Out Of Memory
  Contents
  Index
The function select_bad_process() is responsible for
choosing a process to kill. It decides by stepping through each running
task and calculating how suitable it is for killing with the function
badness(). The badness is calculated as follows, note that the
square roots are integer approximations calculated with int_sqrt();
This has been chosen to select a process that is using a large amount
of memory but is not that long lived. Processes which have been running
a long time are unlikely to be the cause of memory shortage so this
calculation is likely to select a process that uses a lot of memory
but has not been running long. If the process is a root process or has
CAP_SYS_ADMIN capabilities, the points are divided by four
as it is assumed that root privilege processes are well behaved. Similarly,
if it has CAP_SYS_RAWIO capabilities (access to raw devices)
privileges, the points are further divided by 4 as it is undesirable to kill
a process that has direct access to hardware.
Next: 13.2 Killing the Selected
Up: 13. Out Of Memory
Previous: 13. Out Of Memory
  Contents
  Index
Mel
2004-02-15