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 /open_issues/resource_management_problems.mdwn | |
parent | 35b719f54c96778f571984065579625bc9f15bf5 (diff) |
Prepare toolchain/logs/master branch.
Diffstat (limited to 'open_issues/resource_management_problems.mdwn')
-rw-r--r-- | open_issues/resource_management_problems.mdwn | 86 |
1 files changed, 0 insertions, 86 deletions
diff --git a/open_issues/resource_management_problems.mdwn b/open_issues/resource_management_problems.mdwn deleted file mode 100644 index 8f752d61..00000000 --- a/open_issues/resource_management_problems.mdwn +++ /dev/null @@ -1,86 +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_gnumach open_issue_hurd open_issue_viengoos]] - -[[microkernel/Mach]] interfaces do not allow for proper resource accounting, -when a server allocates resources on behalf of a client. - -Mach can't do a good job at resource management, as it doesn't have enough -information how resources are used: which data is important and which is -discardable, for example. - -These issues are what Neal Walfield is working on with his new kernel -[[microkernel/viengoos]]. - - -# Kernel - -Inside the [[kernel]], there is commonly a need to allocate resources according -to externally induced demand, dynamically. For example, for memory-management -data structures (page tables), process table entries, thread control blocks, -[[capability]] tables, incoming network packages, blocks that are read in from -disk, the keyboard type-ahead buffer for a in-kernel keyboard driver. Some of -these are due to actions driven by user-space requests, others are due to -actions internal to the the kernel itself. Some of these buffers can be sized -statically (keyboard type-ahead buffer), and are thus unproblematic. Others -are not, and should thus be attributed to their user space entities. In the -latter (ideal) case, all resources -- that is, including those needed inside -the kernel -- that a user space task needs for execution are provided by itself -(and, in turn, provided by its parent / principal), and the kernel itself does -not need to allocate any resources dynamically out of an its own memory pool. -This avoids issues like [[microkernel/Mach]]'s [[zalloc_panics]] upon user -space processes allocating too many [[microkernel/mach/port]]s, for example. - -[[!toggleable id=fof_plos09 text="""[[!template id=note -text="*[[fof\_plos09|microkernel/barrelfish]]*: -{{$microkernel/barrelfish#fof_plos09}}"]]"""]] - -[[!toggleable id=sel4 text="""[[!template id=note -text="[[*sel4*|microkernel/l4]]: {{$microkernel/l4#sel4}}"]]"""]] - -In [[!toggle id=fof_plos09 text="[fof\_plos09]"]], the authors describe in -section 3 how they model their [[capability]] system according to [[!toggle -id=sel4 text="[sel4]"]] using a *retype* operation that *takes an existing -capability and produces one or more derived capabilities [...] used to create -new kernel-level memory objects (such as page tables or execution contexts) -from capabilities to raw regions of RAM*. - -This is, of course, non-trivial to implement, and also requires changing the -[[RPC]] interfaces, for example, but it is a valid approach, a research topic. - -([[!taglink open_issue_documentation]]: compare this to Linux [`vmsplice`'s -SPLICE_F_GIFT -flag](http://www.kernel.org/doc/man-pages/online/pages/man2/vmsplice.2.html#DESCRIPTION).) - -IRC, freenode, #hurd, 2011-07-31 - - < braunr> one of the biggest problems on the hurd is that, when a client - makes a call, kernel (and other) resources are allocated on behalf of the - server performaing the requested action - < braunr> performing* - < braunr> this makes implementing scheduling and limits difficult - < CTKArcher> And could changing the kernel change anything to that ? - < braunr> yes but you'd probably need to change its interface as well - < braunr> iirc, the critique describes resource containers - < braunr> but no work has been done on the current hurd (hence the hurdng - attempts) - - -# Further Examples - - * [[hurd/critique]] - - * [[IO_accounting]] - - * [[translators_set_up_by_untrusted_users]], and [[pagers]] - - * [[configure max command line length]] |