summaryrefslogtreecommitdiff
path: root/user/kam.mdwn
blob: c16908c309d31c66ed9ed57d6a62b0c183204f4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
[[!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