Archive for the ‘kernel’ Category

Benchmarks on schedlock patch

Saturday, May 5th, 2007


Diego Sardina did some benchmarks with my schedlock decomposition patch. I just was courious to see what impact this patch has on UP machine and results are not encouraging:

These tests have been executed on a Celeron 2.4 GHz with libthr and SCHED_ULE (and so PREEMPTION).

The first culprit for that should be the approach followed for locking getrusage which doesn’t take full advantage by the current kernel CVS code (while should perform a little bit better with SMP systems), that I hope should work better when merged with Jeff’s patch. However, an alternative approach for locking rusage is quite ready and will be benchmarked soon (I’m just waiting for current approach SMP benchmarks to be ready before to try the next).

That’s all for tonight.

hammering lock structures

Monday, April 23rd, 2007

In the past days I worked on a fix for lock sizes mismatching between userspace/kernelspace which reveleated a very hard way.

Basically, lock_init() is called very early in the bootstrap code and a simple counter revealed that 8165 locks (FreeBSD-ia32, WITNESS, LOCK_PROFILING, INVARIANTS, DDB enabled) are initialized before that VM is set up and ready for working so we should have a very huge pool of pre-allocated external objects to be used in debugging kernel. The lock-free allocator (in a first moment extracting from the pool and when VM is ready fork working using malloc) is quite ready.

For the moment I want to better study and tuning an appropriate value for that pool.