I am expanding the Linux kernel to control the frequency of some threads: when they are scheduled for the kernel (any kernel!), The kernel frequency is changed by writing the correct p-state to the IA32_PERF_CTL register, as suggested in the Intel manual. But when different threads with different โtunableโ frequencies are planned, it seems that the throughput of the entire stream increases, as if all the cores were operating at the maximum set frequency.
I have done many tests and measurements under different loading and configuration conditions, but the result is the same. After some tests with CPUFreq (without starting the application, I set different frequencies on each core, and finally, the measured frequencies with cpufreq-info -w were equal), I wonder if the processor cores can really start with different, independent frequencies , or if there are hardware policies or restrictions.
Finally, is there a CPU model that makes it possible to scale this fine-grained frequency?
The processor I use is the Intel Core i5 750
user1466329
source share