We have a small cluster where I work, that I look after. The nodes run CentOS 7.5. Our older nodes use Xeon E5 v4 CPUs, mostly the E5-2699 v4. With the older nodes, the Intel Turbo Boost works properly, and individual cores of the CPU are free to ramp all the way up to the Max Turbo Frequency, as specified in the CPU's specs.

The problem is with our newer systems. Most of them are equipped with Xeon Gold 6152 CPUs. They will only ramp up to the base frequency (2.1 GHz), and never go above that. The lscpu command also indicates that this is the maximum speed of the CPU, while it should be indicating that the maximum is 3.7 GHz (Maximum Turbo).

I suspect the problem has to do with the speed control driver. On the older systems, the command cpupower frequency-info indicates that the driver is "intel_pstate". However, on the newer systems, that command indicates that the driver is "acpi-cpufreq". This strikes me as "the default driver for CPU speed control when the specialized one won't work."

From the research I have done thus far, I have learned that acpi-cpufreq is a kernel module, while intel_pstate appearss to be part of the kernel.

What can be done to get our newer systems speed controlling properly, to get full access to their specified maximum turbo speeds?

We have already checked that turbo is enabled in the BIOS settings.

(We are also having the same issue with our ATOM C3955 Processors.)

  • 1
    "I have learned that acpi-cpufreq is a kernel module, while intel_pstate appearss to be part of the kernel." : "potayto, potahto", both are kernel modules and both are part of the standard kernel – silmaril Dec 4 '18 at 15:27
  • 1
    Did you try running the latest upstream kernel (4.19.6 currently) and see if the support for this cpu was included ? Did you try unloading acpi-cpufreq and loading intel_pstate ? – silmaril Dec 4 '18 at 15:29
  • @silmaril: I can unload acpi with sudo rmmod acpi_cpufreq, which causes the CPU speed to lock at the base speed (2.1 GHz). However, I cannot run modprobe intel-pstate, it indicates that the module is not found. Also, I have not looked into swapping the kernel. Current version is 3.10.0-862.14.4.el7.x86_64, and I am unsure how to switch them by hand. I will have to research this. – Maculin Dec 4 '18 at 15:49
  • 1
    That's not the most recent CentOS 7 kernel. Try updating. – Michael Hampton Dec 4 '18 at 16:03

Got it resolved, at least in preliminary testing.

As suggested by @silmaril and @Michael Hampton, the issue was the Kernel. I updated it to 4.19.8-1.el7.elrepo.x86_64, and now the Xeon Gold 6152 CPU based system I tried it on is now reporting the correct 3.7 GHz as the CPU max speed. It is also reporting that the frequency control driver is now "intel_pstate".

I followed instructions from this article, which basically has you add a repo from ELRepo (who compile newer Kernels and other things for CentOS/RHEL), then download and install the newest Kernel they have.

EDIT: I have now also tested this against the ATOM C3955 based systems we also have here. Results were a bit more ... dubious. Checking with commands like lscpu and cpupower seem to indicate that the CPU is still stuck with the max speed being at the base clock speed. However, while running under heavy load the cpu clock speeds will show at (or near) the CPU's max turbo using the command watch -n.1 'cat /proc/cpuinfo | grep -i mhz'. So it works, but not perfectly.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.