[[!meta copyright="Copyright © 2008, 2012 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] [[!meta title="Karim Allah Ahmed"]] <karim.allah.ahmed@gmail.com> Egypt. --- #GSoC: 2010 Project Goal: --- #Roadmap ##Progress ###Preparation Phase: Understanding how gnumach ticks [ at least the parts related to the project ] --- ####28th of April - 5th of May: * Reading the paging in code in gnumach. * Reading the libpager code, and the multipage patch. * Reading the translators code, only the part implementing the external pager interface. ####5th of May - 12th of May: * Reading the paging out code in gnumach. * Understanding IPC in gnumach and reading some code. * Reading "[gnu_src]/kern/sched_prim.c" ####12th of May - 19th of May: * Finishing the leftover code in some of the previous phases. * Building a big and a more clear picture of how gnumach ticks [ wiring things together ]. ####19th of May - 23th of May: * Off [College related-activities]. --- ###Coding Phase: Stage 1: ####24th of May - 26th of May: * Read the freeBSD multipages implementation. * Basic Modifications of gnumach's code. * err.. scratch this step. It's easier to work on porting OSF Mach's implementation of multi-pages. ####26th of May - 28th of May: * (./) port OSF Mach's clustered pagein during 'page faults' ( [src]/vm/vm_fault.c ) * (./) port "cluster_size" attribute of memory objects from OSF Mach. * (./) port "behavior" attribute of [[`vm_map`|microkernel/mach/interface/vm_map]] entries from OSF Mach. ####29th of May - 2nd of June: * Off ( Oral Exams ) ####2nd of May - 4th of June: * Finish the port of the previous phase. --- ####4th of June - 4th of July: * Off ( Final Exams ). --- Stage 2: ####5th of July - 7th of July: * (./) Add "cluster_size" attribute to Neal Walfield's patch for the pager library. --- Stage 3: ####8th of July - 15th of July: * (./) Patch the diskfs library to use the new pager library API. * (./) Patch the ext2fs disk paging related routines to use the new pager library API. ####16th of July - 19th of July: * Testing the current patches. * Stuck in compiling code ( http://30.media.tumblr.com/tumblr_l5ie1bb2u91qbjipvo1_500.jpg ) , so I started reading some documentation meanwhile ( [0] , [1] ). --- Stage 4: ####19th of July - 31th of June: * Check OSF Mach's mach-defpager. * Patch (or port OSF Mach's default pager) HURD's mach-defpager to use the new gnumach's RPCs. --- Stage 5: ####1st of August - 10th of August: * Testing the ported translators. * Fixing the boot bit-mapped memory allocator patch. --- Stage 1: * clustered_paging.diff patch http://lists.gnu.org/archive/html/bug-hurd/2010-06/msg00024.html TODO: * Update the headers of the modified files in GNU Mach to reflect the fact that they were ported from OSF Mach. * Implement posix_madvise(), posix_fadvise, and readahead() in glibc. * Update the documentation of GNU Mach with the new interfaces. * (./) Revise and finish the code related to default_memory_manager management in GNU Mach. [done] * Port the vm_page "clustered" attribute. [ to mark that the page wasn't requested but was paged-in as part of the cluster ]. --- # Readings [0] http://www.nongnu.org/ext2-doc/ext2.html [1] http://kerneltrap.org/node/452