[Moto G 2015 General] alexheretic:
As a CM13 osprey user I found myself a little confused about the usefulness of custom kernels compared to the kernel bundled with cyanogenmod releases. There are many custom kernels available for the osprey, compatible with CM13. They mainly boast better performance & battery life and usually a lot of other features.

The purpose of this test is to measure the performance benefits and battery life benefits of the most popular custom kernels, if any. I want to find out if I should bother to use them myself, since the bundled kernel comes with the natural advantages of an easier install, better testing by the cyanogenmod devs and is updated, or has the potential to be updated, in line with the nightly releases. Perhaps some others will find the results interesting.

Setup

I'm testing on my 1 year old well used osprey running cyanogenmod 13.0-20160901-NIGHTLY-osprey.

All tests are single runs unless stated otherwise, phone in airplane mode. No special configuration is done to any kernel, so we're looking at their default settings.

Kernels

CM Bundled kernel

Squid r17

AGNi pureMOTO 3.2

FireKernel 5.6

Optimus R14

Shield r4

Explosion Reborn R24

Features

Custom kernels invariably come with many new features, sometimes a dizzying amount of stated improvements. I've highlighted some of the interesting differences that could affect performance, and a count of the bullet point features the kernels advertise.

Only Squid & Explosion (based on Squid) deviate from the linux base version of 3.10.49. All custom kernels except Squid & Shield provide higher max CPU clock states. AGNi pureMOTO, Explosion and FireKernel provide a higher GPU max clock.

FireKernel boasts an impressive 91 feature worth bullet pointing, while AGNi pureMOTO doesn't feel the need to advertise any feature or even a mission objective. Well I'm assuming better performance, battery life and stability is at least a concern of all kernels.

Tests

[IMG="Usage Performance"]http://i.imgbox.com/vDvNekmG.png[/IMG]

PCMark emulates real phone usage, and is the performance test I'm most interested in to indicate general performance.

AGNi pureMOTO, FireKernel and Shield perform noticably worse than the bundled kernel. The other kernels are roughly in-line or a little lower than the bundled kernel, with only Explosion providing a hint of better performance.

It seems the kernels are providing higher max CPU clocks don't appear to be using them by default.

[IMG="Storage Performance"]http://i.imgbox.com/FJ7W033o.png[/IMG]

I didn't expect much difference in internel nand performance, but wanted to check for regressions. No kernels provide real storage i/o performance benefit. AGNi pureMOTO and Optimus have small performance regressions on sequential writes.

[IMG="Graphics Performance"]http://i.imgbox.com/WHCf1H4s.png[/IMG]

With 2D graphics mostly covered by PCMark, I'm simply checking 3D performance with a test provided by PassMark. Running at around 20fps on the bundled kernel, it seemed a good performance to spot any differences.

I was surprised to see poor performance from AGNi pureMOTO, FireKernel & Explosion. The other kernels are in-line with the bundled kernel. Kernel GPU clock differences seem to have no effect, certainly no good one.

[IMG="Processing Performance"]http://i.imgbox.com/eOrx3lui.png[/IMG]

To isolate processing performance I used a blend of multicore tests provided by Vellamo. All custom kernels performed worse than the bundled kernel, although Squid, Optimus and Explosion are very close. It's a disappointing showing from AGNi pureMOTO, FireKernel and Shield. As before higher CPU clock states do not seem to be used.

Looking at the figures I can't help but conclude that no custom kernel provides a worthwhile performance improvement over the bundled cyanogenmod kernel at their default settings. While this is somewhat disappointing, performance stats have little meaning without looking at battery life. This brings me to the most important and time consuming test, do custom kernels improve battery life?

Update: Battery tests completed 6-Sep-2016

[IMG="Battery Life"]http://i.imgbox.com/5j8BMVTZ.png[/IMG]

Finally, after many hours of testing I have the battery test results. I used PCMark's battery test which runs the work usage test continuously until the battery reaches 20%. The test includes lots of emulated real world usage & lots of idle time. It also provides a geometric mean score for the entire run.

From the results we can see all kernels performing roughly similarly, but no custom kernel convincingly surpasses the bundled kernel for performance and battery life. Only Squid actually ends up with better average performance over the run, and at a small battery life cost.

Interestingly on viewing the CPU clock stats I saw the bundled, Squid, Optimus & Shield clocked between 800-1363MHz, whilst AGNi pureMOTO, FireKernel & Explosion clocked between 400-1363Mhz, and made more use of intermediate clock states. However, the lower clocks just haven't translated into battery life increases.

Concluding thoughts

All the kernels have performed decently, and without any stability issues during my testing. But it's the CyanogenMod bundled kernel that has surprised me by being front runner in speed & battery life.

For those of you enjoying unique features offered by custom kernels, you can take heart that the custom kernels aren't that much worse. But for me, considering the natural advantages of using the CyanogenMod's kernel, I'll be switching back to the bundled.