This patch allows users to modify how quickly sensors are polled.
One of the major features of Zen+ and newer processors is the ability
for them to perform gated sleeping on one or multiple cores at a time,
where power consumption of the gated core is "basically zero".
Since, by default, the application uses a polling rate of 300ms, the
power saving features of cores sleeping on Zen+ and newer is negated
when a sensor or MSR is probed often.
Allowing the users to modify the polling rate from between 50ms and
up to 60 seconds improves power saving by preventing cores from being
awoken multiple times a second when it isn't needed.
Like HWiNFO64, the popular monitoring tool for Windows, this patch
adds support for reading the cores' effective frequency or multiplier
by making use of the undocumented MSR, 0xC0010293.
This MSR was found by reverse-engineering Ryzen Master, the AMD software
for Windows overclocking and monitoring of Zen based processors. Although
this MSR is undocumented, since it is used in software written by AMD
themselves, it is safe to assume it is accurate.
The MSR returns two things, the FID or effective frequency ID and the FDID.
The FID, when divided by the FDID for a core, produces a frequency in
increments of 200 MHz -- the effective frequency.