Jump to content


* * * * * 3 votes

[KERNEL] {ADA} *4.1/4.2* ZenSERIES vX *ZenX Walking Tall*


  • Please log in to reply

#1 Purian23 (OP)

Purian23

    Follow the Android

  • Members
  • 312 posts

Posted 29 October 2012 - 02:23 PM

Source:
Mod Type: Kernel     Difficulty: Easy     Mod Status: Stable     Mod Base:      Carrier:
Requires Root: Yes     Apply In: CWM Recovery     Optional:      Optional:      Android Version:


Posted Image
Introducing
ZenSERIES Kernel
*ZenX Walking Tall*
Fast, Smooth & Battery Friendly

Unified Kernel for Toro/Toroplus/Maguro


The All New OP's will be maintained by ADA's Kernel Dev bbedward.!!!

To better serve you;
This here as a placeholder for your device redirecting to the main kernel support thread.


Find ZenSERIES Kernel Thread here!!!

Thank you and Enjoy!
Android Developer Alliance

Edited by Purian23, 29 December 2012 - 07:20 PM.


#2 bbedward

bbedward

    Member

  • Members
  • 48 posts

Posted 29 October 2012 - 02:23 PM

FAQ - Will be updated as needed.
Q: CPU Frequency Governor, I/O schedulers, what?
A: Here's a good resource that explains a lot about the topic in general and schedulers: http://forum.xda-dev...d.php?t=1369817

Q: I want different colors, how do I do it?
A: You can use an app such as Trickster MOD, Trinity, Franco, or Glados Control to change these. I prefer to keep them default on my builds because preference varies. (For reference, trinity's default colors are R: 135 G: 135 B: 214, Gamma offset 0/0/0 (I think)

Q: Kernel is randomly rebooting, how can I help?
A: After a reboot, pull /proc/last_kmsg from the device and send it my way.

Q: What I/O scheduler should I use?
A: I haven't really found any real-world difference between any of them. I personally prefer the simpler algorithms of Zen/SIO.

Q: What CPU frequency governor should I use?
A: Entirely up to you. I tend to favor interactive because it's google's governor.

Q: Do all these extra I/O schedulers and cpu frequency governors impact performance or stability?
A: No. I like to keep as many as people will use. If 1 person prefers the conservative governor it'll stay in. There is minimal->no overhead from including extra I/O and/or cpu frequency governors. Therefore, performance+stability will not be affected in the slightest. Choose the one you like, if not sure the default settings are a safe bet.

Q: Why did you create ZenSERIES?
A: It's pretty fun to do, and it's going to make a great pairing with AffinitySERIES, and hopefully several other roms as well.

Q: Do you support any other devices?
A: Working on several others.

Q: What is this "Zen Info" sysfs interface?
A: Probably nothing you care about unless you're a developer looking to do something special with zen. Otherwise, it doesn't affect you and it's for me.

Q: What is this Aaron Carol stuff you added (V(r ), no-op changes, fifo (I wrote a detailed answer already, so wanted to include it in FAQ)
A:
1.) V(R ) is similar to deadline (uses deadlines for fairness). Basically, requests are based on on the distance from the last request/I.E: the next closest request comes first (with penalty of rev_penalty). Naturally, we don't care about the distance from the last request because we're using flash memory (in our case, handling the closest request is nothing but overhead since there is no travel delay) so it doesn't matter where the next request is. I'd say in a nutshell it would be a higher thoroughput/higher latency version of deadline in a typical desktop environment. On our phones, not sure where it would fall. (I removed some unnecessary parts of the algorithm, like choosing closest request/changing head direction, etc.) You may say "Oh, why would you add an I/O scheduler that handles requests like that?" Well, it's not the only one. Deadline/CFQ/BFQ will all sort requests. But the difference between them, in my experience, is usually negligible for real-world tests.

2.) FIFO: Ok, so no-op stands for "no operation". Essentially that means handle requests in order, don't sort them, don't merge them, don't do anything except handle the next request in line. In reality, it actually does some sorting (sorts dispatches, and some requests i think). FIFO is a true "no-op" scheduler. Doesn't do anything, strictly FCFS.
* e.g. We could have 3 requests in the queue. the first one could be very small, second one could be astronomically large, third one can be extremely small. Some schedulers may say, lets do #3 before #2 because it is right next to where we're at and it's very short. Some schedulers may say, lets combine #3 and #2 to make it 1 large request. Fifo doesn't do any of that, it goes in order. Literally first in , first out.

3.) No-op: No-op already exists in the kernel obviously, now it does a bit more stuff. Like I said above, no-op isn't entirely no-op. I have a patch from AC that makes no-op do full merging and sorting. Meaning, it actually will merge some requests if applicable and sort them based on things like priority, size, distance, etc. Other change to no-op is that dispatches are all back-inserted. Meaning added to the back of a stack. Normally no-op sorts dispatches.

Q: What is the zen I/O scheduler?
A: Well, the question that was asked above led me to an analysis of V(R ), deadline, and some others. I already knew, but realized "this is the main feature of V®, but wait it has no benefit to us smartphone users." So I thought about adjusting the way V(R ) handled requests and how it dispatched them (I chose V(R ) because i'd rather not tinker with a scheduler thats official and widely supported). Then I was looking over it, and realized I might as well just write a new one I don't need any of this stuff. So I came up with something awfully similar to SIO, although its a bit simpler than SIO (closer to no-op) and works just slightly different.
- It's an FCFS (First come, first serve) based algorithm. It's not strictly FIFO. It does not do any sorting. It uses deadlines for fairness, and treats synchronous requests with priority over asynchronous ones. Other than that, pretty much the same as no-op.

Edited by bbedward, 02 November 2012 - 10:16 AM.


#3 Purian23 (OP)

Purian23

    Follow the Android

  • Members
  • 312 posts

Posted 29 October 2012 - 02:23 PM

Reserved

#4 msrfx

msrfx

    Android Lover

  • 177 posts

Posted 29 October 2012 - 02:29 PM

Reserved

Sent from my SCH-I535 using RootzWiki
Founder/Developer, Android Developer Alliance
Device(s): d2vzw, toro, grouper, mecha

#5 Mikey22

Mikey22

    Member

  • Members
  • 90 posts

Posted 29 October 2012 - 02:46 PM

Sounds awesome! I hope this release is paired with another ;)

#6 letsplaay

letsplaay

    Member

  • Members
  • 64 posts

Posted 29 October 2012 - 02:52 PM

Ah, so here it is! Congratulations on your kernel release.
potato 1850mAh

#7 serx7

serx7

    CrackFlasha

  • Site Contributor
  • 973 posts

Posted 29 October 2012 - 03:01 PM

Looks good guys. Will give it a run!

#8 rebretz000

rebretz000

    Super User

  • Members
  • 359 posts

Posted 29 October 2012 - 03:20 PM

Just flashed. Looks good. Very smooth. Hope battery life is good.

Sent from my Galaxy Nexus using Tapatalk 2

#9 vwpiper

vwpiper

    Member

  • Members
  • 72 posts

Posted 29 October 2012 - 03:28 PM

Looking forward to giving this a try.

Sent from my Galaxy Nexus using Tapatalk 2

√wþiþ3Я



Galaxy Nexus LTE
Nexus 7 (16gb)
DInc (retired)

#10 viper689

viper689

    Android Lover

  • Members
  • 238 posts

Posted 29 October 2012 - 03:30 PM

I really need my replacement GNex to get here...

Tap'd from my Nexus 7