Kernel Boot Parameters "hpet=disable" V/s "nohpet"

Kernel boot parameter HPET (High Precision Event Timer) is used for specifying hardware timer/clock source. HPET is not available for all sorts of hardware, and some HPET clocks are considered unreliable.

Difference between “hpet=disable” and “nohpet”

There is no difference in the use of the two options. Both the options “hpet=disable” and “nohpet” force kernel to avoid selecting hpet clocksource. But if hpet=disable is used it disables completely the hpet clock. Whereas nohpet only tells kernel not to select hpet timer and select some other available clocksources.

As per the kernel documentation “hpet” option is architecture dependent. We need to specify “hpet=disable” for (32-bit system) and “nohpet” for (64-bit system) on the kernel boot line. And this is mentioned in the kernel documentation as shown below.

Check /usr/share/doc/kernel-doc-X.X.X/Documentation/kernel-parameters.txt:

hpet=           [X86-32,HPET] option to control HPET usage

Documentation has not mentioned about 64bit system anywhere. But it is confirmed that “nohpet” parameter option is for 64-bit architecture and “hpet=disable” is for 32-bit architecture.

In short, the difference between the two is as follows: “hpet=disable”: disable HPET then kernel could not choose it as clock source. Kernel boot parameter “hpet=disable” is for Linux of x86 architecture.

nohpet”: kernel should not use HPET for clock source. Kernel boot parameter “nohpet” is for Linux of x86_64 architecture.