diff options
author | Thomas Schwinge <thomas@codesourcery.com> | 2012-05-24 23:08:09 +0200 |
---|---|---|
committer | Thomas Schwinge <thomas@codesourcery.com> | 2012-05-24 23:08:09 +0200 |
commit | 2910b7c5b1d55bc304344b584a25ea571a9075fb (patch) | |
tree | bfbfbc98d4c0e205d2726fa44170a16e8421855e /microkernel/viengoos/projects | |
parent | 35b719f54c96778f571984065579625bc9f15bf5 (diff) |
Prepare toolchain/logs/master branch.
Diffstat (limited to 'microkernel/viengoos/projects')
3 files changed, 0 insertions, 78 deletions
diff --git a/microkernel/viengoos/projects/address_space_management.mdwn b/microkernel/viengoos/projects/address_space_management.mdwn deleted file mode 100644 index 2d00e4f4..00000000 --- a/microkernel/viengoos/projects/address_space_management.mdwn +++ /dev/null @@ -1,40 +0,0 @@ -[[!meta copyright="Copyright © 2008, 2009 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]]."]]"""]] - -[[!tag open_issue_viengoos]] - -In Viengoos, a process's address space is managed entirely in user -space by the process itself. This creates two interesting problems: -dealing with circular dependencies resulting from having to manage the -address space data structures and accessing and manipulating the -address space data structures. - -First, managing the address space requires resources, which in turn -may require address space (e.g., data structures require memory which -require address space, etc.). We currently break this circular -dependency by trying to keep enough resources in reserve that -allocating resources for managing the address space never requires -more resources than are minimally in the reserve. The reserve is -currently chosen in an ad-hoc fashion. It would be nice to determine -it more systematically. Moreover, it would be nice to reduce the -cases in which a reserve is required. This may be possible by -restructuring some of the code. - -Second, the address space data structures are protected using a single -lock. This not only means that only a single thread can be updating -the address space at a time, but that if a thread faults and the -address space is locked, then the process dead locks! It should be -possible to at least walk the address space using lock-free -techniques. This requires updating the address space construction -code such that all addresses remain valid during any given -manipulation. Second, to avoid the mentioned dead-lock problem, we -try to ensure that accessing the data structures will never result in -a fault. This means protecting the stack. An alternative approach is -to use undo buffers. diff --git a/microkernel/viengoos/projects/capability-aware_compiler.mdwn b/microkernel/viengoos/projects/capability-aware_compiler.mdwn deleted file mode 100644 index b4e465d9..00000000 --- a/microkernel/viengoos/projects/capability-aware_compiler.mdwn +++ /dev/null @@ -1,16 +0,0 @@ -[[!meta copyright="Copyright © 2008, 2009 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]]."]]"""]] - -[[!tag open_issue_viengoos]] - -Modify, e.g., gcc to understand capability semantics and teach gcc how -to optimize it, e.g., how to batch and combine calls. - -This project is deemed suitable for a thesis. diff --git a/microkernel/viengoos/projects/new_hash_function.mdwn b/microkernel/viengoos/projects/new_hash_function.mdwn deleted file mode 100644 index d0374720..00000000 --- a/microkernel/viengoos/projects/new_hash_function.mdwn +++ /dev/null @@ -1,22 +0,0 @@ -[[!meta copyright="Copyright © 2008, 2009, 2010 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]]."]]"""]] - -[[!tag open_issue_viengoos]] - -The current hash function in libhurd-ihash results in a lot of -collisions when the hash table is 80% full. To overcome this, we keep -hash tables at most 30% full. This represents a fair amount of -overhead. Find a better algorithm. There can either be one that is -appropriate in the general case or one that works well in a relevant, -specific case, e.g., viengoos/object.c uses a hash to find the object -corresponding to a frame, which is keyed on its physical address. - -Note that this applies to the Hurd's [[hurd/libihash]], too. |