Development [Kernel][09.07.2022][Android 12.1.0]Kirisakura 3.0.17 for Pixel 6/Pro aka "RAVIOLE"

Search This thread

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
5,643
18,730
May update is out. :)

no source update pushed from google yet. I guess it´ll happen in a few hours when I´ll be asleep.
I went ahead and flashed the latest release for stable 12.1.0 without any issues so far.

If you can´t wait, it should be fine to flash based on that short experience.

If you want to be absolutely sure there will be no issues due to incompatible source/firmware, I´ll try to update the kernel with any new potential changes in the source for May as soon as I find time, which will hopefully/probably be tomorrow if everything goes as expected. :)

I wish everybody a great day/evening.
 

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
5,643
18,730
Update to 2.4.0

Hey guys and girls,


Alright here´s the next update and it´s fine to flash on May firmware. As I suspected we already had all the changes for May by merging upstream.
I´ll include the changelog from 2.3.0 as well in this release post, since I think a lot of people flash the kernel on a monthly basis when the security updates drop. So this post pictures the changes going from 2.1.0 to 2.3.0! As I said 2.3.0 was kind of a final rehearsal to make sure everything is good for the May update.
I´ll put a remark behind changes going from 2.3.0 to 2.4.0.
This release is made for stable Android 12.1.0 May firmware. Not QPR Beta or A13 Beta!
Once I find enough time or QPR beta gets updated, I might update the QPR beta release. No plans to support A13 beta.

I also finished up the tables/graphs in regards to different binnings with the respective voltages on different tensor chips thanks to the dmesgs you all provided. I really want to put out a big thanks here to everyone for taking the time and participating. It was really great to see this kind of response.
I´ll provide them in a post in this thread soon.
So with that in mind we´ll get to the next paragraph were I could put those tables to good use.

A few changes from A13 Beta are merged to the kernel so we can enjoy the improvements on A12 ahead of time. Most of them aim to improve the scheduler and task placement.

However the recently dropped A13 Beta source contains a commit that can restrict max-cpufreqs based on PMU (Power monitor unit) reading. I setup this mechanism (lets call it "PMU Limiter") to mildly cut back max-freqs when they aren´t needed. It works quite well so far, with no performance impacts during scenarios where max cpufreq is beneficial. (e.g. app launching, camera launching, interaction etcetc)
That means if a certain threshold is not crossed the max-freqs will be restricted to 1,4GHZ/1,6GHZ/2,4GHZ (for little/mid/big cores). As soon as the PMU detects enough pressure, those limits will be lifted.
The frequency limits are based on tracing during various scenarios, benchmarking and also factor in the voltage table I was able to create. For example: 2.4GHZ for the big cores is the last freq step where a steady linear increase in voltage can be seen. Freq steps higher than 2,4ghz have a steeper slope.
Keep in mind CPU-Freqs shouldn´t be touched in EXKM/FKM or other kernel managers. They are controlled by various mechanisms now (thermal hal, powerhal, pmu limiter etc) and values will get overwritten based on input.
That means if you open the CPU section in a kernel manager, the maxfreqs will not be the actual maxfreqs that are possible. or the minfreqs might be raised. That´s normal and there´s nothing wrong if that´s the case.

Additionally to the previous changes tasks of rt, sf and ta groups are now biased to start on high capacity CPUs during app launches, interactions etc.
As usual, depending on your usage you may or may not notice a difference during these scenarios. :)

While tracing I noticed kswapd often takes 100% cpu share when reclamation is happening. Since we use an 8 core cpu, an additional kswapd thread is being spawned during boot, which increases throughput for kswapd in these scenarios. Reasoning behind this can be found here.

The trusty driver which connects to the fingerprintreader hal uses now a high prio workqueue when the phone is unlocked via fingerprint scanner. This means better performance, especially under stress. Keep in mind this is a kernel level change, it won´t magically improve fingerprint reader times manifold.

DAMON and DAMON-Reclaim were removed from 2.3.0 going to 2.4.0. I tested the feature privately and it unfortunately collides with googles EH zram implementation causing the phone to crash at the moment. Tried to debug this issue, but no luck for the May release here.
If you previously enabled the feature without adjusting the parameters properly and your phone didn´t crash, DAMON-Reclaim just didn´t do anything.

2.4.0 also has an updated anykernel3.zip, which includes all the latest anykernel3 changes.
Thanks to @capntrips we now have full support to resize vendor_dlkm partition which is part of the super partition. That means we finally can flash larger than stock vendor_dlkm partitions via anykernel3.zips and resize the partition properly instead of just dd´ing to it.
A huge thanks to @capntrips for working on this and to @osm0sis for maintaining anykernel3.


Disclaimer:
I´ll keep the warning as to preferably using magisk stable to avoid potential issues as well here in this post.
Please note that 24306 works fine for me though on non beta, stable May firmware!
Important:
Make sure you´re being rooted with magisk 24300 stable before flashing the kernel if you´re unsure. Any magisk version above 24303 might potentially lead to a reboot back to bootloader since android 12.1.0 and A12L QPR3 Beta. At the moment this only affects canary, but I put the warning just in case this will not get resolved in upstream magisk in time until the next stable drops. I saw a post that some modules also have problems with latest canary, so there´s a lot going on at magisk´s side at the moment.
A post containing a short write-up how to "downgrade" magisk can be found following this link.

If you´re one of the unfortunate ones that suffer from the device is corrupt bug on pixel 6 series please take a look at the FAQ at the beginning of this thread it contains a solution. The issue is probably caused by a bug that affects pixel 6 devices and has nothing to do with magisk or a kernel, it just happens to get triggered when using any of those.



Changelog:

- Linux-stable merged to 5.10.113
- Use prebuilt Google Clang 14.0.5 for compilation
- Utilize an additional kswapd thread to increase throughput for memory reclaim
- remove DAMON and DAMON-Reclaim from kernel build (2.4.0)
- improve trusty driver performance which connects to fingerprintscanner-hal by using high prio wq during fp unlock (2.4.0)
- mm improvements from kernel/common (2.4.0)
- improvements from kernel-common a13 to page_pinner
- mainline backports for BFQ scheduler
- rework Multi-Gen LRU implementation
- scheduler improvements for RT (realtime) tasks
- other scheduler improvements
- include scheduler improvements from A13 Beta regarding better task placement
- introduce and setup PMU limiter (prevents CPU from spiking to max when it isn´t needed, based on PMU reads)
- bias tasks of rt, sf and ta groups to prefer high capacity cpus during app launches, interactions, camera launches, etc
- updated anykernel3.zip (thanks to @osm0sis) -> adds full support for resizing vendor_dlkm ( huge thanks to @capntrips )



Download:


Instructions can be found in the OP! Please follow the instructions to avoid any issues and read this post carefully. Don´t use magisk canary 24303 or more recent to avoid potential issues!
If you´re coming from another kernel restore stock boot.img, dtbo.img, vendor_boot.img and vendor_dlkm.img before flashing. Thank you.

I wish everybody a great day/evening!
Have fun, enjoy the kernel and your phone.


If you like my work please consider a donation.
Donations are not mandatory but very welcome.
If you like my work and want to buy me a coffee/green tea: http://paypal.me/freak07
 
Last edited:

scott.hart.bti

Inactive Recognized Developer
Mar 19, 2012
2,537
17,337
Reading
The speed at which you get your updates out blows my mind. You sir, are a machine! Thanks for the quick update!

Any chance you're going to revisit the DAMON and DAMON-Reclaim features? Sounds interesting and was looking forward to playing around with it a bit.
 
Last edited:

swieder711

Senior Member
Some folks are saying that Magisk 24306 is needed to root the May update. I see that Freak is using it too.

However, the release notes for 2.4 say "Make sure you´re being rooted with magisk 24300 stable before flashing the kernel if you´re unsure"

I am not sure which Magisk to use for the May update. Any more color to add?

thanks,
 
  • Like
Reactions: Freak07

bleez99

Senior Member
May 1, 2011
285
217
Some folks are saying that Magisk 24306 is needed to root the May update. I see that Freak is using it too.

However, the release notes for 2.4 say "Make sure you´re being rooted with magisk 24300 stable before flashing the kernel if you´re unsure"

I am not sure which Magisk to use for the May update. Any more color to add?

thanks,
I'm on 24.3 stable, works fine. Listen to the OP.
 

russian392

Senior Member
Apr 30, 2012
991
192
Simpsonville, SC
So I went from 13 beta 1 to 12.1 may update today, factory reset.
Skipped setting up my phone, installed magisk latest, patched the factory boot.img, flashed it, rebooted, installed the power zip thingy as a module through magisk, rebooted, then patched the kernel, downloaded the files and followed the manual install. After everything went through and I double checked my work, when rebooting the phone told me that the system won't boot and I need to do a factory reset. So I did, I assume this wiped the magisk module because although the phone reached the google loading screen with the sliding bar, it would never boot up. Trying a redo this time with --slot=all this time around. Not sure what is up, but if refuses to boot repeatedly even following the instructions, something is up.
EDIT: using --slot=all on either dtbo or vendor_boot breaks fastboot period and won't boot into fastbootd.
EDIT2: flashed stock dtbo and vendor boot, fastbootd worked, reflashed the custom dtbo and vendoor boot to slot b (that is what it defaulted to) and fastboot d is broken, again. What the actual F.
EDIT3: do people just not know how to write instructions these days? being vague and hoping people "just know" what to do is kind of stupid.
EDIT4: Flashed stock dtbo, patched stock boot, and stock vendor boot, phone boots.
EDIT5: Flashed without any modifications (fastboot flash xyz xyz.img) the kernel, dtbo, vendoor boot, and dlkm in d mode. Still pretty much useless. Loads recovery and says data may be corrupt try again/factory reset.

So in otherwords, 2 attempts, same problem using different methods. Looks like modern flashing has become such a sh*tshow that this is why no one roots anymore. Literally reflashed to full stock TWICE and redid the instructions TWICE and once using plain old logic, still bunk.

Flashing back to stock YET patched bootimg and stock vendor files boots fine...

So the problem is either A) magisk (which I made sure to not use the version listed, I have actually tried 1 version lower the first time), B) the power zip thingy...or C) the instructions.

EDIT6: After flashing back stock files, magisk still sees the power zip module no problem. I reinstalled it just incase.
EDIT7: Downloaded the latest magisk canary, we will see because 23000 only boots the stock kernel but not kiri.
EDIT8: Nope, latest magisk didn't work either, auto boots into bootloader mode.
EDIT9: I said screw it and got EXKM (I bought it long ago, thank goodness) and it won't work thorugh that either. Bootloops.
This release is botched if you are coming from stock and weren't running this before. What a freaking joke.

I kid you not I have been at this for 3 and a half hours and its all BS lmfao.

EDIT10: trying one more thing, installed the feb bootimg and letting it essentially try to boot after kiri bootloops with the exkm install. Then I will try to flash back to kiri
Yeah that didn't work, worse it just goes to bootloader and gives up
 
Last edited:

roirraW "edor" ehT

Forum Moderator
Staff member
Some folks are saying that Magisk 24306 is needed to root the May update. I see that Freak is using it too.

However, the release notes for 2.4 say "Make sure you´re being rooted with magisk 24300 stable before flashing the kernel if you´re unsure"

I am not sure which Magisk to use for the May update. Any more color to add?

thanks,
There is a disconnect and confusion between those talking about using 24306 and those who use 24300. The use of 24306 is related to updating using the OTA sideload method (not related to any kernel). I always flash the full factory image without the -w, so I just stick with Magisk Stable v24.3.
 

Lughnasadh

Senior Member
Mar 23, 2015
3,513
3,600
Google Nexus 5
Huawei Nexus 6P
Update to 2.4.0

Hey guys and girls,


Alright here´s the next update and it´s fine to flash on May firmware. As I suspected we already had all the changes for May by merging upstream.
I´ll include the changelog from 2.3.0 as well in this release post, since I think a lot of people flash the kernel on a monthly basis when the security updates drop. So this post pictures the changes going from 2.1.0 to 2.3.0! As I said 2.3.0 was kind of a final rehearsal to make sure everything is good for the May update.
I´ll put a remark behind changes going from 2.3.0 to 2.4.0.
This release is made for stable Android 12.1.0 May firmware. Not QPR Beta or A13 Beta!
Once I find enough time or QPR beta gets updated, I might update the QPR beta release. No plans to support A13 beta.

I also finished up the tables/graphs in regards to different binnings with the respective voltages on different tensor chips thanks to the dmesgs you all provided. I really want to put out a big thanks here to everyone for taking the time and participating. It was really great to see this kind of response.
I´ll provide them in a post in this thread soon.
So with that in mind we´ll get to the next paragraph were I could put those tables to good use.

A few changes from A13 Beta are merged to the kernel so we can enjoy the improvements on A12 ahead of time. Most of them aim to improve the scheduler and task placement.

However the recently dropped A13 Beta source contains a commit that can restrict max-cpufreqs based on PMU (Power monitor unit) reading. I setup this mechanism (lets call it "PMU Limiter") to mildly cut back max-freqs when they aren´t needed. It works quite well so far, with no performance impacts during scenarios where max cpufreq is beneficial. (e.g. app launching, camera launching, interaction etcetc)
That means if a certain threshold is not crossed the max-freqs will be restricted to 1,4GHZ/1,6GHZ/2,4GHZ (for little/mid/big cores). As soon as the PMU detects enough pressure, those limits will be lifted.
The frequency limits are based on tracing during various scenarios, benchmarking and also factor in the voltage table I was able to create. For example: 2.4GHZ for the big cores is the last freq step where a steady linear increase in voltage can be seen. Freq steps higher than 2,4ghz have a steeper slope.
Keep in mind CPU-Freqs shouldn´t be touched in EXKM/FKM or other kernel managers. They are controlled by various mechanisms now (thermal hal, powerhal, pmu limiter etc) and values will get overwritten based on input.
That means if you open the CPU section in a kernel manager, the maxfreqs will not be the actual maxfreqs that are possible. or the minfreqs might be raised. That´s normal and there´s nothing wrong if that´s the case.

Additionally to the previous changes tasks of rt, sf and ta groups are now biased to start on high capacity CPUs during app launches, interactions etc.
As usual, depending on your usage you may or may not notice a difference during these scenarios. :)

While tracing I noticed kswapd often takes 100% cpu share when reclamation is happening. Since we use an 8 core cpu, an additional kswapd thread is being spawned during boot, which increases throughput for kswapd in these scenarios. Reasoning behind this can be found here.

The trusty driver which connects to the fingerprintreader hal uses now a high prio workqueue when the phone is unlocked via fingerprint scanner. This means better performance, especially under stress. Keep in mind this is a kernel level change, it won´t magically improve fingerprint reader times manifold.

DAMON and DAMON-Reclaim were removed from 2.3.0 going to 2.4.0. I tested the feature privately and it unfortunately collides with googles EH zram implementation causing the phone to crash at the moment. Tried to debug this issue, but no luck for the May release here.
If you previously enabled the feature without adjusting the parameters properly and your phone didn´t crash, DAMON-Reclaim just didn´t do anything.

2.4.0 also has an updated anykernel3.zip, which includes all the latest anykernel3 changes.
Thanks to @capntrips we now have full support to resize vendor_dlkm partition which is part of the super partition. That means we finally can flash larger than stock vendor_dlkm partitions via anykernel3.zips and resize the partition properly instead of just dd´ing to it.
A huge thanks to @capntrips for working on this and to @osm0sis for maintaining anykernel3.


Disclaimer:
I´ll keep the warning as to preferably using magisk stable to avoid potential issues as well here in this post.
Please note that 24306 works fine for me though on non beta, stable May firmware!
Important:
Make sure you´re being rooted with magisk 24300 stable before flashing the kernel if you´re unsure. Any magisk version above 24303 might potentially lead to a reboot back to bootloader since android 12.1.0 and A12L QPR3 Beta. At the moment this only affects canary, but I put the warning just in case this will not get resolved in upstream magisk in time until the next stable drops. I saw a post that some modules also have problems with latest canary, so there´s a lot going on at magisk´s side at the moment.
A post containing a short write-up how to "downgrade" magisk can be found following this link.

If you´re one of the unfortunate ones that suffer from the device is corrupt bug on pixel 6 series please take a look at the FAQ at the beginning of this thread it contains a solution. The issue is probably caused by a bug that affects pixel 6 devices and has nothing to do with magisk or a kernel, it just happens to get triggered when using any of those.



Changelog:

- Linux-stable merged to 5.10.113
- Use prebuilt Google Clang 14.0.5 for compilation
- Utilize an additional kswapd thread to increase throughput for memory reclaim
- remove DAMON and DAMON-Reclaim from kernel build (2.4.0)
- improve trusty driver performance which connects to fingerprintscanner-hal by using high prio wq during fp unlock (2.4.0)
- mm improvements from kernel/common (2.4.0)
- improvements from kernel-common a13 to page_pinner
- mainline backports for BFQ scheduler
- rework Multi-Gen LRU implementation
- merge DAMON to the kernel, which includes DAMON-Reclaim (this feature is not enabled by default, you need to enable it manually if you want to test)
- scheduler improvements for RT (realtime) tasks
- other scheduler improvements
- include scheduler improvements from A13 Beta regarding better task placement
- introduce and setup PMU limiter (prevents CPU from spiking to max when it isn´t needed, based on PMU reads)
- bias tasks of rt, sf and ta groups to prefer high capacity cpus during app launches, interactions, camera launches, etc
- updated anykernel3.zip (thanks to @osm0sis) -> adds full support for resizing vendor_dlkm ( huge thanks to @capntrips )



Download:


Instructions can be found in the OP! Please follow the instructions to avoid any issues and read this post carefully. Don´t use magisk canary 24303 or more recent to avoid potential issues!
If you´re coming from another kernel restore stock boot.img, dtbo.img, vendor_boot.img and vendor_dlkm.img before flashing. Thank you.

I wish everybody a great day/evening!
Have fun, enjoy the kernel and your phone.


If you like my work please consider a donation.
Donations are not mandatory but very welcome.
If you like my work and want to buy me a coffee/green tea: http://paypal.me/freak07
Thanks so much for the update! Really appreciate the time you spend as well to provide such detailed information on various aspects of the kernel and kernel related things 👍

As a side note, Canary Magisk was updated to 24307 and the latest version of this kernel (2.4) is working fine with it on the May firmware update....for me.
 
Last edited:

roirraW "edor" ehT

Forum Moderator
Staff member
So I went from 13 beta 1 to 12.1 may update today, factory reset.
Skipped setting up my phone, installed magisk latest, patched the factory boot.img, flashed it, rebooted, installed the power zip thingy as a module through magisk, rebooted, then patched the kernel, downloaded the files and followed the manual install. After everything went through and I double checked my work, when rebooting the phone told me that the system won't boot and I need to do a factory reset. So I did, I assume this wiped the magisk module because although the phone reached the google loading screen with the sliding bar, it would never boot up. Trying a redo this time with --slot=all this time around. Not sure what is up, but if refuses to boot repeatedly even following the instructions, something is up.
Try Official Google Android Flash Tool (OEM Unlocking needs to be toggled on - you may not have to manually unlock the bootloader - the "site" will do that on its own). You can deselect any option to wipe and see if you can at least get the phone working without losing any data first.

Then, I always use the flash-all.bat from the full factory image with the -w removed, I boot into Android without root, let the system finish the update, then I use fastboot to flash the Magisk'd (Stable v24.3) stock boot.img, then boot up. Finally, if everything is good so far I use ExKM to flash the all-in-one zip package of the kernel.
 
  • Like
Reactions: jcp2 and Lughnasadh

russian392

Senior Member
Apr 30, 2012
991
192
Simpsonville, SC
Try Official Google Android Flash Tool (OEM Unlocking needs to be toggled on - you may not have to manually unlock the bootloader - the "site" will do that on its own). You can deselect any option to wipe and see if you can at least get the phone working without losing any data first.

Then, I always use the flash-all.bat from the full factory image with the -w removed, I boot into Android without root, let the system finish the update, then I use fastboot to flash the Magisk'd (Stable v24.3) stock boot.img, then boot up. Finally, if everything is good so far I use ExKM to flash the all-in-one zip package of the kernel.
I flashed to stock just fine, I know what I am doing.
Doesn't work with EXKM. LMFAO what a waste of time.
 
Last edited:
  • Haha
Reactions: Mrcactuseater

shiftr182

Senior Member
Oct 5, 2010
1,970
1,195
Boise
Google Pixel 6 Pro
Google Pixel 6
I flashed to stock just fine, I know what I am doing.
Doesn't work with EXKM. LMFAO what a waste of time.
I flashed may firmware on both partitions yesterday and the phone booted fine. Flashed rooted stock kernel, got to the "g" with the progress bar, then looped. Tried rebooting again, looped, got the message that my phone might be corrupt. Flashed stock unrooted boot img and it booted fine, repatched the boot and flashed, looped all over again. I ended up booting to safemode, then rebooting. I deleted every magisk module that I had installed, and reinstalled the ones I wanted. Phone worked fine. I installed kirisakura kernel this morning and haven't had a problem since.
 
  • Like
Reactions: roirraW "edor" ehT

russian392

Senior Member
Apr 30, 2012
991
192
Simpsonville, SC
I flashed may firmware on both partitions yesterday and the phone booted fine. Flashed rooted stock kernel, got to the "g" with the progress bar, then looped. Tried rebooting again, looped, got the message that my phone might be corrupt. Flashed stock unrooted boot img and it booted fine, repatched the boot and flashed, looped all over again. I ended up booting to safemode, then rebooting. I deleted every magisk module that I had installed, and reinstalled the ones I wanted. Phone worked fine. I installed kirisakura kernel this morning and haven't had a problem since.
I have been at this for 4 hours now. I have tried all sorts of things, what works for sure is the stock bootimg with stock vendor files (but patched). magisk version seems to not matter at all, as long as its the stock patched bootimg. It boots fine with the powerzip, I don't need root, nor do I use any modules. This is a full clean install from factory, there should be no issues but obviously this isn't the case.
As I said above, I have been using the manual install, and also tried EXKM, both fail but in different ways. The manual gives me corrupt device, where as EXKM straight up gets stuck in bootloader.
 

roirraW "edor" ehT

Forum Moderator
Staff member
I have been at this for 4 hours now. I have tried all sorts of things, what works for sure is the stock bootimg with stock vendor files (but patched). magisk version seems to not matter at all, as long as its the stock patched bootimg. It boots fine with the powerzip, I don't need root, nor do I use any modules. This is a full clean install from factory, there should be no issues but obviously this isn't the case.
As I said above, I have been using the manual install, and also tried EXKM, both fail but in different ways. The manual gives me corrupt device, where as EXKM straight up gets stuck in bootloader.
It's not the kernel that's the problem. These Pixel 6's have some oddities from time to time. I've experienced them too. One particular month I had trouble using a custom kernel. I stuck with stock rooted kernel until the following month - then I updated and was able to use the new month's rooted custom kernel perfectly. There's no rhyme or reason that we can determine what causes these issues. It's not related to the kernel, however.

I use ExKM every month to flash this custom kernel zip.
 

russian392

Senior Member
Apr 30, 2012
991
192
Simpsonville, SC
It's not the kernel that's the problem. These Pixel 6's have some oddities from time to time. I've experienced them too. One particular month I had trouble using a custom kernel. I stuck with stock rooted kernel until the following month - then I updated and was able to use the new month's rooted custom kernel perfectly. There's no rhyme or reason that we can determine what causes these issues. It's not related to the kernel, however.

I use ExKM every month to flash this custom kernel zip.
That is bizzare. Never had this issue with a single previous device. But whatevs.
With EXKM it gets to the google logo, flashes green then bootloops. GG's.
 
Last edited:

roirraW "edor" ehT

Forum Moderator
Staff member
That is bizzare. Never had this issue with a single previous device. But whatevs.
There was never a Samsung Exynos-based Pixel before. There have been many unexplained issues on these phones. Some of us, like me, have been lucky to only experience a few minor oddities.

With EXKM it gets to the google logo, flashes green then bootloops. GG's.
I believe you - that just doesn't happen for most of us most of the time. It won't surprise me if for next month's update you're able to use next month's kernel without any issue. Good luck to you.
 

russian392

Senior Member
Apr 30, 2012
991
192
Simpsonville, SC
There was never a Samsung Exynos-based Pixel before. There have been many unexplained issues on these phones. Some of us, like me, have been lucky to only experience a few minor oddities.


I believe you - that just doesn't happen for most of us most of the time. It won't surprise me if for next month's update you're able to use next month's kernel without any issue. Good luck to you.
We shall see. Ill keep my bootloader unlocked and maybe give it another go later. I am pretty sure I can dust off the old notes from the good old days and see what I can do. Root was the way for me up until the 2016/2017 era, heck I didn't even have this many issues with Kiri on my p4...absolutely nuts.

EDIT: Tried one more thing, but in the end, same issue. EXKM flashes, then when it reboots, the google screen flashes green and bootloops. Guess I have tried everything.
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 30
    Update to 3.0.17

    Hey guys and girls,

    I hope everyone started into a good weekend. Here´s the next release.

    There are again a lot of changes in this release.

    Android 13 Beta included a lot of little changes fixes and improvements as well as scheduler patches aiming to improve task placement.
    Some of these changes tie together with the powerhal. Which means based on certain scenarious, device idle, interaction etc several switches get flipped.
    To summarize a few of those changes: Disable NPI (non prefer idle) packing during app launches and camera launches for better task placement during those operation, when no interaction is happening disable prefer idle for foreground tasks to reduce power consumption, adjust uclamp values in regards to performance on the new scheduler changes, add adaptive battery power hints from A13 beta.
    Updated energy model, for improved efficiency.
    UFS performance is improved as well.

    The default BFQ IO-Scheduler is switched to Samsungs SSG IO-Scheduler(taken from Galaxy S22 source), which comes far more lightweight than BFQ (7500 lines of code vs 1000). This change was tested over the last few weeks with no regressions. This reduces overhead and thereby consumed CPU cycles. It´s also more tailored towards android instead of the "generic" BFQ from linux-kernel. As usual this might or might not translate to any "real-world" difference in battery life depending on various factors.

    Latest changes from f2fs-stable are included, which include several bugfixes and small improvements.
    Binder improvments/fixes from kernel/common, performance for exfat formatted storage device improved (niche use case, but still nice), trusty high prio workqueue improved.

    For other changes and details please take a look at github.


    I wish everyone a nice day.

    If you´re one of the unfortunate ones that suffer from the device is corrupt bug on pixel 6 series please take a look at the FAQ at the beginning of this thread it contains a solution. The issue is probably caused by a bug that affects pixel 6 devices and has nothing to do with magisk or a kernel, it just happens to get triggered when using any of those.



    Changelog:


    - Merge all the latest source updates from Android T-Beta
    - SSG IO scheduler for reduced overhead and less CPU cycles (more lightweight and android optimized)
    - scheduler improvements
    - task placement improvements​
    - use new energy model from A13​
    - improved UFS performance​
    - Linux-stable merged to 5.10.129
    - Use prebuilt Google Clang 14.0.7 for compilation
    - bump f2fs-stable to latest available
    - binder improvements from kernel/common
    - improve exfat performance (if someones uses exfat formatted devices)
    - improve trusty high prio WQ (fingerprint unlock)
    - loads of other changes from kernel/common
    - update powerhal
    - disable npi packing during app launches and camera launches​
    - disable foreground prefer idle during device idle situation to save power​
    - add adaptive battery hints from a13 beta​
    - adjust uclamp boosts during interaction to account for scheduler changes
    - loads of other changes, please check github



    Download:


    If you´re coming from another kernel restore stock boot.img, dtbo.img, vendor_boot.img and vendor_dlkm.img before flashing. Thank you.

    I wish everybody a great day/evening!
    Have fun, enjoy the kernel and your phone.



    If you like my work please consider a donation.
    Donations are not mandatory but very welcome.
    If you like my work and want to buy me a coffee/green tea: http://paypal.me/freak07
    11
    @Freak07 Any love for an A13 kernel, especially if Beta 4 hits tonight? 😉
    Would also like to know. Planning the switch to android 13 and would like to flash this wonderful kernel.
    No, I have no plans to support A13 beta. It will be supported once it´s stable. I don´t have the time, desire and motivation to support it.
    It all boils down to the fact that I enjoy doing what I´m doing here, I do it in my free time and share what I´m using myself with others so they can enjoy it with me.

    Since that questions comes up from time to time:

    There are various reasons for this below in hide tags:
    I´m not really comfortable releasing something I´m not running/testing extensively myself with loads of changes compared to the stock base. QPR Beta was a bit different as the kernels were interchangable except for a small touchscreen driver update. That way I could test the same kernel on stable A12 and knew it was stable. At least while not running the beta firmware. That´s not the case with A13 beta.
    But ultimately I was not comfortable with that as well, that´s why I put the A12 QPR beta kernel out with no support from my side. Different firmware can still behave differently on the same kernel.
    I never felt the urge to do beta testing for companies just to run more recent software too. I heard it´s quite stable for a beta, but I´m happy on A12 :)

    I don´t have time to test, maintain and build that many compilations, let alone switching between A13 beta and A12 stable on my phone for testing. It´s simply not possible, and I don´t want to release something that´s not extensively tested.
    I think sometimes people don´t realize how much time goes into this aspect of my kernels projects alone.

    Also try to see it that way:
    Merging code updates takes time. Be it linux-stable, f2fs-stable, kernel/common, lrng updates, updates directly from Google or a lot of the features that are descrbied in the OP. Sometimes longer, sometimes shorter.
    This kernel is now very very far from the stock base as is also reflected in the OP. So sometimes merging code updates will take time as there are many conflicts that need to be solved on my kernel. Even if the branches are somewhat similar I still need a lot of additional time to manage this aspect alone, not to speak of testing on my device to make sure nothing is broken.

    There´s no longer just the kernel repo itself to manage. With the introduction of GKI, the kernel is split in several sub repos for different device specific drivers, touchscreen, wifi, uwb, nfc, bt, etc etc. Those needs to be managed too, as well as other repos from the build environment.
    Powerhal changes need to be monitored and adjusted each month too, as they´re different between a12 and a13.

    Building takes time. Every compilation, for testing or release purposes takes about 15 minutes. Only building, not adjusting the code. Every release here needs 2 different builds for oriole/raven. Yes I can do something else during the compilation, but it´s still time I need.

    I updated to the July build with Kirasakura 3.0.17 and can confirm TTL spoofing is working again. I am able to execute the EKXM script without error and my carrier doesnt tag my tethering traffic. Thank you for your continued dedication to this awesome kernel.
    Thanks for reporting back! Enjoy the ride! :)

    I have a Pixel 6 pro. Decided to root and install this kernel after the release of 3.0.17. 1. I tried using KernelFlasher Alpha 06 and it resulted in a bootloop. I successfully recovered and used FKM to flash and everything worked fine.

    Notes on performance: In general, I believe this kernel provides a more responsive interface and lower battery use during idle, but I don't have any testing to prove it. I will note that, perhaps because I enabled DNS over HTTPS in magisk, that the initial setup / install of apps seems to take a lot more time than I'm used to - specifically the initial log in/authentication. Twitch, for example, took about a minuteto go from the purple screen with logo to the initial login. Subsequent launches after initial setup for everything works as quickly (possibly faster) than expected. Does anyone else experience the same? Is it because I'm using secure DNS in magisk?

    Thanks again for all your work. I've lurked on this forum for months, and your work helped me chose to buy this phone over a Samsung S22 ultra. I hope my only issues encountered so far help with further development. Let me know if there is any way to produce logs to document these slow initial launches / authentications.
    Yeah that sounds like this is your issue. I´m fairly certain the phenomenon you´re describing isn´t caused by the kernel as I´d have been affected too and I sign in to different apps from time to time too. :)
    Especially XDA app, since that apps kicks me out every few days and I need to sign in again and again and again.

    Thanks for the feedback. I don´t know why kernelflasher didn´t work the first time for you though. I´m using it to flash every single kernel I´m testing and release here.
    After flashing via kernelflasher is completed there´s an option to save a log. If you have time and motivation again to try and reproduce the issue, maybe grab a log and post it in the kernelflasher thread from @capntrips so that can be investigated.
    6
    Question.. is there a setting/magisk module which allows to configure the % at which charging stops? I don't like charging past 75%, but yesterday I just passed out and woke up with the phone plugged in 😬 😅
    ACC with the AccA GUI front end. I charge to only 75% too - I also don't usually let the battery go below 25%, and I very rarely fast charge.

    I also use an app (might be GSam Battery Monitor) to alert me when the phone reaches 75%, although I could just as easily set up an Automate script to email me when that happens instead if I wanted.

    Don't drink and charge! ;)
    6
    If you like my work please consider a donation.
    Donations are not mandatory but very welcome.

    Ok fine I will! Great work as always my friend. Nice to be in the P6 crowd now since my P4XL bit the dust last week. 👍👍😉
    5
    Kernel cannot flashed via TWRP? Why are trying to flash if through Apps?
    There is no TWRP for the Pixel 6 series.
  • 100
    Kirisakura-Kernel for the Pixel 6/Pro

    Hello everyone,

    To keep it short: Here is Kirisakura - Kernel for the Google Pixel 6 Pro aka Raven and the Pixel 6 aka Oriole, together Raviole.
    I would appreciate if everybody that flashes the kernel, reads at least once through this opening post and the following ones.

    The kernel aims to keep most of the subsystems updated, way ahead of the stock kernel, thereby improving security, stability and performance!
    This includes Linux-Stable, F2FS-Stable and kernel/common!
    If that got you curious, have a read about linux-stable and why it is important here. The stable-process is not the same for every subsystem, but the general idea, rule of thumb and benefits are applicable for other subsystems as well.

    The kernel includes a lot of improvements and contributions from other developers as well. Without this kernel would not exist.
    A big part of improvements originate from @arter97´s, @kdrag0n´s and @Sultanxda´s work. Many others contributed in some way or another to this kernel.
    A big thanks to all of them at this place!

    Now lets continue with a list of features in the next paragraph!

    Features:
    Main Features:
    - Based on latest A13 kernel sources from Google, Kernel is made for Android 12
    - Linux-Stable-Upstream included to 5.10.129
    - Compiled with prebuilt Google clang 14.0.7
    - merged kernel/common (improvements to android-common-kernel straight from google)
    - Multi-gen LRU backported (more info here, here as well and here) to improve mm and reduce cpu cycles
    - Utilize an additional kswapd thread to increase throughput for memory reclaim
    - pelt multiplier tied into powerhal to speed up scheduler during interaction (more info here)
    - prevent frequency spikes caused by small transient tasks when the device is idle(more info here)
    - tie mechanism to prevent frequency spikes caused by small tasks also into powerhal
    - scheduler improvements for RT (realtime) tasks
    - introduce and setup PMU limiter (prevents CPU from spiking to max when it isn´t needed, based on PMU reads, more information here)
    - improve camera performance by tuning the powerhal during recording
    - bias tasks of rt, sf and ta groups to prefer high capacity cpus during app launches, interactions
    - improve app launches via powerhal
    - improve trusty driver performance which connects to fingerprintscanner-hal by using high perf wq during fp unlock
    - restrict maximum CPU-Freqs during screen off/ idle to 1.1GHZ for all clusters to save power
    - introduce unfair f2fs rwsems to prevent writer starvation and improve IO perf under heavy load
    - fuse: give wakeup hints to scheduler to speed up compress/decompress in internal storage (details)
    - enable RCU_BOOST (details here), also fix RCU_BOOST behaviour
    - F2FS-Stable updated
    - TCP backports from mainline
    - SSG IO scheduler for reduced overhead and less CPU cycles (more lightweight and android optimized)
    - Scheduler updates from linux-main
    - use improved energy model for exynos cpu cooling/thermal control
    - allow GPU to scale down to 150mhz, but boost to higher value in case of interaction via powerhal
    - affine IRQS to CPU 7 during camera usage for improved performance as it tends to overload the little cores
    - use bbr as default TCP congestion algorithm (fasted algo according to this excellent research from @kdrag0n found here )
    - Enable support for TTL spoofing
    - Include LRNG, see here and here for more info, bump to v45 with 3.0.0
    - important patches from kernel/common for 5.10 (here are more details)
    - CleanSlate Features from @tbalden, big applause here! (s2s, notification booster, battery saver, flashlight notifications. Please note: cleanslate features that work otherwise with rooted devices like kadaway (adblocking) are not implemented on this kernel since I´m running rooted)
    - dirty pipe exploit fixed
    - supports direct usb access for hi-res playback over USB-C DACs
    - flashing the kernel will preserve root

    Various Optimizations:
    - update several drivers to use power efficient workingqueues (for example wlan driver)
    - kernfs: use buffer from the stack space
    - printk: use buffer from the stack space
    - kthread: use buffer from the stack space
    - bpf: avoid dynamic memory allocation for small value buffers
    - binder: Reserve caches for small, high-frequency memory allocations
    - kernfs: use kmem_cache pool for struct kernfs_open_node/file
    - cgroup: use kmem_cache pool for struct cgrp_cset_link
    - f2fs: reduce timeout for uncongestion
    - f2fs: Demote GC thread to idle scheduler class
    - f2fs: set ioprio of GC kthread to idle
    - mm: vmstat: use power efficient workingqueues
    Wakelock Blocker:
    - advanced wakelock blocker with the ability to block any wakelocks (dangerous, use with caution)
    - please read [URL="https://arstechnica.com/gadgets/2018/08/p-is-for-power-how-google-tests-tracks-and-improves-android-battery-life/"]this for further info

    AK3 Helper Module:
    - restrict little cluster to 1,19ghz mid cluster to 1,19ghz and big cluster to 1,1ghz during screen off, to reduce battery usage for example during music playback
    - only use little cores during screen off/device suspend
    - tie pelt multiplier into the powerhal (more info here)
    - prevent frequency spikes caused by small transient tasks during idle operation (more info here)
    - boost scheduler using the pelt multiplier during fingerprint unlock operation
    - setup and control PMU limiter via powerhal (more info here)

    DOWNLOAD:
    Download is always located in this folder:

    Changelog:
    Android 12.0.0

    1.0.0 Initial Release
    1.0.2 https://forum.xda-developers.com/t/...r-pixel-6-pro-aka-raven.4358435/post-85910621
    1.0.5 https://forum.xda-developers.com/t/...r-pixel-6-pro-aka-raven.4358435/post-85924419
    1.3.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-85976139
    1.4.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86109665
    1.5.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86259863
    1.7.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86390563
    1.8.4 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86541727

    Android 12.1.0 Stable (March feature drop and more recent)
    2.0.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86617873
    2.0.1 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86637233
    2.1.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86695911
    2.3.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86821331
    2.4.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86834981

    Android 12.1.0 Stable (June feature drop and more recent)
    3.0.0 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86992705
    3.0.1 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-86996237
    3.0.17 https://forum.xda-developers.com/t/...pixel-6-pro-aka-raviole.4358435/post-87127695



    Android 12L QPR Beta - Deprecated

    Requirements

    - unlocked Bootloader
    - USB-Debugging in developer options enabled
    - latest adb and fastboot binaries
    - working adb and fastboot environment so you can flash back to stock in case something goes wrong
    - working magisk environment (a device rooted with latest magisk stable in case you want to be absolutely safe)


    How to flash the Kernel:
    1a. Make sure you tick all the requirements above
    1. Download the correct kernel.zip depending on your device (Pixel 6 = oriole || Pixel 6 Pro = raven)
    2. Flash the correct kernel.zip via EXKM, FKM or kernel flasher. Root will be preserved. The AK3 magisk helper module will be automatically installed during flashing the kernel.zip and be present on next reboot.
    Do not remove or disable the AK3 Magisk Helper Module otherwise the device will bootloop.
    3. Reboot and profit.


    Manual installation is no longer supported starting with release 3.0.0, as there´s a free open-source option to flash kernel.zips now.
    Instead use the free kernel flasher, which can be found here.

    Manual installation without relying on paid apps like fkm/exkm:
    Please have a look at the linked post.



    Donations:
    Donations are not mandatory but very welcome if you want to support development or just buy me a coffee/tea/beer :)
    If you like my work: http://paypal.me/freak07

    Credits:
    @osm0sis for all his work on AK3.
    @tbalden for being the best HTC, Pixel, OnePlus and Asus wingman!
    @capntrips for all his work on the pixel 6!
    @LeeDroid and @mwilky for their awesome roms and work I used on multiple devices!
    @Captain_Throwback for all the mentoring and guidance!
    @Eliminater74 for bringing me into the game and the Inspiration
    @nathanchance for his upstream guidance and assistance
    @RenderBroken for helping me out
    @flar2 for all his work
    @joshuous for all the help he provided to me in the past!
    @arter97 for giving me advice
    @kdrag0n for his help and advices!
    @topjohnwu for magisk and his entire work!


    Source Code: https://github.com/freak07/Kirisakura_Raviole
    37
    Update to 1.8.4

    Hey guys and girls,


    So here´s the next update. It´s kind of an off schedule update, as I planned to update the kernel with the next security update/feature drop.

    But in the light of recent events regarding the new exploit called "Dirty Pipe" (more info here), which is similar to the "Dirty Cow" exploit from a while ago, but easier to exploit this time, I decided to release an update ahead of schedule.

    This exploit was fixed in linux-stable 5.10.102, as opposed to a single commit in AKC (android kernel common, commit here). This shows once more why merging linux-stable is beneficial as explained in detail in the OP.

    Since one of the key aspects of this kernel is security and staying on par with upstream (which often fixes exploits way ahead of android security bulletin updates, even before an exploit is even known or fixed via a patch on the security bulletin) I decided to release this update as quickly as possible, so this exploit is fixed on devices running this kernel.

    Several other notable improvements and changes in this release:
    Bring in scheduler updates from Android 13 Developer Preview, which aim at improving task placement. (adjust powerhal accordingly)
    BFQ IO-Sched is now on par with linux-mainline.
    Several fixes to mm subsystem, f2fs and others.

    Several other improvements are included as well. More details in the changelog.
    Download is below.
    Updated instructions in the OP!


    Changelog:
    - linux-stable 5.10.103
    - contains fix for the dirty pipe exploit
    - built with clang 14.0.2 prebuilt by google
    - improvments from kernel/common
    - fix memory leaks
    - security related patches
    - mm improvments
    - f2fs fixes
    - scheduler fixes
    - for details please check github
    - built with improvements from A13 Dev Preview to display driver
    - other changes please look at my github


    Download:


    Instructions can be found in the OP! Please follow the instructions to avoid any issues.
    If you´re coming from another kernel restore stock boot.img, dtbo.img, vendor_boot.img and vendor_dlkm.img before flashing. Thank you.
    37
    Update to 1.7.0

    Hey guys and girls,


    So here´s the next update. It includes the february security update. Most of the changes brought by the February kernel source drop, were already included in this kernel by merging kernel/common and linux-stable.


    Several other notable improvements and changes in this release:
    Improve f2fs performance by merging a patchset to prevent writer starvation for the checkpoint thread. This was discussed this month in the f2fs mailing list and is already merged to the kernel/common tree. It´ll improve performance under heavy I/O utilization.
    You can find more information following the discussion here.
    Necessary backports were brought to the kernel and the platform specific f2fs-implementation was also adjusted.
    Latest f2fs-stable was also merged to the kernel.

    Update the patchset to prevent frequency spikes caused by small tasks as well. Tie those new changes into the powerhal. (That means users not flashing the kernel.zip, but instead use the manual installation method, which are only a handful from the download count, need to flash the updated magisk helper module. Users that flash the kernel.zip via FKM/EXKM have to just flash and forget)

    Several other improvements are included as well. More details in the changelog.
    Download is below.
    Updated instructions in the OP!


    Changelog:
    - February Security update merged
    - linux-stable 5.10.96
    - include latest f2fs-stable
    - improvments from kernel/common
    - fix memory leaks
    - security related patches
    - mm improvments
    - for details please check github
    - introduce unfair f2fs rwsems to prevent writer starvation and improve IO perf
    - update patchset to prevent freq spikes caused by small transient tasks (also tie this into powerhal)
    - give pelt multiplier power hint for scheduler performance boost during fingerprint unlock
    - fuse: give wakeup hints to scheduler to speed up compress/decompress in internal storage (details)
    - enable RCU_BOOST (details here), also fix RCU_BOOST behaviour
    - update LRNG implementation (thanks to arter97 )
    - improvements/fixes for CleanSlate features
    - other changes please look at my github


    Download:


    Instructions can be found in the OP! Please follow the instructions to avoid any issues.
    If you´re coming from another kernel restore stock boot.img, dtbo.img, vendor_boot.img and vendor_dlkm.img before flashing. Thank you.
    36
    Update to 2.1.0

    Hey guys and girls,


    Alright here´s the next update. And it´s again a really big update! :)
    A few weeks ago google pushed a backport of Multi-Gen LRU for the 5.15 kernel to their aosp/kernel common branches. I went ahead and backported that to our 5.10 tree alongside other mm-improvements from linux-mainline. By now google pushed their own backport for 5.10, but I decided to go with my original implementation as it contains a lot more improvements alongside the main Multi-Gen LRU backport and ran stable for well over 3 weeks.

    Powerhal was adjusted quite significantly too. CPU-freqs are restricted to 1.1GHZ max during screen off/device idle operations to save more power. App launches and camera operation are improved as well in the powerhal. General usage benefits from those changes too.

    Latest linux-stable, f2fs-stable and kernel/common were merged as well.

    Users that decide to not use the CleanSlate features and don´t install the apps won´t see the kernel parsing for the config files extensively.
    Vibration Booster from CleanSlate was improved as well to kind of counter the weaker haptic feedback since the March update. Please check the linked thread from the changelog. Huge thanks to @tbalden for this. If you want to give a little bit back consider purchasing the apps via playstore or maybe a small donation. :)



    I´ll keep the warning as to preferably using magisk stable to avoid potential issues as well here in this post.
    Please note that 24305 works fine for me though on non beta, stable April firmware!
    Important:
    Make sure you´re being rooted with magisk 24300 stable before flashing the kernel if you´re unsure. Any magisk version above 24303 might potentially lead to a reboot back to bootloader since android 12.1.0 and A12L QPR3 Beta. At the moment this only affects canary, but I put the warning just in case this will not get resolved in upstream magisk in time until the next stable drops. I saw a post that some modules also have problems with latest canary, so there´s a lot going on at magisk´s side at the moment.
    A post containing a short write-up how to "downgrade" magisk can be found following this link.



    Changelog:

    - Update for April Source
    - Linux-stable merged to 5.10.109
    - f2fs-stable merged
    - fixes and improvements from kernel/common including several subsystems
    - multi-gen LRU ( more info here, here as well and here)
    - general LRU improvements from Linux-Mainline
    - improve camera performance by tuning the powerhal during recording
    - improve app launches via powerhal
    - restrict maximum CPU-Freqs during screen off/ idle to 1.1GHZ for all clusters to save power
    - remove cleanslate config files getting parsed excessively even if user did not install the CleanSlate apps
    - improve vibration boosting feature in CleanSlate config app to allow stronger vibration again(please have a look at this post )
    - other fixes for CleanSlate features such as sweep to sleep
    - updated anykernel 3 zip, thanks to @osm0sis
    - probably a lot more I forgot as time is short for me.


    Download:


    Instructions can be found in the OP! Please follow the instructions to avoid any issues and read this post carefully. Don´t use magisk canary 24303 or more recent to avoid potential issues!
    If you´re coming from another kernel restore stock boot.img, dtbo.img, vendor_boot.img and vendor_dlkm.img before flashing. Thank you.

    I wish everybody a great day/evening!
    Have fun, enjoy the kernel and your phone.


    If you like my work please consider a donation.
    Donations are not mandatory but very welcome.
    If you like my work and want to buy me a coffee/green tea: http://paypal.me/freak07
    35
    Update to 2.4.0

    Hey guys and girls,


    Alright here´s the next update and it´s fine to flash on May firmware. As I suspected we already had all the changes for May by merging upstream.
    I´ll include the changelog from 2.3.0 as well in this release post, since I think a lot of people flash the kernel on a monthly basis when the security updates drop. So this post pictures the changes going from 2.1.0 to 2.3.0! As I said 2.3.0 was kind of a final rehearsal to make sure everything is good for the May update.
    I´ll put a remark behind changes going from 2.3.0 to 2.4.0.
    This release is made for stable Android 12.1.0 May firmware. Not QPR Beta or A13 Beta!
    Once I find enough time or QPR beta gets updated, I might update the QPR beta release. No plans to support A13 beta.

    I also finished up the tables/graphs in regards to different binnings with the respective voltages on different tensor chips thanks to the dmesgs you all provided. I really want to put out a big thanks here to everyone for taking the time and participating. It was really great to see this kind of response.
    I´ll provide them in a post in this thread soon.
    So with that in mind we´ll get to the next paragraph were I could put those tables to good use.

    A few changes from A13 Beta are merged to the kernel so we can enjoy the improvements on A12 ahead of time. Most of them aim to improve the scheduler and task placement.

    However the recently dropped A13 Beta source contains a commit that can restrict max-cpufreqs based on PMU (Power monitor unit) reading. I setup this mechanism (lets call it "PMU Limiter") to mildly cut back max-freqs when they aren´t needed. It works quite well so far, with no performance impacts during scenarios where max cpufreq is beneficial. (e.g. app launching, camera launching, interaction etcetc)
    That means if a certain threshold is not crossed the max-freqs will be restricted to 1,4GHZ/1,6GHZ/2,4GHZ (for little/mid/big cores). As soon as the PMU detects enough pressure, those limits will be lifted.
    The frequency limits are based on tracing during various scenarios, benchmarking and also factor in the voltage table I was able to create. For example: 2.4GHZ for the big cores is the last freq step where a steady linear increase in voltage can be seen. Freq steps higher than 2,4ghz have a steeper slope.
    Keep in mind CPU-Freqs shouldn´t be touched in EXKM/FKM or other kernel managers. They are controlled by various mechanisms now (thermal hal, powerhal, pmu limiter etc) and values will get overwritten based on input.
    That means if you open the CPU section in a kernel manager, the maxfreqs will not be the actual maxfreqs that are possible. or the minfreqs might be raised. That´s normal and there´s nothing wrong if that´s the case.

    Additionally to the previous changes tasks of rt, sf and ta groups are now biased to start on high capacity CPUs during app launches, interactions etc.
    As usual, depending on your usage you may or may not notice a difference during these scenarios. :)

    While tracing I noticed kswapd often takes 100% cpu share when reclamation is happening. Since we use an 8 core cpu, an additional kswapd thread is being spawned during boot, which increases throughput for kswapd in these scenarios. Reasoning behind this can be found here.

    The trusty driver which connects to the fingerprintreader hal uses now a high prio workqueue when the phone is unlocked via fingerprint scanner. This means better performance, especially under stress. Keep in mind this is a kernel level change, it won´t magically improve fingerprint reader times manifold.

    DAMON and DAMON-Reclaim were removed from 2.3.0 going to 2.4.0. I tested the feature privately and it unfortunately collides with googles EH zram implementation causing the phone to crash at the moment. Tried to debug this issue, but no luck for the May release here.
    If you previously enabled the feature without adjusting the parameters properly and your phone didn´t crash, DAMON-Reclaim just didn´t do anything.

    2.4.0 also has an updated anykernel3.zip, which includes all the latest anykernel3 changes.
    Thanks to @capntrips we now have full support to resize vendor_dlkm partition which is part of the super partition. That means we finally can flash larger than stock vendor_dlkm partitions via anykernel3.zips and resize the partition properly instead of just dd´ing to it.
    A huge thanks to @capntrips for working on this and to @osm0sis for maintaining anykernel3.


    Disclaimer:
    I´ll keep the warning as to preferably using magisk stable to avoid potential issues as well here in this post.
    Please note that 24306 works fine for me though on non beta, stable May firmware!
    Important:
    Make sure you´re being rooted with magisk 24300 stable before flashing the kernel if you´re unsure. Any magisk version above 24303 might potentially lead to a reboot back to bootloader since android 12.1.0 and A12L QPR3 Beta. At the moment this only affects canary, but I put the warning just in case this will not get resolved in upstream magisk in time until the next stable drops. I saw a post that some modules also have problems with latest canary, so there´s a lot going on at magisk´s side at the moment.
    A post containing a short write-up how to "downgrade" magisk can be found following this link.

    If you´re one of the unfortunate ones that suffer from the device is corrupt bug on pixel 6 series please take a look at the FAQ at the beginning of this thread it contains a solution. The issue is probably caused by a bug that affects pixel 6 devices and has nothing to do with magisk or a kernel, it just happens to get triggered when using any of those.



    Changelog:

    - Linux-stable merged to 5.10.113
    - Use prebuilt Google Clang 14.0.5 for compilation
    - Utilize an additional kswapd thread to increase throughput for memory reclaim
    - remove DAMON and DAMON-Reclaim from kernel build (2.4.0)
    - improve trusty driver performance which connects to fingerprintscanner-hal by using high prio wq during fp unlock (2.4.0)
    - mm improvements from kernel/common (2.4.0)
    - improvements from kernel-common a13 to page_pinner
    - mainline backports for BFQ scheduler
    - rework Multi-Gen LRU implementation
    - scheduler improvements for RT (realtime) tasks
    - other scheduler improvements
    - include scheduler improvements from A13 Beta regarding better task placement
    - introduce and setup PMU limiter (prevents CPU from spiking to max when it isn´t needed, based on PMU reads)
    - bias tasks of rt, sf and ta groups to prefer high capacity cpus during app launches, interactions, camera launches, etc
    - updated anykernel3.zip (thanks to @osm0sis) -> adds full support for resizing vendor_dlkm ( huge thanks to @capntrips )



    Download:


    Instructions can be found in the OP! Please follow the instructions to avoid any issues and read this post carefully. Don´t use magisk canary 24303 or more recent to avoid potential issues!
    If you´re coming from another kernel restore stock boot.img, dtbo.img, vendor_boot.img and vendor_dlkm.img before flashing. Thank you.

    I wish everybody a great day/evening!
    Have fun, enjoy the kernel and your phone.


    If you like my work please consider a donation.
    Donations are not mandatory but very welcome.
    If you like my work and want to buy me a coffee/green tea: http://paypal.me/freak07