yashsingh1/xdaforums huggingface dataset:
[Nexus 6  Original Android Development] bbedward:
On a side note I think it's fully understandable to have skepticism to merge such a change like BFS. It is large and potentially a riskay move. Changing the entire CPU process is a pretty damn big deal (and -ck only supports BFS in a limited capacity due to not being a full-time developer, mostly minor stuff and syncing with new linux releases)

If you want another dev to consider adding it to their kernel or ROM please PM them or talk privately instead of harassing them publicly :( . And make sure you give them some good references and background about anything you are asking them to look into.

If they have any questions for me I will happily answer them, and point them in the right direction of what they need if they want to merge BFS or anything else from my tree. (Or any general help I can provide I always answer PMs and such when I see them)

I don't want to see good people get harassed about something like that :p If you want to sway an opinion do it privately.

I think my post was a very good explanation on why BFS may be a better solution than CFS. I'm sure there are many in the other direction.

Thanks,

B
[Nexus 6  Original Android Development] jamieg71:
I heard a rumor that bbedward was going to add the option for setting selinux parameter...
[Nexus 6  Original Android Development] elkay:
Sooo... with my current configuration, which is best (or required) to use right now?
[Nexus 6  Original Android Development] jamieg71:
Meant to quote this not thank it, lol. That would be a question for the dev. I'm interested in some changes regarding selinux myself.
[Nexus 6  Original Android Development] bbedward:
Kernel+ramdisk is ok :)

And you won't need to set selinux to permissive because the ramdisk should have necessary changes for viper4a ;)

Yes, but a much bigger scale. I have a nice app up my sleeve that I intend to releasing fully under the GPL (open source and copyleft). Very genius framework IMO.

Currently though, all work on my senior design app, which I present tomorrow :( (Attached a little screen grab)

The hurdle with the zen app is making it pretty and polished :) I started working on it 3 years ago on and off (mostly off), with [MENTION=3197274]mwielgosz[/MENTION] . And just recently started to convert it up to material design.
[Nexus 6  Original Android Development] elkay:
Awesome, I'll give it a whirl! Thanks!
[Nexus 6  Original Android Development] Xileforce:
Pretty sure when I was building from your source before I added stuff GCC5 was working without patches aside from the compiler-gcc5.h patch. I've always thought linaro was smoothest as well as all my testers, but they won't have gcc5 based source out for another month or so, so we are testing ubertc which is gcc5 with linaro and upstream patches. Testers thought gcc5 despite not being linaro was still faster than 4.9 linaro. No real solid evidence though lol.
[Nexus 6  Original Android Development] elkay:
Do I still need to make the AwesomePlayer adjustment in Developer Options with this kernel if I'm using V4A? Or is that no longer required, either?
[Nexus 6  Original Android Development] bbedward:
No idea about that I never used V4A :p

But the AwesomePlayer/NuPlayer thing is all unrelated to the kernel so if you had to before you probably still have to ;)
[Nexus 6  Original Android Development] mflow:
nahh 4:30 is much better than the stock (usual stock is 3:25) , mostly i use adaptive brightness, no active display, and default theme.

might need to try a dark theme for now.
[Nexus 6  Original Android Development] Xileforce:
I think u misread his post :P he said with stock settings on a stock ROM his battery was around 4:30 which was an improvement over stock kernel and ROM ;)
[Nexus 6  Original Android Development] bbedward:
Yep have to consider all the factors when pushing batteries. Some guys are really hard pushers with better battery stats, disabling wake locks. Also the dark themes, usage patterns, greenifys, undervolting. Many factors for those few who push 6+ hours :)

I think I've made a significant improvement over stock though and I haven't made any sacrifices or set any restrictions on CPU frequency scaling or otherwise. In fact most people claim better performance on zen and better battery on zen than stock (potentially greater stability too). And the user has all the freedom they want to push things as far as possible (whether perf. related or battery related). I don't believe the placebo effect exists on Zen.

The goal of zen as outlined in OP: Make improvements without sacrifices.

Not everybody's on board, but for those who are they can enjoy the ride because I'm here to stay :laugh:

I don't care to be quiet, or isolated. I'm very open in helping everybody and saying what I disagree with or disprove of :)
[Nexus 6  Original Android Development] Xileforce:
Vrq vrq vrq! Lol can't wait for that stuff xD I was so excited until I randomly rebooted lol. I just added some interesting commits from the spring ROM kernel for the network driver. They r on my main repo, they sounded good to me but maybe you know more :P y u no reply to my pm, I gonna cry :(
[Nexus 6  Original Android Development] bbedward:
I thought I did reply :eek:

You could probably merge in the initial VRQ patches. I just don't know if there's a lot of benefit until you get to the good crazy stuff like lockless idle scheduling :)
[Nexus 6  Original Android Development] Xileforce:
No reply here :( and I liked the crazy stuff! It was almost worth the occasional random reboot.... And the constant errors and warning in the log lol maybe I'll merge the initial stuff in to hold me over...

Edit: BTW imoseyon just posted the source for his ramdisk fixes for cm12.1 if ur interested.
[Nexus 6  Original Android Development] niko2931:
It appears the cpu goes up to 1.4 ghz, and stays there for 3 seconds, wouldn't it be more battery efficient to go faster to idle like f Franco does it?

Just asking :laugh:
[Nexus 6  Original Android Development] Xileforce:
Franco's lasts for 0.04s as I recall lol. The problem with this is you may notice lag when flinging stuff because the CPU is pretty much instantly deboosted after your finger leaves the screen so if you fling down your status bar for instance as soon as you let off it may drop to 300mhz for a second before the CPU governor raises it to the correct speed thus causing a stutter. I do however agree 3 seconds is a bit excessive, though it does ensure butter :P hard to say how much battery is saved by reducing it.
[Nexus 6  Original Android Development] jiv101:
Don't you guys ever sleep!!
[Nexus 6  Original Android Development] Xileforce:
If we slept how could we make kernels? You can sleep when you're dead.
[Nexus 6  Original Android Development] Lento10:
Found the answer, Yes, I can used 17 on 5.1.1 ROM,

Thanks [MENTION=4517211]Xileforce[/MENTION]

Could I used zen17 on 5.1.1 ROM?
[Nexus 6  Original Android Development] mimsiroll:
Zen 17 doing good in 5.1.1 but ith small stutters

On chroma i mean 5.1.1 without bootloader and radio
[Nexus 6  Original Android Development] niko2931:
I actually didn't notice any stutter on Franco, maybe I was just lucky :silly:
[Nexus 6  Original Android Development] hellsgod:
I also don't notice stutters with his conservative.

hells
[Nexus 6  Original Android Development] Xileforce:
Nope not saying there will be stutters, just saying that there's a greater potential for stutters because its relying significantly more on the governor to up its game and respond to the load rather than relying on boost. And the cool parr is you can adjust it with Franco's :) the whole point of CPU boost is to respond to sudden increases in CPU load instantly while the governor can catch up.
[Nexus 6  Original Android Development] niko2931:
I personally really like Franco's conservative governor! A middle thing between Zen kernel and Franco's kernel would be almost perfection, at least that's what I think :good:

Or more that's what I hope ;)
[Nexus 6  Original Android Development] bbedward:
Zen has no stutters I think :) (certainly less than stock)

OK stock or any kernel that isn't using BFS I don't really see stutters except in a few specific places.

Namely, google now from home launcher swipe. Clear all recents. Any big-data scrolling (chrome or other).

I state with 100% certainty that BFS aids these issues. There was lots of consistent testing before (and after) zen1 was released.

Of course, try to not use any kernel on chroma if it still gives issues :)
[Nexus 6  Original Android Development] bbedward:
Very much an edge case thing doing anything with touch boost. Conservative may suit some scaling needs better but any changes related to touchboost are trivial.

Are the edges of a touch event (about 2 seconds) really making a big difference by preventing scaling sooner. Probably not, maybe a 1-3% difference in a full cycle at best. Not to mention maybe in those 2 seconds after a touch event you're doing something that prevents scaling down anyway.

The governor settings of course can make a difference but with a sacrifice. Whether the difference is noticeable or not probably varies. There's a sacrifice regardless but I'm sure it can be lessened to the edge of the sacrifice not being noticed.
[Nexus 6  Original Android Development] Xileforce:
Well put, and I dare say Franco's conservative is actually more aggressive than interactive lol once he adds the no scale up if load is below 5% like he had for interactive on 5.0 it will be better.
[Nexus 6  Original Android Development] bbedward:
Well. I'm not saying it doesn't make a difference any time you are less frequency you are less voltage which is better. But the edges of a touch boost make up a very small amount of total CPU time. I don't think people are adding much screen on time by cutting it down.

Also, CPU load is pretty much never < 10% while system is awake.:angel: The only time you see barely any (<= 5%) CPU load is when the system is in deep sleep. And at that point it isn't scaling up anyway (very little)

Lots of edge cases that aren't really affecting the overall power consumption by any significant factor.
[Nexus 6  Original Android Development] Xileforce:
Yup probably is helpful in specific uses like listening to music or watching videos. I notice if I run his interactive while watching a video it will lock at min frequency for a significant amount of the time.
[Nexus 6  Original Android Development] bbedward:
Yea I have the patch for the <= 5% in z17. But I literally never see anything less than 5% load even while doing virtually nothing.
[Nexus 6  Original Android Development] Xileforce:
Ur phone needs to take a chill pill. Mine pretty much sits at 0% whenever I use system monitor and stop touching the screen. Maybe my phone has mastered the zen state. Lol though likely doing anything but watching that dam graph would make it bump up xD
[Nexus 6  Original Android Development] bbedward:
Maybe I had some I/o stuff going on in the background last time I looked :)
[Nexus 6  Original Android Development] Xileforce:
Just thought of this. Maybe it has something to do with this patch? I don't pretend to understand it, just maybe that reduces load average somehow?

https://github.com/franciscofranco/Shamu/commit/09ad289ad55239d07e5f3e3f77cb9e97fd6c3ad5
[Nexus 6  Original Android Development] bbedward:
I just pinged up a zen CFS build for some quick tests.

First observation is my google now lag instantly returned. (Micro stutter swiping left). Also with many widgets there's a general stutter to go to additional home screens.

Second observation my clear all regents literally didn't do anything for 3 seconds. Stayed, hung, then moved away. When they were blank it was an additional second to get to home screen.

I never ran a custom ROM with that pre-BFS but it is very real the difference there.
[Nexus 6  Original Android Development] Xileforce:
Wow that's a great test for all the naysayers!
[Nexus 6  Original Android Development] bbedward:
Not scientific :p but it's consistent with what others have said.
[Nexus 6  Original Android Development] Xileforce:
Science! Do you know anything about power efficient workqueues? I saw hydra has them. I think it tries to stack processes onto core 0. Do you think that would be beneficial for power?
[Nexus 6  Original Android Development] bbedward:
Yes. It may be beneficial for power but at a performance cost probably.

I think it makes a much bigger difference on a big.LITTLE (MCPM) systems and not so much on ours. But you can try it and see what happens :p
[Nexus 6  Original Android Development] mjohnson4580:
what does cpu_boost do? I googled it but no real answer. Can also can i disable it if i like?
[Nexus 6  Original Android Development] Xileforce:
Why I gotta be the Guinea pig :(
[Nexus 6  Original Android Development] Megaflop666:
Because you're cute and fuzzy.
[Nexus 6  Original Android Development] adame09:
Look what popped up in the chroma thread...
[Nexus 6  Original Android Development] bbedward:
It boosts CPUs briefly based on when tasks migration across different CPUs.

Probably doing nothing on BFS because I didn't add the migration notifiers for it, because it uses cgroups which BFS doesn't have anyway :)

No tears, only dreams now.

I won't add it anyway because looks like it's only enabled as a boot param or as a default at compile time :)

Too much for the average user to disable/enable themselves probably.
[Nexus 6  Original Android Development] Xileforce:
Ik its in synapse as a checkbox to enable/disable. Not sure if it requires a reboot though. Maybe I'll add it disabled by default. Think imma try and get LTO working for the 10th time......
[Nexus 6  Original Android Development] iainaaldrich:
Best kernel I've tried and I've tried almost all of them. Running this on Chroma. Especially noticed how fast it is swiping away recent vs other kernels.
[Nexus 6  Original Android Development] bbedward:
Forgot to tell you guys that I'm retiring from software because I am now in the energy drink market :p

I built myself a zen CFS test last night/this morning and noticed this 3 second difference as well :laugh:

I never had the clear recents before I made zen kernel so I never knew how much what people said was exaggerated or what not, but the clear recents thing is by far the most obvious interaction improvement w/ BFS. (Literally 3 second delay, stutter versus instantaneous)
[Nexus 6  Original Android Development] bbedward:
Actually here's a video of the two

BFS

https://www.dropbox.com/s/m755mxtf2q8ef04/BFSClearRecent.mp4?dl=0

CFS

https://www.dropbox.com/s/m3v38sx8ha4dnyv/CFSClearRecent.mp4?dl=0

Same kernel (1 with BFS , 1 with CFS), same settings, same ROM, same 7 or so apps open, music playing on BG on each. CFS gets worse when you get more than 7 recents too :)

I think BFS is quicker in other interactions too, but with the screen record lag introduced it's impossible to grab a difference.

This behavior is also consistently reproducible. As in, reproducible every single time. No matter if you have 1 recent app, 30 recent apps, or whatever you're doing otherwise. With only 1 factor changed, which is the CPU scheduler.

---

Dropbox lowered quality of CFS for some reason. But the main observation is the delay before home screen pops back up.

---

Also I had about 10 people so far ask me to do BFS on 3.4 kernel device or asking why their patch doesn't work.

I can't do this without a 3.4 device in my hand. Sometimes I need to flash it like 10 times in an hour time frame I get to work on it. Relying on constantly sending builds to 3rd parties and getting second hand logs is simply too difficult :p

So if anyone has a spare multi core device, with unlocked boot loader, on a 3.4 kernel (even if partly broken or whatever) and is interested I will happily work out BFS for Linux/arm/android 3.4. I probably need 1-2 weeks. After that I'll happily send it back to you :)
[Nexus 6  Original Android Development] jamieg71:
Hey let's flip that around, how about bring our kernel up to 3.4 instead? That's not too much work right? [emoji57]
[Nexus 6  Original Android Development] bbedward:
I'm just surprised how many people have asked me :p

I have nexus 5 people, nexus 7 people, oppo people, oneplus one people, etc.

Testing and debugging things is just 10x easier and less time consuming with the device in my hand. But nobody cares enough to forfeit one of their devices for a week :laugh: or they aren't able.

Regardless I'm happy to help them if someone interested lets me borrow one.
[Nexus 6  Original Android Development] mflow:
well you did!

===

now trying to undervolt my CPU, hoping for better battery life. -85mV now, and still going good in stability tests.

===

just a suggestion though, can you create a pushbullet channel for the updates?
[Nexus 6  Original Android Development] bbedward:
Whats the best way to do this?

Can I make one ZenKernel one and use it for zen on any device or do I make one specific to each device?
[Nexus 6  Original Android Development] Xileforce:
I would do a zen kernel one and just label the released by which device, that way you pool all of your followers :). Also that video is amazing!
[Nexus 6  Original Android Development] bbedward:
I have no idea why the screen record video is so much higher quality with less frame drops on BFS. I promise I didn't do anything but press record for both :P I didn't notice til after upload.

I will have to look into that a little more. Could be a fluke, but maybe BFS automatically gave the screen record the isochronous (real-time like) policy, which would make the whole CFS/BFS thing a lot more interesting :)
[Nexus 6  Original Android Development] bbedward:
Nope :P looks like just something weird with dropbox.

----

Push bullet

https://www.pushbullet.com/channel?tag=zen

I will figure out how to use it and push z18 up (when I have a z18)

And also someday I will remaster the old logo.
[Nexus 6  Original Android Development] funcrusher:
Kernel is legit - loving it. Thanks. :)
[Nexus 6  Original Android Development] bbedward:
Now we're in trouble. No more fun here :crying:
[Nexus 6  Original Android Development] funcrusher:
zen18 "Funcrusher"

Kind of appropriate actually. Lol
[Nexus 6  Original Android Development] oak:
bbedward, thanks again for this awesome kernel. There is no doubt in my mind that it is the smoothest. Thanks - 7SH2017611134920H
[Nexus 6  Original Android Development] bbedward:
Thanks very much for the support :good:

I just had my senior design presentation today I'll have a beer from you :highfive:
[Nexus 6  Original Android Development] carhauler1969:
Hear very good things about this kernel, but I'm curious if it's compatible with the 5.1.1 ROMs yet?
[Nexus 6  Original Android Development] bbedward:
Yes it is compatible. Anything based on cyanigenmod use the anykernel version though
[Nexus 6  Original Android Development] mflow:
and there is the channel! Thanks Man!
[Nexus 6  Original Android Development] grayskul:
Doesn't boot on AICP. Just tried it twice and no go. Had to use lean kernel.
[Nexus 6  Original Android Development] bbedward:
Use any kernel
[Nexus 6  Original Android Development] grayskul:
Yeah my bad. Didn't realize I downloaded the wrong one lol!
[Nexus 6  Original Android Development] djcsurf:
Loving v17 looking forward to v18 whenever it may be :)
[Nexus 6  Original Android Development] bbedward:
I just have to figure out what I can add to 18 :D
[Nexus 6  Original Android Development] Megaflop666:
A picture of me Easter egg?
[Nexus 6  Original Android Development] bbedward:
Already exists nobody has found it yet :laugh:
[Nexus 6  Original Android Development] BlueHarford:
CfS bwahaha hahaha.
[Nexus 6  Original Android Development] Remoteconcern:
I don't get it. How do I select BFS? Kernel seems to default to CFQ. Is that right? Is BFS replacing that?

Either way, just flashed this kernel and the phone FLIES. Great work.
[Nexus 6  Original Android Development] niko2931:
You cant change this ;)
[Nexus 6  Original Android Development] Xileforce:
BFS is a CPU scheduler, not a IO scheduler. It cannot be changed. CFQ and BFQ are IO Schedulers.
[Nexus 6  Original Android Development] Remoteconcern:
Thanks guys, learnt something.
[Nexus 6  Original Android Development] oak:
For once, I am not itching for an update. I have no idea how you can improve this kernel. It's that good.
[Nexus 6  Original Android Development] Megaflop666:
Just flashed the latest cm12.1 as a secondary ROM on multirom with this kernel. Synapse won't let me adjust the cpu low frequency down, it wants to stick at 1497. It won't let me raise the max GPU frequency at all, keeps it at minimum. Also, I thought you used lkconfig? When I try to run it in terminal it says it doesn't exist.
[Nexus 6  Original Android Development] Circaflex:
holy signature banners batman :eek:

Ignore the min cpu freq being stuck on 1497, that is MPDecision and most apps will show that, use a stats app instead and youll see it goes down to 300mhz
[Nexus 6  Original Android Development] bbedward:
Don't use lkconfig and mp decision is responsible for the min raise :)

Edit:

I mean I don't use lkconfig I'm not telling you not to use it.

You can flash the any kernel version over leankernel and you will get it, but a couple things in lkconfig won't work (like frequency mitigation)
[Nexus 6  Original Android Development] Megaflop666:
Okay. Thanks. I'll give it a shot in a minute.
[Nexus 6  Original Android Development] bbedward:
Yea I think mp decision is raising 1497 as an input boost. The guys who change this move the behavior to the governor (which I probably prefer, maybe for z18 but I would need to disable MP decision by default for it to make sense.)
[Nexus 6  Original Android Development] Megaflop666:
Flashed latest lk and went into a bootloop so I'm going to do a clean install in a little bit. I'm half working on my phone and figuring out what game I feel like playing on my ps4 this evening. :D
[Nexus 6  Original Android Development] bbedward:
What does mp decision even do now that we don't hotplug other than the input boost?

If it hotplugs when suspended I can just write my own kernel driver to do that, and input boost in there too or on the governor possibly.
[Nexus 6  Original Android Development] Xileforce:
I was wondering about this too. Also why does mpdecision raise the min frequency? Shouldnt CPU boost handle all of that? If u stop mpdecision and turn off your screen I would assume if it deep sleeps then its still unplugging the cores? Or can it deep sleep when the core is still on?
[Nexus 6  Original Android Development] bbedward:
I'm guessing mp decision does it because it's a userspace application and that's the easiest way to boost is by raising min_freq.

cpu-boost does handle input boosting but it's irrelevant because it appears mp decision is doing the same thing for longer :p