From 51c95fc11727532e3b0d98c8470a6b60907a0680 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Tue, 8 Jan 2013 21:31:31 +0100 Subject: IRC. --- microkernel/mach/continuation.mdwn | 24 ------------ microkernel/mach/deficiencies.mdwn | 10 ++++- microkernel/mach/gnumach.mdwn | 4 +- microkernel/mach/gnumach/continuation.mdwn | 26 +++++++++++++ .../mach/gnumach/hardware_compatibility_list.mdwn | 9 ++++- microkernel/mach/gnumach/memory_management.mdwn | 44 ++++++++++++++++++++++ microkernel/mach/gnumach/preemption.mdwn | 20 ++++++++++ microkernel/mach/message/msgh_id.mdwn | 5 +++ 8 files changed, 114 insertions(+), 28 deletions(-) delete mode 100644 microkernel/mach/continuation.mdwn create mode 100644 microkernel/mach/gnumach/continuation.mdwn create mode 100644 microkernel/mach/gnumach/preemption.mdwn (limited to 'microkernel') diff --git a/microkernel/mach/continuation.mdwn b/microkernel/mach/continuation.mdwn deleted file mode 100644 index 7a3267f3..00000000 --- a/microkernel/mach/continuation.mdwn +++ /dev/null @@ -1,24 +0,0 @@ -[[!meta copyright="Copyright © 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]]."]]"""]] - -[[Mach]] internally uses *continuation*s for kernel [[thread]] management. - -The advantage is that not a full kernel thread stack has to be preserved in -case that a thread is about to enter a blocking state. This saves space. It -is not clear this is still worthwhile given today's RAM offerings. (How many -kernel threads are there, typically?) - -And, this would no longer be possible in case Mach were be made a -[[preemptive|preemtion]] kernel. In the latter case, the kernel itself, that -is, kernel threads can be preempted, and then their full state needs to be -preserved. - -[[!tag open_issue_documentation]] diff --git a/microkernel/mach/deficiencies.mdwn b/microkernel/mach/deficiencies.mdwn index e1f6debc..9ba67219 100644 --- a/microkernel/mach/deficiencies.mdwn +++ b/microkernel/mach/deficiencies.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2012 Free Software Foundation, Inc."]] +[[!meta copyright="Copyright © 2012, 2013 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 @@ -520,3 +520,11 @@ In context of [[open_issues/multithreading]] and later [[open_issues/select]]. for those interested, x15 is now a project of its own, with no gnumach compability goal, and covered by gplv3+ + + +### IRC, freenode, #hurd, 2012-12-31 + + bits of news about x15: it can now create tasks, threads, vm_maps, + physical maps (cpu-specific page tables) for user tasks, and stack + tracing (in addition to symbol resolution when symbols are available) + were recently added diff --git a/microkernel/mach/gnumach.mdwn b/microkernel/mach/gnumach.mdwn index edd0cfdb..894adc76 100644 --- a/microkernel/mach/gnumach.mdwn +++ b/microkernel/mach/gnumach.mdwn @@ -1,4 +1,4 @@ -[[!meta copyright="Copyright © 2001, 2002, 2007, 2008, 2011 Free Software +[[!meta copyright="Copyright © 2001, 2002, 2007, 2008, 2011, 2013 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable @@ -79,6 +79,8 @@ GNU/Hurd. * [[Debugging]] * [[Boot_Trace]] * [[Memory_Management]] + * [[Continuation]]s + * [[Preemption]] * [[Projects]] * [[Rules]] * [[Open Issues|tag/open_issue_gnumach]] diff --git a/microkernel/mach/gnumach/continuation.mdwn b/microkernel/mach/gnumach/continuation.mdwn new file mode 100644 index 00000000..cdd942b7 --- /dev/null +++ b/microkernel/mach/gnumach/continuation.mdwn @@ -0,0 +1,26 @@ +[[!meta copyright="Copyright © 2010, 2012, 2013 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]] + +[[Mach]] internally uses *[[/continuation]]*s for kernel [[thread]] management. + +The advantage is that not a full kernel thread stack has to be preserved in +case that a thread is about to enter a blocking state. This saves space. It +is not clear this is still worthwhile given today's RAM offerings. (How many +kernel threads are there, typically?) + +And, this would no longer be possible in case Mach were be made a +[[preemptive|preemption]] kernel. In the latter case, the kernel itself, that +is, kernel threads can be preempted, and then their full state needs to be +preserved. + +See also [[open_issues/multithreading]]. diff --git a/microkernel/mach/gnumach/hardware_compatibility_list.mdwn b/microkernel/mach/gnumach/hardware_compatibility_list.mdwn index 874f5f07..3a4f560c 100644 --- a/microkernel/mach/gnumach/hardware_compatibility_list.mdwn +++ b/microkernel/mach/gnumach/hardware_compatibility_list.mdwn @@ -1,5 +1,5 @@ -[[!meta copyright="Copyright © 2007, 2008, 2009, 2011 Free Software Foundation, -Inc."]] +[[!meta copyright="Copyright © 2007, 2008, 2009, 2011, 2013 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 @@ -91,6 +91,11 @@ Configuration](http://www.gnu.org/software/hurd/gnumach-doc/Configuration.html) contains a list of device drivers that are included in GNU Mach and elaborates on the hardware devices they support. +## DDE + +[[hurd/DDE]] provides more up-to-date network device drivers, based on Linux +2.6.29 code, running as user-space processes. + # User Success Reports These boards are known to work. Gnumach/Hurd has been installed and run on these board successfully. diff --git a/microkernel/mach/gnumach/memory_management.mdwn b/microkernel/mach/gnumach/memory_management.mdwn index 3e158b7c..a1d9a99d 100644 --- a/microkernel/mach/gnumach/memory_management.mdwn +++ b/microkernel/mach/gnumach/memory_management.mdwn @@ -133,3 +133,47 @@ License|/fdl]]."]]"""]] using sysenter/sysexit makes it even faster [[open_issues/system_call_mechanism]]. + + +# IRC, freenode, #hurd, 2012-12-12 + + youpi: is the 2g split patch really needed ? + or rather, is it really a good thing for most people ? + instead of the common 3g/1g + it reduces tasks' address space but allows the kernel to reference + more physical memory + the thing is, because of the current page cache implementation, + most of the time, this physical memory remains unused, or very rarely + ? + on the other hand, a larger address space for tasks allows running + more threads (more space for tasks) and not failing while linking webkit + .. :) + it's needed for quite a few compilations, yes + if you refer to the link stage, with a decent amount of swap, it + goes without trouble + well, if your kernel doesn't have 2GiB physical addressing + capacity, userspace won't have >2GiB memory capacity either + does it now? + it didn't use to + and it was crawling like hell for some builds + (until simply hanging) + i never have a problem e.g. runing the big malloc glibc test + (bug22 or something like that) + that doesn't involve objects from the fs, does it? + no + as long as it's anonymous memory, it's ok + the default pager looks safe, i'm pretty sure our lockups are + because of something in ext2fs + braunr: well, an alternative would be to build two kernels, one 2/2 + and one 3/1 + not really worth it + i was just wondering + i usually prefer a 3/1 on darnassus, but i don't build as often as + a buildd :x + or we can go with 2.5/1.5 + I can do that on bach & mozart for instance + (they have their own kernel anyway) + youpi: if you think it's worth the effort + again, i was just wondering out loud + braunr: well, bach & mozart don't have > 1.2GiB mem anyway + so it doesn't pose problem diff --git a/microkernel/mach/gnumach/preemption.mdwn b/microkernel/mach/gnumach/preemption.mdwn new file mode 100644 index 00000000..520f7bc9 --- /dev/null +++ b/microkernel/mach/gnumach/preemption.mdwn @@ -0,0 +1,20 @@ +[[!meta copyright="Copyright © 2010, 2012, 2013 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]] + +There currently is no kernel preemption in GNU Mach. + +If GNU Mach were made a a preemptive kernel, using [[continuation]]s would +probably no longer make sense as the kernel itself, that is, kernel threads can +be preempted, and then their full state needs to be preserved. + +See also [[open_issues/multithreading]]. diff --git a/microkernel/mach/message/msgh_id.mdwn b/microkernel/mach/message/msgh_id.mdwn index 986fcbc7..a7157a37 100644 --- a/microkernel/mach/message/msgh_id.mdwn +++ b/microkernel/mach/message/msgh_id.mdwn @@ -252,3 +252,8 @@ files. that adds a gnumach.defs interface tschwinge: if you think it's ok, i'll rewrite a formal changelog so it can be applied + + +## IRC, freenode, #hurd, 2012-09-30 + + youpi: hey, didn't see you merged the page cache stats branch :) -- cgit v1.2.3