I've been trying to measure IPC, using PCM and Perf, for some different applications that access the SSD quite frequently with relatively high bandwidth.
I'm throttling the SSD bandwidth - when I set it to low, theoretically I expect the IPC to be low since CPU is idle a lot; when I set it to high, theoretically I expect the IPC to be higher.
This is not the case though, and I blame the frequency scaling. I guess that when the CPU is out for the I/O frequency drops, thus IPC pretty much stays the same, since the cycles count does not change significantly.
First of all, does it sounds reasonable? If it does, is there any way to disable the frequency scaling, and even if I will, will it effect the cycles measurements I see in PCM?
Any other ideas?
Using Intel Xeon CPU E5-2630v3 on a dual CPU Lenovo x3650 M5 server.
Depending on the platform and the workload, you may need to consider both frequency scaling and core idling.
On Linux systems it is usually possible for an administrator to disable frequency throttling, but the interface varies by Linux revision. For Linux systems based on version 3 or later kernels the infrastructure is based on the "cpupower" utility, which has manual pages that point to the various sub-options. You should be able to use this to set the minimum and maximum frequencies to the same value to prevent frequency scaling.