• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Root [KERNEL] TheOC v1.7.20 kernel for MT Isaac & TG based CM7

For hahas, I decided to build a MIUI OC kernel. I wanted to see what all the fuss is about (I don't really remember what it was like on CM7). My verdict: meh. Unless the only thing you do on your phone is take benchmarks, I see no benefits (and only downsides to doing this). I see no perceptible or discernible difference in actual usage.

20111112_100554.jpg
20111112_101201.jpg


But since I already coded the changes to my MIUI kernel, I'll post the changes up to my Github. I should also note that I only did frequencies up to 1.4 GHz.​

Basically, the same as on a computer, the overclocking is not going to be extremely noticeable doing everyday activities such as reading your email, websurfing, texting, etc.

The whole point of benchmarking is to push your hardware to the limits so that's why you see higher scores with overclocking. If you're not doing an activity that will push your hardware, then you probably won't notice a difference. The only times that you may notice a difference is when you are using apps that push your phone/computer towards their limits such as higher end games, videos, etc.
 
Speaking of SetCPU, their market description states you can manage voltage if your kernel supports it but I'm not seeing the option. Am I missing something? IncrediControl is working fine for me, I'm just curious.
 
Here's a more aggressive undervolt table that I've been playing with the last couple of days. Basically, it works on my phone but try yours before applying on boot. I lowered the lower clock speed voltages a lot more since basically, the cpu spends a lot more time at the lower speeds, you should save more power.

With wifi off and my phone on idle, when I went to check the battery monitor widget today, my battery had stayed at 67% for 50 minutes before I turned on the screen to check on some things... and then it promptly dropped to 63% in the next 5 minutes when I started surfing the web on 3g and checking the battery stats. lol. I also updated the OP with the more aggressive table below.

122880: 800
245760: 800
368640: 800
460800: 875
576000: 925
652800: 975
768000: 975
806400: 1075
921600: 1125
1024000: 1175
1113000: 1175
1209600: 1175
1305600: 1225
1401600: 1225
1516800: 1275
1612800: 1275
1708800: 1350
1804800: 1400
1900800: 1475
2016000: 1500
 
Basically, the same as on a computer, the overclocking is not going to be extremely noticeable doing everyday activities such as reading your email, websurfing, texting, etc.

The whole point of benchmarking is to push your hardware to the limits so that's why you see higher scores with overclocking. If you're not doing an activity that will push your hardware, then you probably won't notice a difference. The only times that you may notice a difference is when you are using apps that push your phone/computer towards their limits such as higher end games, videos, etc.

That wasn't the point I was trying to make. I just was just saying, objectively, there is no real benefit. Chip manufacturers, in this case Qualcomm, put out the maximum clock specification (in our case 1 GHz). They test the chips only at that specification to see if they can handle more complicated instructions (stress tests). Now, I haven't found anything "official" but I have found reports that the S2 Snapdragon series is capable of a clock rate of 1.4 GHz. Relevant: Qualcomm roadmap detailed: Quad Core CPU and GPU chipsets coming later this year | MobileTechWorld

Theoretically, it should be "safe" to overclock our CPU up to 1.4 GHz (I wouldn't see why not). Anything higher than that is dangerous and pointless. It just becomes a numbers game after that with no real value. As the signal lines in the CPU transitions to a new state (0 to 1, 1 to 0; http://i55.tinypic.com/kcc5f6.jpg), there needs to be time in between. If the next clock pulse (which is what is happening with OC) comes through before the transition completes, it'll confuse the hell out of the CPU and cause potential system instability and/or data loss. Furthermore, that wasted energy ends up being heat (added heat that CPU wasn't really designed to handle). Also, there's a possibility of causing electromigration (Electromigration - Wikipedia, the free encyclopedia). The combination of added heat and electromigration can cause permanent damage to the CPU.

Like I said, 1.4 GHz seems like it would be okay. If you wanted to overclock for the purpose of gaming and stuff, using higher speeds than 1.4 wouldn't even do anything. If anything, you're just make your phone work harder with no actual speed gain in return. You're just passing clock pulses at a rate that the hardware can't even handle.
 
That wasn't the point I was trying to make. I just was just saying, objectively, there is no real benefit. Chip manufacturers, in this case Qualcomm, put out the maximum clock specification (in our case 1 GHz). They test the chips only at that specification to see if they can handle more complicated instructions (stress tests). Now, I haven't found anything "official" but I have found reports that the S2 Snapdragon series is capable of a clock rate of 1.4 GHz. Relevant: Qualcomm roadmap detailed: Quad Core CPU and GPU chipsets coming later this year | MobileTechWorld

Theoretically, it should be "safe" to overclock our CPU up to 1.4 GHz (I wouldn't see why not). Anything higher than that is dangerous and pointless. It just becomes a numbers game after that with no real value. As the signal lines in the CPU transitions to a new state (0 to 1, 1 to 0; http://i55.tinypic.com/kcc5f6.jpg), there needs to be time in between. If the next clock pulse (which is what is happening with OC) comes through before the transition completes, it'll confuse the hell out of the CPU and cause potential system instability and/or data loss. Furthermore, that wasted energy ends up being heat (added heat that CPU wasn't really designed to handle). Also, there's a possibility of causing electromigration (Electromigration - Wikipedia, the free encyclopedia). The combination of added heat and electromigration can cause permanent damage to the CPU.

Like I said, 1.4 GHz seems like it would be okay. If you wanted to overclock for the purpose of gaming and stuff, using higher speeds than 1.4 wouldn't even do anything. If anything, you're just make your phone work harder with no actual speed gain in return. You're just passing clock pulses at a rate that the hardware can't even handle.

Overclocking for Newbies - Page 2 | PCWorld

I respectfully disagree.

Overclocking - Wikipedia, the free encyclopedia

"Factors allowing overclocking
Overclockability arises in part due to the economics of the manufacturing processes of CPUs and other components. In most cases components with different rated clock rates are manufactured by the same process, and tested after manufacture to determine their actual ratings. The clock rate that the component is rated for is at or below the clock rate at which the CPU has passed the manufacturer's functionality tests when operating in worst-case conditions (for example, the highest allowed temperature and lowest allowed supply voltage). Manufacturers must also leave additional margin for reasons discussed below. Sometimes manufacturers produce more high-performing parts than they can sell, so some are marked as medium-performance chips to be sold for medium prices. Pentium architect Bob Colwell calls overclocking an "uncontrolled experiment in better-than-worst-case system operation"."

If the system is really missing all that timing, it would be unstable and lock up or reboot or you would see data corruption if you tax the system during a stress test.
 
If the system is really missing all that timing, it would be unstable and lock up or reboot or you would see data corruption if you tax the system during a stress test.

This may be a testament to the quality of Qualcomm's SoCs. However, we don't know what's actually happening unless we test this with an digital oscilloscope. While the hardware might be handling the higher speeds, I don't doubt for a second that there aren't deleterious effects on the CPU. For me, using overclocking to achieve a subtle difference in performance isn't worth me running my phone into the ground. To each his own, of course. :)

You quoted:

Overclockability arises in part due to the economics of the manufacturing processes of CPUs and other components. In most cases components with different rated clock rates are manufactured by the same process, and tested after manufacture to determine their actual ratings. The clock rate that the component is rated for is at or below the clock rate at which the CPU has passed the manufacturer's functionality tests when operating in worst-case conditions (for example, the highest allowed temperature and lowest allowed supply voltage). Manufacturers must also leave additional margin for reasons discussed below.
I don't doubt this for a bit. They've got to be smart about it, but I doubt Qualcomm created an "additional margin" for speeds upwards to 2 GHz. Furthermore, like Tickerguy said, if the chip is capable of higher speeds, they can simply market it at a higher clock rate with little to no added cost to the manufacturer. It's strange that they wouldn't market it at a higher clock rate.

Not saying anything against Doomlord, but I don't know how "trustworthy" the OC kernel patch is (voltages are my main concern). These are very real concerns: Overclocking - Wikipedia, the free encyclopedia Obviously, we're in the clear for now as none of our phones have exploded, yet. :)

Like I said, I think 1.4 GHz is probably the sweet spot for us. But since I've have yet to see a real product specification and outline for the MSM8x55 SoC, I still remain wary of speeds higher than 1.4 GHz. I will say this though - if I really thought overclocking was truly "dangerous", I wouldn't of added the patch to my sources on Github.

EDIT: I should note that I'm not trying to discount what you're doing. I know a lot of people in the Triumph community like these kinds of things and you're providing this for them. :)
 
For anyone who has a question on governors and io schedulers, I added this to the OP:

Here's a link to a pretty good description of what seems to be most or all of the known available governors and IO schedulers in use in Android kernels by knzo at xda:
http://forum.xda-developers.com/showthread.php?t=1242323

His summary:
To sum up:
(in my (knzo's) humble opinion)
  • Battery: 1st place - InteractiveX | 2nd place - Smartass | 3rd place - SavagedZen
  • Performance: 1st place - Minmax | 2nd place - Smartass2 | 3rd place - SavagedZen
IO Scheduler:
To sum up:
(in my (knzo's) humble opinion)
  • Performance: 1st place - VR
  • Reliability: 1st place - Simple
 
I asked this question before without a response so I figure I may as well try again. Basically my question is what is considered hot? I have been doing a little monitoring at normal speeds and noticed my phone will very rarely go above 30c but when overclocking at 1.4 it seems to like staying around 32c and rises to that temperature very quickly. My current profile or the profile I would like to use anyway is set at 1.4 but with temperature rules that drop it to 1.3 at 30c, 1.2 at 32c, 1.1 at 35, 1 at 38 and .9 at 40. Screen of is set to 652 with a 122 minimum. Screen off is the only profile I dropped the minimum frequency, all the other profiles mentioned keep the minimum at 245. I am not trying to go crazy with it but looking for a little extra speed when I need it. For example one of my favorite apps is Android Assistant which wen open will show you just about everything going on with the phone in real time but takes a bit to open as it is retreating information. At normal speed using stock it would take about a minute for the app to open and start. With CM7 I could count to 10 Mississippi but with cm7 at 1.4 the app opens and starts giving stats instantly. I’m not looking to run games for long periods of time or anything like that just trying to speed up a few short processes as I can’t tell the difference in general use. Anyway I was again just looking for a thumbs up or down on these settings as I feel I’m being just a bit too conservative and could bump my temperatures up a degree or two on each profile and still be safe. Any help or opinion would be greatly appreciated.
 
What you have to understand about heat dissipation is that the reported temperature is not the whole story. You're measuring wherever the junction is that does the measuring -- the problem is that every junction in the chip must be able to dissipate the switching and current-passing heat all the time.

These chips are engineered for both internal timing and heat dissipation, they're not a guess. If they were stable at a higher frequency and didn't have a risk of running out of either timing or thermal margin somewhere in one or more of the junctions at a higher clock rate they'd be sold at the higher clock rate. It would be "free", you see, for the manufacturer to do that.

They're not and the reason is because they're not stable at those higher speeds. Part of it is a timing issue and the propagation of signals inside the chip itself, but part of it is also thermal. You break the timing windows in the chip you get a signal that arrives late and causes the gate transition to happen outside the expected and valid window of time -- that causes data corruption and the phone crashes (you hope, rather than silently destroying some of your data which can also happen!) but there's no physical damage.

You violate thermal limits, however, and the damage is permanent. That the phone doesn't "feel too hot" tells you nothing with regard to the internal junction temperatures inside the CPU.

Remember that as a mobile device the environmental expectations for stable operation are much wider than they are for something intended to be used in a house or on a desk in a business. Mobile devices are expected to function from reasonably-below-zero temperatures to around 120F, the approximate "limit" of human tolerance, without damage. Mil-spec (or aerospace grade) stuff is expected to work within even wider temperature ranges. That your overclocked kernel works fine in your house doesn't mean that when you're at the amusement park on a 95F day in full sunlight that you will retain sufficient margin to avoid physical damage. Tolerances stack folks, and if you don't understand what I just said you have no business doing this sort of experimentation unless you have a penchant for literally burning $100 bills.


I would like to quote this in response to the questions about heat. I personally really doubt overclocking to 1300 or 1400 will give too many people problems, but it is possible. I would be careful with your temperatures, don't try to go overboard.

overclocking this thing super high just so you can see high quadrant (or some other benchmark) scores is just silly. You may see some wicked numbers, but what is the point of getting high numbers? Unless you need to overclock this for a specific reason, you are taking a chance at frying your phone. If you then call VM for a replacement phone, you are not the sort of person I would want my kids/family to associate with. You take a chance, live with the consequences. If you can't afford the consequences, then don't take the chance.

All that being said, I believe this processor can handle some moderate overclocking without any real issues. I would assume they test them at a higher clock speed so that there is a margin of error. There is nothing that I personally feel outweighs even the slight risk of doing this. A slight (and many times unnoticeable) bump in processing speed is not much of a benefit. But if you think it does, then have fun. There are risks with all of these fun things we can do to our phones, just be responsible, and at least read up on it first!
 
I would like to quote this in response to the questions about heat. I personally really doubt overclocking to 1300 or 1400 will give too many people problems, but it is possible. I would be careful with your temperatures, don't try to go overboard.

I totaly agree with what is above but what I am looking for is just a general roundabout number as to what temperatures to avoid. I realize every phone will be different but I would think it would be safe to say for instance that ??c is too hot a temperature to run any of our phones at. Could anyone recommend a temperature that it is just not safe to go above or I should start bringing my frequencies down at.
 
I would like to quote this in response to the questions about heat. I personally really doubt overclocking to 1300 or 1400 will give too many people problems, but it is possible. I would be careful with your temperatures, don't try to go overboard.

I totaly agree with what is above but what I am looking for is just a general roundabout number as to what temperatures to avoid. I realize every phone will be different but I would think it would be safe to say for instance that ??c is too hot a temperature to run any of our phones at. Could anyone recommend a temperature that it is just not safe to go above or I should start bringing my frequencies down at.

I tried googling for you but my google-fu was weak... :( However, I did find 2 things that may help:

- The normal operating temperature for the hp tablet is between 0 - 40 degrees C and it also uses a snapdragon processor so I would surmise that you don't want to exceed that too long on our phones also.

- Also, according to the MT guide, if your phone is overheating, it actually puts a message on the screen saying to cool down before using and you can only make emergency calls at that point.
 
Thanks for looking into that for me. I had goggled some suggested settings for similar phones and the answers had been all over the place and could not find anything all that helpful. Was also not sure if what was said in the guide would still apply why running CM7 as the call for that message may not still be in place. Thanks again, going to try and keep it from going above 35c. Not trying to push any limits by cranking it up for games, happy enough not pacing around waiting for their startup screens to load.
 
My temp meter ALWAYS says 75.9 or 76.1 Fahrenheit. Is mine broken or does the CPU usually stay at a steady temp? Wrong app used for reading possibly? What are you guys using to measure temps?

Also, how is the updated and more aggressive voltage table working for everyone? :)
 
you're referring to the battery temperature? I'm assuming it's because you're not using the oem motorola battery

and as for electromigration and other longevity issues associated with overclocking, I didn't realize the voltages scaled up. I figured the same voltage at 1ghz would apply. I don't know if any whitesheets would state the "max safe" voltage for the processor, but I'm going to imagine that 1.5v on the 45nm process may not be too sane.

if you truly are concerned, find out the max stable clock at the stock max voltage. run linpack a bunch of times to check for stability. you're looking for inaccurate results
 
Thanks! Yep! Using the 1500mah Anker battery. Figured the sensor would work regardless. Apps I have tried list either a battery sensor or a CPU sensor. Not sure if either are accurate.
I was referring to the undervolting and wondered if anyone was having any issues. I have not. :)
 
So I've been monitoring my battery info using battery monitor widget. The last few days, here's my observations:

When running at 1.7 Ghz for a bit, my battery temp goes up to 35 deg C at that freq and then when I stop using my phone, it drops back down around 26 -28 when I'm just surfing or checking the battery stats etc. When the screen is off for a while past the 15 min mark, and most things are shut down, the temp drops down to about 22.

As for battery usage:

With wifi on, gps off, screen off, phone at idle, only a couple of programs checking for updates every few hours, my phone uses 2%/hour.

With wifi off, 3g on (my signal is kind of crappy), gps off, screen off, phone at idle, only a couple of programs checking for updates every few hours, my phone used 11% over 7 hours which is approx 1.5%/hr.

Edit: In airplane mode, from 11:34 pm to 6:49 am, my phone dropped from 100% to 96%. It's interesting because it stayed at 96% from 2:19 am to 6:49 am. (I have battery monitor widget monitoring every 5 minutes.)

When using my phone at 1.7 Ghz - battery drains like there's no tomorrow...
 
Here's Tickerguy's latest kernel in the 11-6 build with the OC tables and the minmax and smartassv2 makefiles from Isaac merged in. Nothing else in Tickerguy's code is changed from what he has on his github. I don't take credit for anything except to merge the two codes and build this.

Disclaimer: By downloading and installing this kernel, you are assuming all risk. There are no implied warranties of any kind.

It seems to be working for me but try this at your own risk... Don't come crying to anyone here if you fry your phone... Don't overclock if you don't feel comfortable taking the risk!

Instructions:

Flash Zip file in CWM.

File (see changelog at end of post):

TheOCv1-wip-4.zip - the oc kernel
http://tinyurl.com/6smyn6a

kernel_orig_cm7.zip - the original boot.img from the cm7 11-6 build in case you bootloop and want to restore the original

http://tinyurl.com/6ng3myp

screenshot-1320818156958.png


screenshot-1320644688256.png


changelog:
TheOCv1-wip-4.zip
- Added I/O schedulers cfq, vr, and sio. Go ahead and try them out if you want. I was able to set them using No Frills CPU control -- available free on the market. I tested running lots of quadrants and deadline still seemed the fastest on average than the rest but ymmv.

Here's a link to a pretty good description of what seems to be most or all of the known available governors and IO schedulers in use in Android kernels by knzo at xda:
[REF] Quasar kernel governors and I/O schedulers manual - xda-developers

His summary:
To sum up:

(in my (knzo's) humble opinion)
  • Battery: 1st place - InteractiveX | 2nd place - Smartass | 3rd place - SavagedZen
  • Performance: 1st place - Minmax | 2nd place - Smartass2 | 3rd place - SavagedZen
IO Scheduler:
To sum up:

(in my (knzo's) humble opinion)
  • Performance: 1st place - VR
  • Reliability: 1st place - Simple
-Enabled detailed frequency translation statistics just so I can see the detailed stats of frequency usage.
-Added SVS for voltage control. You can set the voltage in one of 3 ways:
1. manually edit the vdd_levels file in /sys/devices/system/cpu/cpu0/cpufreq/ using either adb or a file manager.
2. Set up a script and put it into init.d to set the file upon boot.
3. The simplest way - use the IncrediControl app to set the voltage. You can read about it from this post on xda and a download link is also provided there or download it from the Market:
[MOD] IncrediControl - Easy GUI Undervolting - xda-developers
Thanks to b_randon14, chad0989, DoomLord, and Napstar whose code, posts, links and info helped a lot as well as the million posts from everyone that I read over the last few days...

- I'm using the following undervolt table on my phone in IncrediControl and it seems pretty stable; try out your own settings and see. The higher frequencies > 1.7 GHz would not undervolt for me without locking up and rebooting but your phone might fare better. I suggest that you DO NOT APPLY the settings on Boot until you are sure your phone is stable.
more aggressive undervolting table:
122880: 800
245760: 800
368640: 800
460800: 875
576000: 925
652800: 975
768000: 975
806400: 1075
921600: 1125
1024000: 1175
1113000: 1175
1209600: 1175
1305600: 1225
1401600: 1225
1516800: 1275
1612800: 1275
1708800: 1350
1804800: 1400
1900800: 1475
2016000: 1500

less aggressive:
122880: 850
245760: 850
368640: 850
460800: 900
576000: 950
652800: 1000
768000: 1000
806400: 1075
921600: 1125
1024000: 1175
1113000: 1175
1209600: 1175
1305600: 1225
1401600: 1225
1516800: 1275
1612800: 1275
1708800: 1350
1804800: 1400
1900800: 1475
2016000: 1525


TheOCv1-wip-3.zip
http://tinyurl.com/buotbqt
-set default max freq to 1024 MHz - hopefully oddball phones will now boot - thanks to b_randon and pwnyourace for the advice
-added 2 GHz frequency line - thanks to b_randon14, DooMLoRD, Napstar and FPX

TheOCv1-wip-2.zip
http://tinyurl.com/bmhxl7z
-Changed default governor to OnDemand
-turned off kernel debugging

TheOCv1-wip-2.zip
Original kernel

source:
https://github.com/mantera/WX_435_Kernel-CM7

Would it be easy enough to take out some of the higher frequencies? You know, for those of us that are scared to run that high all of the time? Just because my phone has ran at 1.9 without me realizing it, doesn't mean I want to. I saw that part about going into the "vdd_levels file" and playing with that, I also poked around and saw some other files that may be what I'm looking for.
Also, would you recomend no frills or set CPU?
 
setting the vid doesn't mean anything if the fid is never called for.

for what it is, if you're nervous, set all the vids for fids 1ghz and up to the same as the stock 1ghz vid. then test for stability at each overclock and find what works safely for you.
 
I've used the kernal by pwnyourace for like a month at 1.2Ghz. Worked great, the only thing I wanted to do was monitor the processor speed. I was just using NoFrills to set my limits and governer, but I installed setCPU so I could watch it in more of a real time. Then every once and a while I would notice that my phone would get warm ( I leave it on my toolbox at work) and I looked at setCPU and would see it was pegged at 1.9. :eek: I would reset it and later, maybe a day or two, it would happen again. So I uninstalled it and found something else. Now that I'm on TickerGuy's ROM, I would like to tweak to my heart's desire. Reading the OP it looks like it would be crazy simple to fine tune the tables. Now that I think about it, this could be a kind of lesson for all of less knolageable folk.:rolleyes:
 
By using setcpu, you can limit it from running at higher frequencies. But the vdd_levels file is only for the voltage control, you can't disable states through it. But when compiling the kernel, it is really easy to disable available frequencies. As easy as changing a 1 to a 0 in the acpu7X30 acpu table file in the kernel source. But I use my 0.23 version of bKernel(on bROM v1.1.114) and I use setcpu to limit it to 1024MHz, and it never goes above that unless I specify it to. I have all the way up to 2GHz enabled in the kernel, but it boots at 166MHz min, 1024MHz max, and I have my setcpu setup with no oc for now.

Pwn's first kernel booted at the highest available frequency(1900MHz) and if you didn't use setcpu or nofrills to change the max freq after boot it would continually run at 1900MHz.
His oddball version changed that by limiting the max freq at boot to 1900MHz, much like me and mantera have done in our kernel(actually the exact same way). SO you have the OC options, but it doesn't boot at that. Running this or my kernels, you can go into setcpu, and set the max at 1024MHz. Reboot(to reset the time in state information) let it run for however long, and as long as you dont go in a change the max freq in setcpu, you can look at the time in state and nothing above 1024MHz has been touched.

We have tried to make the kernels as safe for everyone as we can, while still allwoing users to have the option to OC if they choose to do so. Without doing nothing after installing this, and booting up it will run at 1024MHz max freqeuncy and 245Mhz min(I believe this is what mantera has enabled,maybe 166MHz) untill you use some cpu control app to change that. So essentially it is a non OC'ed kernel with OC support :)
 
Found a very nice post about overclocking. It is for another phone and slightly dated but was awesome in helping me understand the ins and outs of overclocking and Governors in general. Would definitely recommend for all of us OC noobs.

OverClocking 101
 
It would be great to see support for manipulating GPU settings. I don't really know if this is possible (being a n00b), but it would be cool if it was!
 
Back
Top Bottom