#format wiki #language en == 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"] ---- CategoryHomepage