diff options
author | Joshua Branson <jbranso@fastmail.com> | 2018-11-07 10:32:38 -0500 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-11-08 23:53:31 +0100 |
commit | 3e25a0fd194bbdb1838abb0a17832252eb03462a (patch) | |
tree | 42f11e17cf99aba0978047239fc15a4caa9c16a7 /open_issues/gnumach_memory_management.mdwn | |
parent | 1a8d5c728cc275f20d7f560e2760aa882c8ed502 (diff) | |
download | web-3e25a0fd194bbdb1838abb0a17832252eb03462a.tar.gz web-3e25a0fd194bbdb1838abb0a17832252eb03462a.tar.bz2 web-3e25a0fd194bbdb1838abb0a17832252eb03462a.zip |
I am adding Richard's comment about mach's memory management issue to the open issues gnumach memory management page.
I also added a link to the 64-bit port on the 830MB RAM limit page.
Diffstat (limited to 'open_issues/gnumach_memory_management.mdwn')
-rw-r--r-- | open_issues/gnumach_memory_management.mdwn | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/open_issues/gnumach_memory_management.mdwn b/open_issues/gnumach_memory_management.mdwn index 8eb0cf8a..911c2b51 100644 --- a/open_issues/gnumach_memory_management.mdwn +++ b/open_issues/gnumach_memory_management.mdwn @@ -11,8 +11,6 @@ License|/fdl]]."]]"""]] [[!tag open_issue_gnumach]] -There is a [[!FF_project 266]][[!tag bounty]] on this task. - [[!toc]] @@ -2389,3 +2387,17 @@ There is a [[!FF_project 266]][[!tag bounty]] on this task. <braunr> well, there is also a locking error in the slab allocator, although not a problem for a non preemptible kernel like gnumach <braunr> non preemptible / uniprocessor + +## IRC freenode, #hurd, 2016-12-29 + + <braunr> i've identified a fundamental flaw with the default pager + <braunr> and actually, with mach in general i suppose + <braunr> i assumed that it was necessary to trust the server only + <braunr> that a server didn't need to trust its client + <braunr> but mach messages carry memory that is potentially mapped from unprivileged pagers + <braunr> which means faulting on that memory effectively makes the faulting process a client to the unprivileged pager + <braunr> and that's something that can happen to the default pager during heavy memory pressure + <braunr> in which case it deadlocks on itself because the copyout hangs on a fault, waiting for the unprivileged pager to provide the data + <braunr> (which it can't because of heavy memory pressure and because it's unprivileged, it's blocked, waiting until allocations resume) + <braunr> the pageout daemon will keep paging out to the default pager in the hope those pages get freed + <braunr> but sending to the default pager is now impossible because its map is locked on the never-ending fault |