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;