why unix | RBL service | netrs | please | ripcalc | linescroll
hosted services

hosted services

Recently I've found that there are huge improvements to benefit from by rebuilding the kernel for Linux on the desktop. Thankfully, in most cases the option is turned on by default when you download the source and run make menuconfig. This a really sensible decision by the kernel maintainers.

I've not seen the option in Ubuntu's Maverick,

The option you should be looking for is shown in the image below. In case you're wondering, you'll be glad to know that the menu options are very much the same between 2.6.39 and 3.0.0(rc6).

2.6.39 general settings, autogroup3.0.0 general settings, autogroup

Of course, if you just want to modify the config file yourself, by hand then you'll be looking for this option:

CONFIG_SCHED_AUTOGROUP=y

The most outstanding thing that you may notice about this is just how much smoother the whole system appears to function once the scheduler has been configured this way. But, if you should find that it's not just how you like it then the following toggle file contains the boolean value:

/proc/sys/kernel/sched_autogroup_enabled

Containing a 1 will ensure that your desktop benefits from the autogroup scheduler, containing a zero will ensure that you don't experience the benefits.

kernel package

If you're fortunate enough to be working on a debian based system, then you'll only need the following packages to get yourself going, assuming you don't already have kernel source code available:

sudo apt-get install build-essential libncurses5-dev kernel-package &&
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.39.2.tar.bz2 &&
tar jxvf linux-2.6.39.2.tar.bz2 &&
cd linux-2.6.39 &&
make menuconfig

You'll have to ensure you have all the desired kernel options selected

time sudo CONCURRENCY_LEVEL=2 ionice -c 3 make-kpkg --initrd kernel_image

Once the kernel has finished building (and it can take a while) you'll find the build .deb in the parent (the directory where you ran the tar from above). You should also notice that this is running with ionice, which assumes that you want the job to be running with background IO scheduling.

the old way

Previous to this being as simple as 'on by default' in the current kernels there was a similar method to controlling the scheduler groups. This required the CFQ scheduler to be available and have cgroup mounted.