From 278f76de415c83bd06146b2f25a002cf0411d025 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 6 Sep 2011 16:02:51 +0200 Subject: IRC. --- microkernel/mach/memory_object/discussion.mdwn | 43 +++++++++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) (limited to 'microkernel/mach/memory_object') diff --git a/microkernel/mach/memory_object/discussion.mdwn b/microkernel/mach/memory_object/discussion.mdwn index a006429b..c874b255 100644 --- a/microkernel/mach/memory_object/discussion.mdwn +++ b/microkernel/mach/memory_object/discussion.mdwn @@ -10,7 +10,7 @@ License|/fdl]]."]]"""]] [[!tag open_issue_documentation open_issue_gnumach]] -IRC, freenode, #hurd, 2011-08-05 +IRC, freenode, #hurd, 2011-08-05: < neal> braunr: For instance, memory objects are great as they allow you to specify the mapping policy in user space. @@ -22,3 +22,44 @@ IRC, freenode, #hurd, 2011-08-05 < neal> I'm not sure what you mean by page cache lru appoximateion < braunr> the kernel eviction policy :) < neal> that's an implementation detail + +IRC, freenode, #hurd, 2011-09-05: + + mach isn't a true modern microkernel, it handles a lot of + resources, such as high level virtual memory and cpu time + for example, the page replacement mechanism can't be implemented + outside the kernel + yet, it provides nothing to userspace server to easily allocate + resources on behalf of clients + so, when a thread calls an RPC, the cpu time used to run that RPC + is accounted on the server task + the hurd uses lots of external memory managers + +[[external_pager_mechanism]]. + + but they can't decide how to interact with the page cache + the kernel handles the page cache, and initiates the requests to + the pagers + braunr, why can't they decide that? + because it's implemented in the kernel + and there is nothing provided by mach to do that some other way + braunr: you probably already know this, but the problem with client + requests being accounted on behalf the server, is fixed in Mach with + Migrating Threads + +[[open_issues/mach_migrating_threads]]. + + slpz_: migrating threads only fix the issue for the resources + managed by mach, not the external servers + slpz_: but it's a (imo necessary) step to completely solve the + issue + in addition to being a great feature for performance (lighter + context switchers, less state to track) + it also helps priority inversion problems + braunr: I was referring just to cpu-time, but I agree with you an + interface change is needed for external pagers + slpz_: servers in general, not necessarily pagers + as a way to mitigate the effect of Mach paging out to external + pagers, the folks at OSF implemented an "advisory pageout", so servers + are "warned" that they should start paging out, and can decide which + pages are going to be flushed by themselves -- cgit v1.2.3