- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi all,
MSR_UNCORE_RATIO_LIMIT 0x620 can be used to adjust the minimum and maximum frequency range for the uncore.
Is there a way to restore the register value that was present after boot after writing to the maximum bits of this range?
Thanks for your assistance. It's highly appreciated!
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I don't think there is any way to recover the values that were in the register at boot time. I always try to remember to read MSR 0x620 before writing it.
The good news is that if you program values that are too low or too high they are silently ignored and the processor will obey the original hardware limits. You can verify this by monitoring the uncore frequency using MSR 0x621 or by counting Uncore Clocks.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for your response.
Based on your explanation, it seems I have two options:
1. I can read MSR 0x620 before writing to it, and it will require saving the value to a file for recovery in case of a crash.
2. Alternatively, to simplify things, after the register was modified, if I would like to restore the previous value, I can simply write a high value, such as 5.0 GHz (0x32), to the relevant bits. It will function the same as the initially written register value at boot time since the higher value will be quietly ignored anyway.
Is my understanding accurate, or are there other options to consider?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
MSR 0x620 includes both minimum and maximum ratios, so I would recommend being careful to consider the bounds for each independently. I have not tested this on many systems -- all I can recall with confidence is that if I input a maximum ratio value that is higher than the default value, the system obeys the default value anyway. (This testing was done on SKX and CLX processors -- behavior may differ for other processor generations.)
Note that the BIOS and/or other management subsystems may be able to control this register as well, so the value you get at boot time may not be the only value that the system can set.
The min and max ratio fields are defined as 7 bits each (not 8), so I would probably use something like 0x017f to set the min ratio to 1 and the max ratio to 0x7f just to make it clear that the values had been modified. No guarantees that this won't cause problems, but I have not run across any systems that behave unexpectedly with out-of-range requests in these two arguments.

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page