summaryrefslogtreecommitdiff
path: root/user/kam.mdwn
blob: 04160d0fd34f070ee82e639e393a276add6a3ea1 (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 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 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.

---

Stage 2:

####5th of June - 11th of June:

* Modify the API of the libpager to support multipages.

---

Stage 3:

####12th of June - 26th of June:

* Modify the of the translators code to implement the new libpager interface.

---

Stage 4:

####27th of June - 30th of June:

* port OSF Mach's clustered pageout ( [src]/vm/vm_pageout.c )

---

Stage 5:

####1st of July - 4th of July:

* Fix the bootmem_allocator patch along with my proposal.

---

Stage 6:

### Testing Phase:

---

### Exams Schedule:

#### Final exams :

Starts at 12th of June for two weeks [maybe 2 or 3 days longer than this , not sure]

---

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 madvise() 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.

* Port the vm_page "clustered" attribute. [ to mark that the page wasn't requested but was paged-in as part of the cluster ].

---

Stage 2:

Stage 3:

Stage 4:

Stage 5: