/[hurd]/hurd-l4/TODO
ViewVC logotype

Diff of /hurd-l4/TODO

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.14 by marcus, Tue Oct 19 01:55:45 2004 UTC revision 1.15 by marcus, Wed Oct 27 20:42:29 2004 UTC
# Line 1  Line 1 
1    * Design
2    ** physmem should probably support marking a container as being the
3       default paging container for a certain task (providing a specific
4       virtual address for this container).
5       Then the last-resort pager in a task can run on memory in this
6       container, and physmem can freely unmap that memory temporarily
7       (for reorganization).  The last-resort pager would use physmem as
8       its pager.  This relieves the need to wire down the memory the
9       pager is running on.
10       This can also be used for startup code, which is currently mapped
11       directly from starting task to started task.  This is not
12       acceptable under the paranoid constrain that all mappings must be
13       installed by physmem, to avoid DoS attacks on the page tables.
14    
15       Deep integration in libhurd-cap-server to handle page fault
16       messages transparently as RPC messages could be provided by hooks.
17       Alternatively, special server thread could be designated to handle
18       the page faults.
19    
20       This does not eliminate all need to wire down memory.  Buffers for
21       receiving string items must not page fault, and although physmem
22       could be trusted to handle such a page fault, the server has no way
23       to enforce the use of a trusted pager for such memory on the client
24       side.  So, either some form of wiring must still be supported, or
25       containers or other trusted buffer objects must be used instead of
26       string items.
27    
28    
29  * libl4  * libl4
30  ** The main TODO list for libl4 is in the file libl4/TODO.  ** The main TODO list for libl4 is in the file libl4/TODO.
31  ** We need cancellable forms of ipc() and lipc()!  ** We need cancellable forms of ipc() and lipc()!
# Line 30  Line 58 
58     well as all modules beyond the rootserver module.     well as all modules beyond the rootserver module.
59    
60    
61    * root server libraries
62    ** More code should be explicitely shared by the root servers.
63    ** Use ptmalloc, not malloc+USE_MALLOC_LOCK.
64    
65    
66  * wortel  * wortel
67  ** Use the Generic Booting Protocol (Appendix J l4-x2-20040823.pdf and  ** Use the Generic Booting Protocol (Appendix J l4-x2-20040823.pdf and
68     newer).  Needs corresponding support in laden.     newer).  Needs corresponding support in laden.
# Line 61  Line 94 
94     So, maybe, to cancel, the manager could just propagates the     So, maybe, to cancel, the manager could just propagates the
95     cancellation request.  For this to work, we need to be able to     cancellation request.  For this to work, we need to be able to
96     differentiate between normal pending workers and such sub-managers.     differentiate between normal pending workers and such sub-managers.
97    ** Neal points out that the placement of the cap-class argument in
98       hurd_cap_class_init and hurd_cap_class_create is very much
99       divergent.
100    
101    
102  * L4 (for lack of a better place)  * L4 (for lack of a better place)
103  ** Check that L4 does not schedule the client when the server makes a  ** Check that L4 does not schedule the client when the server makes a
# Line 79  Line 116 
116  ** Bugs:  ** Bugs:
117  *** See patches in README  *** See patches in README
118    
119    
120    * Servers
121    ** The task server can hang if it needs to create a thread and is out
122       of memory, and physmem wants to create a worker thread.  Because
123       then task will contact physmem to allocate more memory, and physmem
124       contacts task to create a new worker thread, and the system will
125       dead-lock.  This needs some hackery to break out of it.
126    
127  Copyright 2003, 2004 Free Software Foundation, Inc.  Copyright 2003, 2004 Free Software Foundation, Inc.
128  Written by Marcus Brinkmann <marcus@gnu.org>  Written by Marcus Brinkmann <marcus@gnu.org>
129    

Legend:
Removed from v.1.14  
changed lines
  Added in v.1.15

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26