Drastically Improve Ubuntu Feisty 7.04 Performance with the performance patchset by Con Kolivas

My Ubuntu Box was running slower than I thought I could tweak it, so what I did was look for some good patchsets and I seen some conflicting results with cfs and ck and decided to test a few benchmarks and the ck patchset is a little more responsive than cfs on my system. I have supplied a link @ the end of this post with statistics and discussions about cK vs cfs.

Here is a guide for you to walk you through the patching/compiling process, I hope you like it!


*Warning*
If you have truecrypt installed or any kernel modules like the rt73 usb wifi driver, it must be recomiled/installed for the new kernel, the performance is worth the time and effort. Make sure you download anything you need to recompile driver wise before you reboot to the new kernel.

*The drivers must be recompiled while using the new kernel!

This How-To will guide you through the compilation/installation of the 2.6.22 (more recent than the one distribuited with Ubuntu Feisty 7.04) with the performance patchset by Con Kolivas.

1-Download what is needed

Type in the command line:

Quote:
sudo apt-get install build-essential bin86 kernel-package

sudo apt-get install libqt3-headers libqt3-mt-dev (needed for make xconfig)
Then download the following files to your Home directory:
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.tar.bz2
Desktop Patch:
http://www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/2.6.22/2.6.22-ck1/patch-2.6.22-ck1.bz2
Server Patch:
http://www.kernel.org/pub/linux/kernel/people/ck/patches/2.6/2.6.22/2.6.22-ck1/patch-2.6.22-cks1.bz2

2-Now, lets unpack the kernel source to /usr/src:

*Copy the source to /usr/src:

Code:
sudo cp linux-2.6.22.tar.bz2 /usr/src
*Change to /usr/src:

Code:
cd /usr/src
*Unpack it:

Code:
sudo tar -xvjf linux-2.6.22.tar.bz2
*Now lets change the created directory name:

Code:
sudo mv linux-2.6.22/ linux-2.6.22cK1
*Remove the symlink if there is one directory called linux:

Code:
sudo rm -rf linux
*Make the new symlink pointing for our 2.6.22 kernel source:

Code:
sudo ln -s /usr/src/linux-2.6.22cK1 linux
3-Now it's time to patch the kernel:

*Change to /usr/src/linux:

Code:
cd /usr/src/linux
*Switch to root user:

Code:
sudo -s -H
Password:
*Apply the patch:

Code:
sudo bzcat /home/username/patch-2.6.22-ck1.bz2| patch -p1
4-Kernel configuration:

*Import the configuration of the running kernel:

Code:
uname -r
To see what kernel are you running (in my case it is 2.6.20-16-generic).

Code:
sudo cp /boot/config-2.6.20-16-generic .config
To copy the config file and use it as base for the new kernel configuration (Don't forget to choose the correct config file).

*Configure the kernel:

Code:
sudo make xconfig
*While you may tweak your kernel configuration to your needs I will sugest you some tweaks:

In "General Setup" activate:

-Support for paging of anonymous memory (swap)
--Support for prefetching swapped memory

In "Processor type and features":

-Processor family Choose the model of your processor.

Activate:

-Preemption Model
--Voluntary Kernel Preemption (Desktop)

-High Memory Support
--off -if you have less than 1 GB of RAM
--1GB Low Memory Support -if you have 1GB of RAM
--4GB -if you have more than 1GB of RAM

-Timer frequency
--1000 Hz

In "Device drivers" go to "Block devices" and in "IO Schedulers" leave only the "CFQ I/O scheduler" activated, which provides the best performance.

In "Kernel hacking" uncheck "Kernel debugging".

Ctrl+S to save the kernel configuration and then close the window.

5-Let's build the kernel:

*In a terminal make sure you are in /usr/src/linux with full root access.

We will build a ".deb" file that can be installed in our Ubuntu system, using make-kpkg.

*In a terminal type:

Code:
make-kpkg clean
make-kpkg -initrd --revision=ck1 kernel_image
If there wasn't errors this will build the kernel and a ".deb" file will be created at /usr/src.
*To install it:

Code:
sudo dpkg -i kernel-image-2.6.22*.deb

6-Reboot and everything should be running ok!
*Try:

Code:
uname -r
to see that you are running the new kernel.


7-Nvidia graphic cards users:

To install Nvidia driver follow the guide (no need to install linux-headers as we have the source in /usr/src/linux:

http://www.ubuntuforums.org/showthre...ghlight=nvidia

Resources:
The Kernel patch homepage of Con Colivas
Discussions on CK vs CFS

Clicky Web Analytics