:(which hopefully constitute the bulk of the system load.) As a rough
:guide as to what's up for grabs, Liedtke's measured a reduction of the
:cost of a context switch on L4 from somewhere between 95 and 914 clocks
:(on pentium) down to 23 clock cycles when using small address spaces.
:The performance improvement is huge on pentiums, 6x86s and pentiums
:II, although the task is far from trivial (read: major changes to the
:memory manager and dynamic libraries.)
It's an interesting idea but you will never notice the difference
unless you are making tens of thousands of context switches per second.
Taking 900 clocks as an example, on a 400 MHz pentium this comes to,
roughly 2uS. A thousand context switches per second would eat 2mS out
of a second, wasting only 0.2% of the cpu.
I think that there are places where we can make use of the 4MB segment
capabilities, and kernel threads will eliminate mmu overhead for kernel
processes. Anything too complex starts to get into diminishing returns.
Using rfork() it is possible to share the same page table across multiple
processes (though you'd have to write a little assembly to use the
feature at the moment). You could certainly implement this
single-address-space idea that way. ELF will allow you to load a program
anywhere so it is theoretically possible to put together a system that
operates in this manner.
-Matt
Matthew Dillon
<[EMAIL PROTECTED]>
:And no, I don't voluneer to do it all by myself, although I'd be glad
:to help, coordinate the project, or even do most of the work myself
:given enough time.
:
:Patryk.
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message