How to Disable High-Resolution Timer in CentOS/RHEL 6

This post introduces how to disable high-resolution timer configured in Linux kernel internally.

To disable high-resolution timer, add “highres=off” into kernel parameter, ex. into “kernel” line in /boot/grub/grub.conf as:

title Oracle Linux Server Unbreakable Enterprise Kernel (3.8.13-68.3.4.el6uek.x86_64)
  root (hd0,0)
  kernel /vmlinuz-3.8.13-68.3.4.el6uek.x86_64 ro root=/dev/mapper/vg_-lv_root rd_NO_LUKS rd_LVM_LV=vg_/lv_root LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 rd_LVM_LV=vg_/lv_swap rd_NO_DM rhgb quiet highres=off
  initrd /initramfs-3.8.13-68.3.4.el6uek.x86_64.img

and reboot the system.

# shutdown -r now

After rebooting the system, it can be confirmed whether highres is disabled by checking whether “highres=off” is included in /proc/cmdline. Note that kernel does not prepare methods/interfaces checking high-resolution timer is enabled/disabled, thus it is necessary to confirm it by checking the file.

The high-resolution timer is not present in CentOS/RHEL 5. By default, highres=on as it is configured in kernel booting procedures. Linux kernel can handle internal time-slice within nanosecond with enabling high-resolution timer. By disabling this feature, the kernel will handle the slice within a millisecond, it would not be any issues unless your applications need internal time-slice should be nanosecond order.