Linux 2.4 VM Documentation - Take 3

Mel Gorman (mel@csn.ul.ie)
Wed, 22 Jan 2003 01:19:00 +0000 (GMT)


This is the third draft at a pair of papers aimed at documenting fully how
the 2.4 VM functions. I have made a large number of additions and
corrections so I felt another release would not hurt even if I still have
a few chapters to go. The most notable change is the introduction of a
chapter on the boot memory allocator. The full list of changes as best as
I can remember is listed at the end of this mail.

It can be found in the various formats at

Understanding the Linux Virtual Memory Manager
PDF: http://www.csn.ul.ie/~mel/projects/vm/guide/pdf/understand.pdf
HTML: http://www.csn.ul.ie/~mel/projects/vm/guide/html/understand/
Text: http://www.csn.ul.ie/~mel/projects/vm/guide/text/code.txt

Code Commentary on the Linux Virtual Memory Manager
PDF: http://www.csn.ul.ie/~mel/projects/vm/guide/pdf/code.pdf
HTML: http://www.csn.ul.ie/~mel/projects/vm/guide/html/code
Text: http://www.csn.ul.ie/~mel/projects/vm/guide/text/code.txt

Any and all comments and corrections, especially on the bootmem allocator,
are welcome. If there is some section that you feel is not covered in
adequate detail or is omitted entirely, email me and I'll see what can be
done.

>> Fullish list of changes, can't remember them all :-/ <<

o Added a chapter description how the boot memory allocator works

o Added an explanation on the difference between mm_users and mm_count

o Fixed the explanation on pages_min, pages_low and pages_high. The
language was quite confusing the way it was and open to misinterpretation

o Added sections on exception handling and how it applies to copying
to/from userspace. Thanks go to Ingo Oeser for highlighting the
importance and clarifying exactly how it worked to me (Thanks Ingo!)

o Large number of grammar and spelling mistakes, thanks to all who sent
corrections as I am useless at proof reading this document now, the list
of people is too large to list

o Corrected a part of the buddy allocator code commentary where a typo
reversed the meaning of __GFP_WAIT

o Fixed a section where it is explained why 64GiB is an impractical
amount of memory because of ZONE_NORMAL pressure. I calculated the
amount of memory needed for mem_map wrong (Thank you Jean Francois Martinez)

o Fixed some call graphs where the order when traversed depth-first did
not match what was in the code due to a bug in gengraph. New release of
gengraph is out which works with recent 2.5 kernels and fixes the
traversals

o Various other bits and pieces I can't recall

-- 
Mel Gorman				| "Documentation is like sex: when it is
MSc Student, University of Limerick	| good, it is very, very good and when
http://www.csn.ul.ie/~mel		| it is bad, it is better than nothing"
							-- Dick Brandon

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