While being owner of my Redmi Note 7, which definitely has some issues, I started experimenting with it.
Throttling is a common term amongst electronics and such. It's a way to safe our precious silicon from eventually cooking under high temperatures. There're a lot of issues involved here. Let me explain:
Xiaomi's belief is maximizing battery life while forgetting about optimal device's performance. Here's the issue, though - neither of which are properly calibrated. For a battery of this size, you would expect something better, but it's not. Looking through system files, there are several thermal config files, which simply tells to the thermal-engine binary at what state device should throttle. Sounds like a good idea, right? Yeah, not quite.
Upon opening these exact config files you see several lines, which describe temperature thresholds and which frequency device should start to use under it's determined state. There's more to this - GPU gets less voltage when it's getting warmer, thus reducing the ability for GPU to reach higher power levels. Everything would be great, if the device wouldn't start to throttle it's clocks at 45° degrees, which is basically nothing.
After seeing device's guts it's safe to state, that our phone has proper cooling done to it. Sure, it's basic, but with that much space and the price this phone is built for, you couldn't ask for better cooling.
So, what can you do to it?
There're several solutions.
-Deleting thermal-engine entirely and forgetting about the problem. Here's the thing, though - it's really dangerous, because not only you lose the ability to monitor your battery's temperature, you could cook your phone while charging. Charging throttling is a thing too, when phone slows down pulling current from a wall as soon as you are doing something intensive. It's a dirty fix with a lot of risks involved.
-Modifying thermal config tables. This way you could ensure device's safety while having optimal device's performance.
-Mounting hugeass cooler at the back of your phone or better yet - mounting cooler straight to the cpu silicon. Jokes aside, this is not recommended at all, unless you're insane and don't care about sacrificing device's size.
I'm actually thinking about making completely custom thermal tables and make them compatible with Magisk. Even if Magisk method wouldn't ensure enough confidence, I will make flashable zip for recovery flashers. Everyone's happy.
FAQ
-But the device has kernel level throttling monitor. That one works too, right?
-Yes, but it does not do anything related to cpu clock management and such. All it does is turning off your device entirely when undesirable temperatures are reached. Thermal-engine is what's monitoring temperatures and adjusting clocks when necessary. Kernel level throttling is there for additional safety, in case thermal-engine is not working properly.
-My device runs great. Why bother modifying what Xiaomi did?
-It's up to you to do anything with your purchase. If you are happy, it's fine, leave it as it is.
-I noticed hugely increased benchmark scores and games working smoother after deleting thermal-engine. Is that normal?
-Exactly. Here's your answer to what thermal-engine actually does. It hampers our device too much.
-When are you going to research this modification?
-As soon as I'm free from doing routinal things: school, job, home and such.
BONUS TIME!
Gfxbench 3 Manhattan 1080p offscreen scores for your reference:
With thermal-engine running: 15fps
Without thermal-engine running: 23fps
REMEMBER, I'M IN NO WAY RECOMMENDING YOU TO DELETE THERMAL-ENGINE. IF YOU DO THIS, IT'S YOUR RESPONSIBILITY WHEN DEVICE STARTS COOKING OR CATCHING FIRE. THIS IS SORT OF MY OBSERVATION OF A PROBLEM OUR DEVICE HAS. EVERYTHING IS AT OUR OWN RISK!
Throttling is a common term amongst electronics and such. It's a way to safe our precious silicon from eventually cooking under high temperatures. There're a lot of issues involved here. Let me explain:
Xiaomi's belief is maximizing battery life while forgetting about optimal device's performance. Here's the issue, though - neither of which are properly calibrated. For a battery of this size, you would expect something better, but it's not. Looking through system files, there are several thermal config files, which simply tells to the thermal-engine binary at what state device should throttle. Sounds like a good idea, right? Yeah, not quite.
Upon opening these exact config files you see several lines, which describe temperature thresholds and which frequency device should start to use under it's determined state. There's more to this - GPU gets less voltage when it's getting warmer, thus reducing the ability for GPU to reach higher power levels. Everything would be great, if the device wouldn't start to throttle it's clocks at 45° degrees, which is basically nothing.
After seeing device's guts it's safe to state, that our phone has proper cooling done to it. Sure, it's basic, but with that much space and the price this phone is built for, you couldn't ask for better cooling.
So, what can you do to it?
There're several solutions.
-Deleting thermal-engine entirely and forgetting about the problem. Here's the thing, though - it's really dangerous, because not only you lose the ability to monitor your battery's temperature, you could cook your phone while charging. Charging throttling is a thing too, when phone slows down pulling current from a wall as soon as you are doing something intensive. It's a dirty fix with a lot of risks involved.
-Modifying thermal config tables. This way you could ensure device's safety while having optimal device's performance.
-Mounting hugeass cooler at the back of your phone or better yet - mounting cooler straight to the cpu silicon. Jokes aside, this is not recommended at all, unless you're insane and don't care about sacrificing device's size.
I'm actually thinking about making completely custom thermal tables and make them compatible with Magisk. Even if Magisk method wouldn't ensure enough confidence, I will make flashable zip for recovery flashers. Everyone's happy.
FAQ
-But the device has kernel level throttling monitor. That one works too, right?
-Yes, but it does not do anything related to cpu clock management and such. All it does is turning off your device entirely when undesirable temperatures are reached. Thermal-engine is what's monitoring temperatures and adjusting clocks when necessary. Kernel level throttling is there for additional safety, in case thermal-engine is not working properly.
-My device runs great. Why bother modifying what Xiaomi did?
-It's up to you to do anything with your purchase. If you are happy, it's fine, leave it as it is.
-I noticed hugely increased benchmark scores and games working smoother after deleting thermal-engine. Is that normal?
-Exactly. Here's your answer to what thermal-engine actually does. It hampers our device too much.
-When are you going to research this modification?
-As soon as I'm free from doing routinal things: school, job, home and such.
BONUS TIME!
Gfxbench 3 Manhattan 1080p offscreen scores for your reference:
With thermal-engine running: 15fps
Without thermal-engine running: 23fps
REMEMBER, I'M IN NO WAY RECOMMENDING YOU TO DELETE THERMAL-ENGINE. IF YOU DO THIS, IT'S YOUR RESPONSIBILITY WHEN DEVICE STARTS COOKING OR CATCHING FIRE. THIS IS SORT OF MY OBSERVATION OF A PROBLEM OUR DEVICE HAS. EVERYTHING IS AT OUR OWN RISK!