[INFO] Kernel - HAVS/SVS/CFS/BFS/AXI/UVOC (updated 12th Feb 2012)
I am asked quite regularly what the difference between HAVS, SVS, CFS, BFS and AXI are.
So here are my answers.
Please note, this is not a full blown FAQ, its just some info to help you make the right decision in your kernel choice. It is very basic and will not be 100% technically correct in order for it to make sense. As I sacrificed technical accuracy for layman's basic info, there is no need to correct technical inaccuracies although if you feel something else is inaccurate or needs elaborating on further, please let me know.
Definitions:
CPU - Central Processing Unit
Mhz - Clock speed / frequency of the CPU (the higher the value the faster and harder the CPU is working)
mV - "Power" in MilliVolts (not really power, but it's easier to explain this way without starting a lecture on electricity)
OC - Overclock
UV - Under-Volt
VDD Values- Voltage Drain Drain Values (Values of mV assigned to a MHz)
SVS - Static Voltage Scaling. HTC's default Kernel is SVS.
Static Voltage Scaling means every CPU frequency uses a set, predefined amount of "power" to sustain that Frequency. The higher the MHz, the higher the mV, meaning the more power is used.
Essentially, SVS uses a table where frequency x = voltage Y
For example, an SVS Kernel's VDD table may look like this:
These are not necessarily accurate VDD levels, some frequencies have been left out.. Some kernels allow you to amend these VDD levels (such as Eviollet's ManU kernels.
HAVS - Hybrid Adaptive Voltage Scaling
HAVS is is not a set VDD value for each frequency. Rather, it uses a range. This means that frequency x = voltage y-z, depending on a 3rd element - Temperature.
As the range starts lower in HAVS than SVS, under some circumstances, the mV will be lower, giving HAVS the potential to have better battery consumption.
BFS - Brain F**k Scheduler
The scheduler essentially handles CPU resource allocation. It controls how the CPU ramps up in frequency and down again when not needed. The BFS version is generally very snappy (possibly more so than CFS) but is an older scheduler. It is designed to minimise latency on low spec'd machines (desktops generally)
This particular scheduler is newer than BFS. It is designed to make the best of High end machines (desktops again). In the early days, CFS seemed much laggier than BFS but now there is not too much in it. I am quite happily running a modern CFS kernel and I don't experience any lag issues.
AXI is an APB (Advanced Peripheral Bus).This has its own frequency, which when the CPU is at a certain frequency (128MHz usually), the bus frequency is lowered. Lowering of this frequency in turn can lower the CPU frequency as the CPU utilises the bus. On the ManU kernels, the AXI lowers to 14MHz, whcih means the CPU frequency lowers to 14MHz (In theory).
Undervolting
Pretty much all custom Kernels are undervolted. Some may state they are not, when they actually are. To undervolt means to use a kernel that has lower VDD levels than normal. For us this is compared to the HTC Desire stock kernels (where HTC use very generous VDD levels). The Cyanogen kernel states it is not undervolted, but CM in general may not be but perhaps compared to the HTC desire stock kernel, it is.
Overclocking
Overclocking is the process of using a custom kernel along with Set CPU or built in ROM settings, to set the CPU frequency / clock speed higher than standard. HTC Desire default is 998MHz. Anything higher than this is overclocking.
As many kernels are Undervolted, this typically means that even with a higher clock speed than default, it can still be using the same power as standard (or even lower). Overclocking damage comes into play when the frequency is higher than by design and more power is used (generating more heat). As these kernels are not using more mV, this damage is highly unlikely. If you overclock too much, worst case scenario is your phone becomes unstable and reboots under strain.
I/O Schedulers
All Kernels for android contain I/O schedulers. These determine how the kernel controls disk read/writes.
The main ones you may see in a Kernel are:
CFQ - Completely Fair Queuing
Really simply, a process requests read/write of the disks. The Process has a queue created (along with queues for other processes) and the requests are queued. Each queue is given a time slot for the requests to be actioned. Higher priority porcesses demand larger time slots.
Dead simple. Puts everything in a queue and merges read / write requests. NOOP works best with solid state drives (FLASH, NAND etc) because it assumes that the hardware controller (etc) will optimise for performanceDeadline
Best for databases. Each request is given a deadline (500ms for Read, 5s for Write) after which time, the request expires. Deadline uses read and write queues, (read being higher priority) and these deadlines to try to fairly distribute the requests for best performance.
If you could include links to your favourite kernels or at least opinions on them, that would also be very useful for me. Other than that, thanks for clearing up the jargon.
The Following User Says Thank You to AceMathias For This Useful Post:
Any chance of a general guide to change the manu settings? Maybe others are abit like me and have now installed a new kernel but are wanting to change the settings too.
Kinda figures to have the guide here, if any.
Last edited by Tyseyh; July 25th, 2011 at 12:56 PM.
thanks Suroot for the info...im running redux 1.2 on my desire with the stock kernel...have downloaded manu2.0 havs128cfs....is this stable with redux?..also is it a same install as a rom frm recovery?..do i have to wipe/delete cache??am trying to improve the battery life wid a balanced performance...
I use 1.4 as personally I found battery life better, but it may act better for you. Give both a try. Flash via recovery as normal. No need to wipe anything, but do backup with nandroid first
The Following User Says Thank You to SUroot For This Useful Post:
The HTC Desire is one of the latest high end phone by HTC bringing a huge 3.7" inch high quality AMOLED screen for crystal clear viewing, powered by a 1 GHz Qualcomm Snapdragon processor and runs on, you guessed it, Android.
We first heard a... Read More