Linux turn on kernel preemption

Posted on in Categories , , , last updated May 21, 2007

Q. I’m using CentOS 4 and I would like to turn on kernel preemption to improve disk and mouse access time on screen. How do I turn on kernel preemption on CentOS Linux?

A. Both Redhat Enterprise Linux and CentOS Linux (RHEL clone) disables the kernel preemption to avoid problem with mission critical servers. Some kernel modules / driver may have problem with kernel preemption.

The only way to turn on this feature is to grab latest source code from kernel.org and set following option in kernel config file:
CONFIG_PREEMPT=y

Close and save the file. Next start the compilation using makes command.

Task: Using CentOS source RPM

You can also use source rpm. Install the kernel source code rpm using yum command (or up2date command under RHEL). Now type the following commands:

# cd /usr/src/redhat/SPECS
# rpmbuild -bp --target=i686 kernel-2.6.spec
# cd /usr/src/redhat/BUILD/kernel-2.6.9/linux-2.6.9
# make mrproper
# cp configs/kernel-2.6.9-i686-smp.config .config
# vi .config

Note: Change version number as per your running kernel. Set as follows in .config
CONFIG_PREEMPT=y
Now compile kernel:
# make oldconfig
# make dep
# make bzImage
# make modules
# make modules_install
# make install

Now boot into new kernel.
# reboot

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin and a trainer for the Linux operating system/Unix shell scripting. He has worked with global clients and in various industries, including IT, education, defense and space research, and the nonprofit sector. Follow him on Twitter, Facebook, Google+.

Leave a Comment