yashsingh1/xdaforums huggingface dataset:
[Nexus 6  Original Android Development] cameljockey1:
It started happening with Zen15. Before Zen15 it was great. I used the elementx app to set my things mainly default stuff. I dont mess with undervolting at all, dont like to do that. I just do the overclock a little bit to 2.8 but in the app but i set it to default 2.6. And before zen15 the dt2w and all the other wake features worked flawless for me. Now it takes a little bit for the dt2w. I cleared the app settings from the elementx app and flashed the zen16 kernel again and then it was good. What do you think?
[Nexus 6  Original Android Development] bbedward:
It will work with any ROM if you use the AnyKernel zip.

Maybe a bad flash or some corrupt cache or bad ex settings. Nothing really changed from 15 to 16 to fix such issues :)
[Nexus 6  Original Android Development] Vismis:
Great kernel so far using it with euphoria. Really snappy will let you guys know how much screen on time i get and overall Battery
[Nexus 6  Original Android Development] wrongway213:
Good to know - I have not used leanKernel recently (last two weeks maybe), I just know it was an issue in other kernels in the past and wasn't in lean. I can confirm it's a nonissue in Hydra Kernel still right now though, as I do run that kernel on a regular basis and use haptic DT2W configured in Synapse. To note, Synapse provides an option in certain kernels to set and control DT2W/whatever wake gesture of your choice that is available in your kernel from an init.d script which seems to me to be the most reliable method of wake gesture implementation I've seen on this phone. Stock DT2W is not as responsive as haptic, and wake issues/settings not sticking/etc. are problems with haptic DT2W and other wake gestures that this implementation seem to stop entirely. I don't know if this is something possible for something like AnyKernel to control or if only Synapse can do this, but I figure it cannot hurt to mention it.
[Nexus 6  Original Android Development] dany20mh:
It only works if you use anykernel as the developer said that too.

BlissPOP using the new cm12.1 ramdisk and that makes most of the kernel not compatible with it for now.

But get the anykernel file and you good to go.
[Nexus 6  Original Android Development] VECTUS:
I can confirm v16 runs smooth on NexZen v03! Great work as usual!
[Nexus 6  Original Android Development] djcsurf:
Installed anykernel version zen 16 on AICP and it installs and works fine. Very snappy but too early to comment on battery. So far a happy chappy. Cheers
[Nexus 6  Original Android Development] tatoniss:
So is faux sound on by default? Not the biggest fan.
[Nexus 6  Original Android Development] bbedward:
No it doesn't do anything by default
[Nexus 6  Original Android Development] Xileforce:
Hey, I was just wondering what your thoughts were on the whole dual core minimum and hotplugging, quadcore all the time with no hotplugging or letting it ramp all the way down to 1 core debate. Ik mpdecision is now quad core all the time. Do you think this is a good thing or a bad thing? Ive been going back and forth but I figured maybe being a software engineer and stuff you may have some insight.
[Nexus 6  Original Android Development] cameljockey1:
Yes same here. I think it interfere with the stock settings. You can have one or the other equalizer. I've tried it and the cyanogen music mod works a lot better than faux and when I receive calls the volume was to low from other kernels I've tried with faux. Just my opinion.
[Nexus 6  Original Android Development] hellsgod:
I'm not [MENTION=2632235]bbedward[/MENTION] but me and my tester are running the quadcore all the time setup since more than a week. Just because the cores aren't kicked out, doesn't mean they can't enter an idle state and save power, even if they're online. With bfs you will also achieve a better scaling, so not all cores are kicked out of idle that much like cfs does.

hells
[Nexus 6  Original Android Development] wrongway213:
What an excellent question.. I have formed my own opinion already based on developers who have given their input and testing their respective kernels, but if there is anyone who could change my mind at this point it would be a software engineer who also happens to make some awesome kernels.. I can't wait to see his response.

I can't speak for AudioFX, but FauxSound and Viper4Android play quite nicely together, so it's not incompatible with equalizers outright - again, no experience with AudioFX but I use FauxSound and Viper4Android on all ROMs that I run at all times, and I have confirmed that FauxSound in fact does make a HUGE difference with V4A enabled, so they're not canceling one another out or anything.

---------- Post added at 04:01 PM ---------- Previous post was at 03:59 PM ----------

So much excitement :D
[Nexus 6  Original Android Development] bbedward:
The new stock behavior is all cores on all the time until like 15% battery while the device is ACTIVE. When going to sleep it still shuts down the cores.

The thing is from 5.0 -> 5.1 we actually see an increase in screen on time and performance while the device is active. Not a regression you would expect from not hot plugging (Before it was pretty rare to keep all 4 cores on).

I can't say exactly why qualcomm/motorola/google made the decision to change this, but I can speculate on the reason why battery life didn't regress among other things.

With respect to CFS (and BFS but in a different capacity):

When a CPU goes offline - it may and probably has tasks/processes in it's runqueue (RQ). Obviously when the CPU goes offline we can't ignore these tasks. Instead, we have to migrate them to another CPUs runqueue (obviously one that is online). Not only that, but also distribute them through some balancing algorithm to all the CPUs that are online. (Like, 6000 lines worth of balancing algorithm that doesn't exist in BFS - the balancing algorithm other kernels with the stock scheduler are trying to patch up to be "power-aware" or more aware of idle CPUs)

So the CPU that went offline had the overhead of migrating all of its "waiters" to the other online CPUs. So we are removing the power that an extra CPU is drawing - however the total CPU load is staying the exact same - and the load of the other online CPUs is increasing (which would see a frequency bump for those CPUs, which means they are individually drawing more power)

I'm guessing the overhead from the migrations and frequency boosting levels ends up leveling out so there is in fact no benefit from the active hotplug.

I speculate that the reason google is now throttling at 40% battery is partly in reason to the lack of active hotplugging. Whether it's a crummy cheap power supply that degrades too much to supply enough current as it discharges (likely) or if it's actually to save battery power.

I'm assuming the reason we have thermal driver doing hacky battery throttling to begin with is because of the cheapo power supply, rather than gaining a few extra minutes battery life.

BTW

The entire migration overhead caused from hot plugging is much different on BFS. We don't have to migrate entire runqueues since all the CPUs share the same runqueue. The overhead in BFS when removing a CPU is significantly less than on CFS.

BFS only really has to deal with active tasks on a CPU, as well as any "sticky" tasks that are preferring to stay on a specific CPU. It does not have to deal with an entire runqueue of tasks that are waiting for CPU time.
[Nexus 6  Original Android Development] bbedward:
It 100% does not interfere with anything stock.

All it does is add basic gain increment/decrements to the stock values. By default there's none.

Whatever cyanogen is doing shouldn't conflict with it either as long as you are not using it (fauxsound), because their changes would be entirely userspace-driven.
[Nexus 6  Original Android Development] Xileforce:
As esome man thanks for the explanation. I had been using 4 cores all the time for at least a month before 5.1 came out mostly for the reasons of more cores at lower frequencies and because of the power loss when hotplugging. The only thing that I thought could be a negative was with touch boost. Because its boosting 4 cores to 1.5ghz instead of 1,2, or 3 for example.
[Nexus 6  Original Android Development] bbedward:
Yea the touch boost is a debatable thing to mess with. Personally I'd prefer to keep any touch lag down to a minimum. I don't want to see any lag when reading and scrolling (or something like that) and I'm sure others feel the same way. With the turbo charger 5 minutes of charge time probably more than makes up for the overall battery drain of the 3 second touch boost anyway.

But I definitely will confidently make the statement active hotplugging on BFS is better than CFS. Because we don't migrate an entire runqueue and balance it to the other CPUs every time a CPU comes offline/online (which happened pretty often before)

Overall really any negatives of BFS aren't even worth discussing. They all relate to questioning the scalability (which isn't intended by it's design anyway). It was previously thought lock contention in a shared RQ was the reason BFS couldn't scale to 16+ CPUs. But it turns out that may not even be the case. Regardless we won't have to worry about scalability concerns on android for quite awhile.
[Nexus 6  Original Android Development] hellsgod:
I used 1s touch boost in the past, now I'm only using 40ms with francos conservative. Its smoother than my tuned interactive with 1s touch boost in the past. No noticeable touch lag :)

hells
[Nexus 6  Original Android Development] branedamig:
What is this stock/Google DT2W of which you speak?

Sent by the 6th power to the Nexus on XDA app
[Nexus 6  Original Android Development] wrongway213:
Google left the code in for DT2W to work on the Shamu, it's just disabled - kinda like LED charging light. "Stock/Google" DT2W implementation varies from the wake gesture implementation from flar2 that has been adopted by most other kernels in that it is less reliable in waking the phone with two taps, implemented in a different way altogether, and is accompanied with haptic vibration generally, hence "haptic" DT2W as a term. Hope that clears things up for you.
[Nexus 6  Original Android Development] mjohnson4580:
how do i enable faux sound with this kernel? i like using init.d scripts and wanted to make one for faux sound. But i cant seem to find the location
[Nexus 6  Original Android Development] Xileforce:
The tunables should be in /sys/kernel/sound_control_3
[Nexus 6  Original Android Development] oak:
Zen 16 is blazing fast on latest CM 12.1 beta - as usual.
[Nexus 6  Original Android Development] mjohnson4580:
Do you use faux sound? If so what do you set your to? Trying to get a feel for it.
[Nexus 6  Original Android Development] Xileforce:
I don't use it currently. So I honestly have no idea xD I'll have to give it a try :P
[Nexus 6  Original Android Development] wrongway213:
I set everything speaker/headphone related to 6 and leave microphone stuff alone and I love it.
[Nexus 6  Original Android Development] branedamig:
Terminal Emulator

Is it possible to tweak this kernel with TE? I'm not a huge fan of kernel manager apps and prefer doing so through TE. If so, what is the command to access Zen in TE? Thanks!
[Nexus 6  Original Android Development] flyinj54:
Thanks for the info on throttling. Adjusted mine and were almost at 40% see how it goes!

Not sure why but it doesn't seem to fix this throttling. I adjusted 2.2ghz to 95% and it still throttling at 40% at 2.2

Edit: it works! For some reason root explorer didn't save the first time even though I clicked to save and exit lol. Working like a champ thank you so much!
[Nexus 6  Original Android Development] purian23:
Awesome glad to hear it worked!
[Nexus 6  Original Android Development] toprock23:
I haven't heard the term BFS and zen kernel since OG Evo days. Thanks for contributing.
[Nexus 6  Original Android Development] nitronet:
What is the best app to use to control the features of this kernel?
[Nexus 6  Original Android Development] bbedward:
This recommendation is out of my domain. I encourage you to try many and choose your favorite. This kernel should present no compatibility issues with any of them.

BTW,

I encourage you to ask [MENTION=3292224]franciscofranco[/MENTION] [MENTION=4684315]flar2[/MENTION] [MENTION=4141999]bigeyes0x0[/MENTION] - and the guys who maintain the other applications - to consider adding rr_interval support to their apps if they get the time. It's pretty much the only tunable BFS has (/proc/sys/kernel/rr_interval) and can range from 1 to 1000.

I may be the only one using bfs at the moment (hopefully some others will fork it) , but maybe it's simple enough for them to support ;) . And like I said, it's pretty much the lone tunable BFS has by design.

The mysterious Zen app is still a victim of mine and mwielgosz' time (and a victim of age which I have slowly been rectifying) , but I plan to get the source up and a decent product out relatively soon.
[Nexus 6  Original Android Development] resynx:
This seems interesting. Giving the kernel a go now! Thanks :)
[Nexus 6  Original Android Development] tatoniss:
Sorry for all the questions but could you explain some what RR_interval is and how it works?
[Nexus 6  Original Android Development] bbedward:
Short for round robin interval.

Essentially bfs is an earliest virtual deadline first scheduler. (http://en.m.wikipedia.org/wiki/Earliest_deadline_first_scheduling) it doesn't exactly fit that mold but that's a simple way to think about it. It gets a little more complicated getting into how it works with multi cpus and such. Also consider different tasks get different priorities and are handled differently (NORMAL, ISO, FIFO, and so on)

On a basic level, tasks are put in a queue with a virtual deadline (get task X done by this time, task Y done by this time). It's called virtual because the deadline isn't guaranteed (there may be misses)

But when one of these tasks completes, finishes, runs out of time, etc., the scheduler searches the queue for the next task with the closest/shortest deadline and handles that. So on and so forth.

BFS' big tunable is the round robin interval, which is directly related to the virtual deadlines in bfs. It defines (in ms), which is the maximum amount of time two tasks can run for or the max time they are delayed for.

Basically the goal is to be "fair". If you have tasks that will take 10ms to complete they will take two or more cycles if rr interval is less than 10. Or they will take longer to complete.

The effect you would notice with a lower rr interval Is less latency, with a higher one you'd get more thoroughput (up to a certain point, if you let big tasks run for a significant amount of time (like 500ms RR interval). You may not see the gains in thoroughput)

On the desktop and especially mobile devices, I suspect latency is a bit more important than higher thoroughput. But you could adjust it, see what works best for your case and go with it.

You can see more detail here: http://ck.wikia.com/wiki/BFS

The other thing bfs let's you tune is iso_cpu. Which is basically how long to let a task run as sched_iso, or up to what point. (sched_iso is a realtime policy), some media tasks may automatically run as sched_iso. I don't think we're as concerned with changing that though.
[Nexus 6  Original Android Development] neobuddy89:
Why not SCHED_DEADLINE itself from the upstream instead of BFS? Just curious.
[Nexus 6  Original Android Development] tatoniss:
[MENTION=2632235]bbedward[/MENTION] Once again thanks for the explanation! I'm really liking the different approach this kernel is taking.
[Nexus 6  Original Android Development] bbedward:
Things to note

1) Because they both use deadlines does not make them the same scheduler. Dozens of schedulers on Linux alone have used similar deadline mechanisms for years.

2) BFS isn't an EDF scheduler, it's much closer to an EEVDF (similar, but less real-timey) design. I referenced EDF as it's a simpler way to describe the workings of rr_interval

3) EDF is much more strictly focused on real time scheduling, while ck has focused more optimization based on user perception (see: rr_interval)

4) The way bfs is designed is only partially relevant to the goals it attempts to achieve.

Some matters, such as porting the sched_deadline policy and mechanism back to 3.10 - are entirely unrelated to my decision to use BFS. Aside from that, this port in itself back ports several bfs (up to 461 minus smt nice because it's irrelevant on arm) and few upstream updates related to the cpu scheduler.

I could go into more detail if you wish, but if you're interested I suggest you check the bfs doc and Ck's blog
[Nexus 6  Original Android Development] purian23:
Post #2 has been updated with some more general faqs about ZenKernel specific's and bbedward's 40-20% battery throttle control.

Thanks guys/gals

Purian23
[Nexus 6  Original Android Development] flyinj54:
Kernel running well. I swapped over to on demand and it feels even smoother. How's everyone's experience going with the kernel? Anybody do any tweaking that you could recommend. Just trying to livin it up in here lol.
[Nexus 6  Original Android Development] bbedward:
3.10-zen3 "Walking Tall" (Android 5.1 Only)

I suggest wiping cache before flashing

Changes:

Fixed issue with KCAL app caused by zen2 ramdisk changes

Reverted culprits of random OOPs' and PANIC issues

Added vibration sysfs interface (same one as leanKernel)

Support for frequency mitigation (from imoseyon). If you just want to change the battery throttling I suggest you see post #2 instead though

1 misc. change

Internal changes that make me feel good inside
[Nexus 6  Original Android Development] bbedward:
I built it, they just haven't come yet. :crying:
[Nexus 6  Original Android Development] resynx:
Really liking the kernel so far! Thanks for the update :)
[Nexus 6  Original Android Development] kenbrownstone:
I came ...changing pants as we speak.... :)
[Nexus 6  Original Android Development] pantmunu:
Smooth and battery friendly and sexy of course.

Brightness set around 30% no tweaks .. Use flars app for color calibration and for wake gestures.

I keep switching between WiFi and data coz WiFi at work sucks.

Thank you sir for this awesomeness . loving it.

BTW this is on zen v2. Will be flashing v3 and will run a couple of cycles.
[Nexus 6  Original Android Development] pantmunu:
One thing I have noticed is the split screen bug is back. Over on [MENTION=4684315]flar2[/MENTION] ex thread he did some work on the elementalx governors for less abrupt frequency transitions which actually helped minimise the split screen bug. Is there anyway possible u could implement that. Thanks.
[Nexus 6  Original Android Development] HaiKaiDo:
I cant help but ask lol.
[Nexus 6  Original Android Development] adame09:
Anyone running Tamaseks CM12.1???

For some reason when flashing the anykernel2 zip it flashes fine but when I go to about phone it still says I'm running the cm kernel.
[Nexus 6  Original Android Development] oak:
Same here with albinoman beta. I. Am running Zen though, so all is well.

Edit: I'm an idiot. I just re-flashed and forgot to flash Zen.
[Nexus 6  Original Android Development] adame09:
How did you get it to flash?
[Nexus 6  Original Android Development] oak:
See my edited post. I was mistaken.
[Nexus 6  Original Android Development] bbedward:
I'm confused is the AnyKernel working or not :p
[Nexus 6  Original Android Development] bbedward:
Nah there's nothing like the lkconfig script if that's what you mean.

Everything would have to be done the old fashioned way like echo 3> /proc/sys/rr_interval.

If you want settings to stick without using a kernel app you could always make an init script.
[Nexus 6  Original Android Development] adame09:
Its not working for me...
[Nexus 6  Original Android Development] bbedward:
What version of the nexus 6 do you have?
[Nexus 6  Original Android Development] oak:
Working perfectly for me.
[Nexus 6  Original Android Development] adame09:
I think it only has to do with Tamasek's CM12.1 build. I'm not sure what your question is. I'm downloading blisspop CM12.1 and going to see if it works on there.
[Nexus 6  Original Android Development] bbedward:
Try this one:

https://www.dropbox.com/s/4b74wjcatvsasj7/v3.10-zen16_anykernel.zip?dl=0

It does a device check for "shamu" and won't flash it if it finds something different. If you're on a specific sprint, verizon, or other version maybe it shows something different than shamu. I thought they were all called shamu though.

The above zip disables the device check though.
[Nexus 6  Original Android Development] adame09:
Trying now I'm on the T-Mobile variant 32gb

---------- Post added at 07:09 PM ---------- Previous post was at 07:01 PM ----------

That one worked!!! Do you need a kernel log? How do I attach one?

---------- Post added at 07:10 PM ---------- Previous post was at 07:09 PM ----------
[Nexus 6  Original Android Development] redskinsfan:
I'm on ATT version and Anykernel 16 flashed fine on the latest Temasek build (dirty flashed it over Anykernel 15).
[Nexus 6  Original Android Development] bbedward:
No it's ok I will just update the anykernel zips in the future.

Just enjoy zen :p
[Nexus 6  Original Android Development] mimsiroll:
Phone's a bit hot again..

Cant hear the person im talking in hangouts and facebook

Already changed from chroma to euphoria
[Nexus 6  Original Android Development] omvir:
What's it called when the screen state randomly freezes and after about 20 seconds it reboots? Sod?
[Nexus 6  Original Android Development] ozg33k:
Quick question, what would be the simplest way to set different default kernel settings when implementing this kernel on my ROM? I just want to set doubletap to wake, color/screen settings, and GPU to 600. Possibly thermal settings but that's not a big deal really since my phone always runs super cool with your kernel. Thanks bud
[Nexus 6  Original Android Development] tundra35:
Running zen16 on terminus rom buttery smooth all over!
[Nexus 6  Original Android Development] DontPushButtons:
Naw, SOD is a sleep of death. When your phone hits deep sleep but doesn't wake back up when you power it on. Yours sounds like a kernel panic, but you'll need to pull the last Kmsg/logcat for him to tell you for sure.
[Nexus 6  Original Android Development] eggydrums:
Is it possible to completely disable Faux Sound?
[Nexus 6  Original Android Development] purian23:
It's not enabled by default. There might be other solutions than Faux Sound in the future :)
[Nexus 6  Original Android Development] wrongway213:
It's not enabled by default - just leave it alone and it is never enabled.
[Nexus 6  Original Android Development] bbedward:
I think its time to clean flash ROM ;)

You could check out kernel auditor as a free app that should do all of that.
[Nexus 6  Original Android Development] bbedward:
Man I switched roms today and booted up into the OS before I got a chance to install Zen.

Man has using zen for so long made me very sensitive to the browser scroll lag and google now launcher lag :cowboy: No doubt in my mind anymore if zen has made an improvement or not.
[Nexus 6  Original Android Development] benrees21:
Loving Zen 16!!! Got my faux sound as well!! Thank you for adding that, it makes such a difference for me to be able to hear my music nice and loud! It is not enabled by default people, you have to use the faux sound app to enable it. I set mine to 6 and it's brilliant! So glad I found this kernel, it's a real gem!
[Nexus 6  Original Android Development] Xileforce:
Faux sound can also be enabled through synapse and kernel aduitor for those who don't want to pay for another kernel app. ;)
[Nexus 6  Original Android Development] DutchDogg54:
Really? Can you elaborate as to how to do it with Synapse?
[Nexus 6  Original Android Development] wrongway213:
Pretty sure it can be enabled through sysfs nodes for those who hate kernel apps, and also can be controlled through the Donate version of Trickster for those who have already purchased that app.