When reviewing the VM code regarding another issue (another significant
VM contributor had found an interesting anomoly), I noticed that the
coloring wasn't as complete as it should be.

Attached is a patch that appears to make a reasonable improvement in
performance, when using both my slightly more advanced VM kernel, and
also the stuff in -current.  I seem to see a fork() only performance
improvement of about 10% on a 2 processor SMP PPro, using lmbench.  On
vfork (which isn't completely implemented on a PPro, but is still faster
than fork), the improvement appears to be about 5%.

Of course, any page coloring improvement is dependent on alot of factors,
but the missing object coloring handling is a problem...

-- 
John                  | Never try to teach a pig to sing,
dy...@iquest.net      | it makes one look stupid
jdy...@nc.com         | and it irritates the pig.
Index: vm/vm_object.c
===================================================================
RCS file: /local/home/ncvs/src/sys/vm/vm_object.c,v
retrieving revision 1.144
diff -r1.144 vm_object.c
215a216
>       kmem_object->pg_color = (kernel_object->pg_color + PQ_L2_SIZE/4) & 
> PQ_L2_MASK;
945a947
>               result->pg_color = (source->pg_color + OFF_TO_IDX(*offset)) & 
> PQ_L2_MASK;

Reply via email to