summaryrefslogtreecommitdiffstats
path: root/virt/kvm/assigned-dev.c
diff options
context:
space:
mode:
authorMikulas Patocka <mpatocka@redhat.com>2013-12-11 19:38:53 -0500
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2014-01-06 15:52:49 +0100
commitd82b922a4acc1781d368aceac2f9da43b038cab2 (patch)
tree2ce5ad378eb8d1fd2d4a6d12e6e9184d44418df3 /virt/kvm/assigned-dev.c
parente20e1d0ac02308e2211306fc67abcd0b2668fb8b (diff)
downloadblackbird-op-linux-d82b922a4acc1781d368aceac2f9da43b038cab2.tar.gz
blackbird-op-linux-d82b922a4acc1781d368aceac2f9da43b038cab2.zip
powernow-k6: correctly initialize default parameters
The powernow-k6 driver used to read the initial multiplier from the powernow register. However, there is a problem with this: * If there was a frequency transition before, the multiplier read from the register corresponds to the current multiplier. * If there was no frequency transition since reset, the field in the register always reads as zero, regardless of the current multiplier that is set using switches on the mainboard and that the CPU is running at. The zero value corresponds to multiplier 4.5, so as a consequence, the powernow-k6 driver always assumes multiplier 4.5. For example, if we have 550MHz CPU with bus frequency 100MHz and multiplier 5.5, the powernow-k6 driver thinks that the multiplier is 4.5 and bus frequency is 122MHz. The powernow-k6 driver then sets the multiplier to 4.5, underclocking the CPU to 450MHz, but reports the current frequency as 550MHz. There is no reliable way how to read the initial multiplier. I modified the driver so that it contains a table of known frequencies (based on parameters of existing CPUs and some common overclocking schemes) and sets the multiplier according to the frequency. If the frequency is unknown (because of unusual overclocking or underclocking), the user must supply the bus speed and maximum multiplier as module parameters. This patch should be backported to all stable kernels. If it doesn't apply cleanly, change it, or ask me to change it. Signed-off-by: Mikulas Patocka <mpatocka@redhat.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Diffstat (limited to 'virt/kvm/assigned-dev.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud