summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--microkernel/mach/deficiencies.mdwn17
-rw-r--r--microkernel/mach/gnumach/memory_management.mdwn1
-rw-r--r--open_issues/resource_management_problems.mdwn34
3 files changed, 49 insertions, 3 deletions
diff --git a/microkernel/mach/deficiencies.mdwn b/microkernel/mach/deficiencies.mdwn
index 8b137891..fcf86d79 100644
--- a/microkernel/mach/deficiencies.mdwn
+++ b/microkernel/mach/deficiencies.mdwn
@@ -1 +1,18 @@
+[[!meta copyright="Copyright © 2024 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 stable_URL]]
+
+* [[open_issues/resource_management_problems]]
+
+* [[IPC issues|microkernel/mach/gnumach/projects/mach_5]]
+
+* [[microkernel/mach/gnumach/projects/clean_up_the_code]]
diff --git a/microkernel/mach/gnumach/memory_management.mdwn b/microkernel/mach/gnumach/memory_management.mdwn
index 477f0a18..6eca2bce 100644
--- a/microkernel/mach/gnumach/memory_management.mdwn
+++ b/microkernel/mach/gnumach/memory_management.mdwn
@@ -13,6 +13,7 @@ License|/fdl]]."]]"""]]
[[!toc]]
+A related page is the [[open_issues/resource_management_problems]].
# IRC, freenode, #hurd, 2011-02-15
diff --git a/open_issues/resource_management_problems.mdwn b/open_issues/resource_management_problems.mdwn
index daf97954..d1a29a00 100644
--- a/open_issues/resource_management_problems.mdwn
+++ b/open_issues/resource_management_problems.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2008, 2009, 2010, 2013 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2008, 2009, 2010, 2013, 2024 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
@@ -18,7 +18,35 @@ 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
+<!-- the following 3 paragraphs comes from this email:
+ lists.gnu.org/archive/html/bug-hurd/2009-07/msg00084.html -->
+
+This is the fundamental failing of the Mach/Hurd architecture. The
+Hurd operates via many server to client relationships, in which
+servers request resources on behalf of their clients. For example at
+any given time, `extfs` could have many different clients (emacs, vim,
+git etc.) requesting data, creating files, deleting files, re-naming
+files, etc. Suppose one rogue client out of 50 is continually
+requesting increasingly more memory, which is exhasting the machine's
+resources. As far as Mach knows, `ext2fs` is wasting RAM. It doesn't
+know that one `ext2fs`' client program is at fault. There is no way
+for Mach to fix this, since it should not kill `ext2fs`, and it cannot
+know which `ext2fs` client to kill.
+
+This server/client architecture is a problem that exists elsewhere. A
+good example is `X`. Firefox might allocate a lot of pixmaps, which
+causes `X` to use more memory. Linux actually used to kill X, because
+of this several years ago.
+
+This problem is much worse on a multiserver system, because we have
+many server/client relationships. A simple fix that would limit these
+issues is to introduce fixed limits on various kinds of resource
+usage. A proper fix requires a way to attribute all resource usage to
+the clients -- either by avoiding server-side allocation or by keeping
+track of who is requesting resources. Both of these changes requires
+lots of changes to low-level code.
+
+These issues are what Neal Walfield explored with his kernel:
[[microkernel/viengoos]].