Hi,

So, progress from last week through today:
* In my quest to make Plan 9 better, I first made it slower.
I raised the number of segments by simply bumping NSEG to 64, correcting a
stack allocation in devproc, and rebuilding the system. There is a minor
performance penalty for doing so, slowing down a kernel build from 300 to
~305-310 sec in qemu. However, the goal is not '64' segments, its lifting
the segment limit.

* I patched libthread to allocate thread stacks via segments instead of via
malloc; this is meant to surround threadstacks with empty space (yay
redzoning) and to prevent issues where threads die when they touch their
stack but the system is overcommited. This patch is only tested so far as
that I rebuilt my system with it.

* I also instrumented the VM to get counts on a number of events; for
example, building a 9pcf kernel generates 15k zero-fill faults and around 2k
copy-on-write faults. I exposed these counters through a new /dev/vmstat and
a new kernel call, vmstat_entry(), to add a counter to vmstat.

* I wrote some general VM docs! manpages for tmpmap/tmpunmap, kmap/kunmap. A
description of the i386 port kernel memory layout. And a rough description
of the page allocator queue.

What I plan to work on this week:

* Allowing the segment array to resize itself and implementing a better
strategy than walking along it to allocate new slots.

* Starting to implement a map between virtual address and containing
segment.

* Committing all my instrumentation code to a branch.

Follow the excitement along at home! Take a look at
http://code.google.com/p/plan9-vm-gsoc/

-- vs

-- 
You received this message because you are subscribed to the Google Groups "Plan 
9 Google Summer of Code" group.
To post to this group, send email to plan9-g...@googlegroups.com.
To unsubscribe from this group, send email to 
plan9-gsoc+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/plan9-gsoc?hl=en.

Reply via email to