Syntax highlighting of KelleyNielsen

== Kelley Nielsen ==

Email: [[MailTo(kelleynnn AT SPAMFREE gmail DOT com)]]

I am a kernel intern through the Gnome Outreach Program for Women. RikvanRiel is my mentor. My project is to rid the swapoff code of the quadratic complexity in try_to_unuse(). 

This page will eventually become a proper home page, but until I learn enough about wiki editing to write proper articles, I will be using this as a scratch area for my thoughts, questions, and article stubs and drafts.

=== My Current Working State ===

Rik has asked me, "can you find out, and describe to me, how the location of a certain place in swap is stored in the memory management data structures for a process? and what the two parts of the swap information describe?

 *Action: study struct page and friends in include/linux/mm_types.h
 *Action: study handle_mm_fault() found at: memory.c:3783:int handle_mm_fault(struct mm_struct *mm, ...
 *Question: What are the memory management data structures for a process?	what’s the data structure for a process, where does it live, and what are its members? (I assume that some of the members are mm structs)
 *Question: what is (are) the top level struct(s) for memory management? What besides processes hold them? Partial answer: struct page is one => seen in (prob) Mauerer’s book*--where?
 *Question: How is a swap area location described?


 *'''Question''': The first double word block of a struct page holds a union (implying only one member is used at a time) of a pointer to a struct address_space, and a pointer to void intended for a slab object. I know that most memory comes from the buddy allocator, but the kernel has the slab allocator for small needs of its own. So, is the struct address_space associated with the buddy allocator? Question: are the page allocator and the buddy allocator the same thing? 


*["http://www.amazon.com/Professional-Kernel-Architecture-Wolfgang-Mauerer/dp/0470343435"]