• Introducing XDA Computing: Discussion zones for Hardware, Software, and more!    Check it out!

Development [r2] arter97 kernel for OnePlus 9 series

Search This thread

Killadude

Senior Member
Jun 3, 2009
289
14
Ottawa
Xiaomi Mi 8
OnePlus 9 Pro
Thank you for the kernel arter. It performs beautifully, battery life is great and performance is smooth.

I don't see much difference in the scrolling acceleration if any, I don't know if I'm doing anything wrong or if other people are having placebo but I've never had issues with it as this is my first OP phone so I'm not used to it as other people. Also the speedometer on chrome is still in mid 70s, same as it was on blu_spark. I don't care about this either tho, it feels snappy to me.

View attachment 5435359
Speedometer result on DuckDuckGo
Screenshot_20211016-222816.jpg
 

Dashwood Foxe

Senior Member
Dec 23, 2014
156
51
Install the TPD disabler module as there are two things that contribute to the throttle. The kernel and the framework. While the kernel will ignore throttle flags, there is still some degree of cpu speed control done at the OS level. The TPD disabler disables both kernel and framework throttling.

I get a consistent 110-114 on speedometer.
 

Abhinav2005

Senior Member
Oct 19, 2017
98
28
Ranchi
Thank you for the kernel arter. It performs beautifully, battery life is great and performance is smooth.

I don't see much difference in the scrolling acceleration if any, I don't know if I'm doing anything wrong or if other people are having placebo but I've never had issues with it as this is my first OP phone so I'm not used to it as other people. Also the speedometer on chrome is still in mid 70s, same as it was on blu_spark. I don't care about this either tho, it feels snappy to me.

View attachment 5435359
How did you get soo good idle drain? Mine is somewhere around 2 - 2.5%/hour in this kernel. Also how did you manage to get high deep sleep %? Mine never goes above 80% even after using naptime. Pleae tell me🥺🥺
 

DashDashCZ

Senior Member
Oct 19, 2014
133
55
Czech Republic
OnePlus 9 Pro
How did you get soo good idle drain? Mine is somewhere around 2 - 2.5%/hour in this kernel. Also how did you manage to get high deep sleep %? Mine never goes above 80% even after using naptime. Pleae tell me🥺🥺
Tbh I have no idea. I don't use always on display + these stats are after 2 nights so that might be why the average is so low. I also don't use many social networks and those I use I put to optimize battery setting. No tik tok, Instagram or such trash :D
 

tathagatab

Senior Member
Dec 31, 2014
376
151
Kolkata
OnePlus 9 Pro
How did you get soo good idle drain? Mine is somewhere around 2 - 2.5%/hour in this kernel. Also how did you manage to get high deep sleep %? Mine never goes above 80% even after using naptime. Pleae tell me🥺🥺
My idle drain on this kernel also hovers around 0.7%. The one uncommon thing I do is keep social media and other background-active apps frozen via Icebox, and fire them up only when required. The free version lets you freeze up to ten apps.
 

l_mike

Senior Member
Jan 6, 2013
205
110
Xiaomi Mi Pad 4
Google Pixel 4a 5G
How did you get soo good idle drain? Mine is somewhere around 2 - 2.5%/hour in this kernel. Also how did you manage to get high deep sleep %? Mine never goes above 80% even after using naptime. Pleae tell me🥺🥺
Also there is a difference if you put your phone asleep and don't touch it overnight and on the opposite you unlock it every ten minutes. Deep sleep and idle drain differ then.
 
  • Like
Reactions: tathagatab

Cagarin2

Member
Jan 12, 2021
9
5
OnePlus 9 Pro
Lo siento, noob question, ¿cómo puedo actualizar esto ya que mi magisk solo permite flashear archivos .zip?

¿Revertir también es tan simple como eliminar el módulo desacti

Lo siento, noob question, ¿cómo puedo actualizar esto ya que mi magisk solo permite flashear archivos .zip?

¿Revertir también es tan simple como eliminar el módulo desactivador TPD?
es una cremallera. desinstalarlo vuelve al stock normal
 

Kickazz080

Member
May 10, 2014
25
4
Hey beautiful people! To the guys that have been using this for a bit now, does it fix the horrible overheating issue in any way? Or is there a way to just disable the stupid safety setting when overheating whilst gaming for example? Im sure the 888 can handle much more before throttling and reverting to 60 Hz and low brightness...
 

Bepi Mosto

New member
Feb 26, 2014
3
1
Google Nexus 5
OnePlus 3
Best op9 kernel I've tried so far. The only thing bothering me is some serious lag on Chrome while watching YouTube in PiP mode. Other apps run flawlessly.

Could this be due to some issue with all the throttling stuff?
This has nothing to do with my Magisk modules as I've already tried disabling them.
 

GreaterLesser

Senior Member
Sep 19, 2014
493
192
Chicago
OnePlus 9 Pro
Best op9 kernel I've tried so far. The only thing bothering me is some serious lag on Chrome while watching YouTube in PiP mode. Other apps run flawlessly.

Could this be due to some issue with all the throttling stuff?
This has nothing to do with my Magisk modules as I've already tried disabling them.
I have this same issue - I think it's a refresh rate issue as a lot of YouTube videos run at 30 or 60 fps or Hz even in PiP mode. I think the hiccup is the display trying to adjust to the 30 or 60 fps PiP video while trying to also stay a high enough refresh rate for whatever else you're doing and it causes this lag. I only ever see this issue is when watching a video in PiP mode (on any kernel, even stock) so I'd assume it has to do with the dynamic refresh rate of the screen, not the kernel.

(I ofc could be wrong but this is just what I've noticed from my usage)
 
  • Like
Reactions: tathagatab

Bepi Mosto

New member
Feb 26, 2014
3
1
Google Nexus 5
OnePlus 3
I have this same issue - I think it's a refresh rate issue as a lot of YouTube videos run at 30 or 60 fps or Hz even in PiP mode. I think the hiccup is the display trying to adjust to the 30 or 60 fps PiP video while trying to also stay a high enough refresh rate for whatever else you're doing and it causes this lag. I only ever see this issue is when watching a video in PiP mode (on any kernel, even stock) so I'd assume it has to do with the dynamic refresh rate of the screen, not the kernel.

(I ofc could be wrong but this is just what I've noticed from my usage)
Well, that didn't happen to me with either stock or Omega
 

isiynen

Member
Nov 1, 2010
11
8
Nexus 7 (2013)
LG V30
I just installed this on my t-mobile version yesterday night. Every time I reboot I get a pop up error saying "New SIM Card Detected" with a prompt to reboot. When I click reboot, the phone continues to the launcher and works mostly OK. This is just an inconvenience, but has anyone found a fix that doesn't involve wiping and starting over?
 

deathps

Member
Oct 25, 2010
7
1
37
Kraków
Hello I sincerely wanted to report one block, namely after entering the game Probably dablju Cassino yy crashed my phone terribly, I had to restart it.
And it happened. I know, maybe an hour after uploading your kernel.
So I greet and wish you a successful work.
 

Top Liked Posts

  • 6
    @r4p70r @thirtythr33 @l_mike There is another way via fastboot (provided of course you have the backup files). That's what I did yesterday with the help of others.

    Be on 11.2.9.9, then do the following while in fastboot:

    fastboot flash boot boot.img (this should be stock 11.2.9.9 kernel)
    fastboot flash dtbo dtbo.img
    fastboot flash vendor_boot vendor_boot.img


    You'll boot into unrooted 11.2.9.9, then you can local upgrade to 11.2.10.10 and re-root.

    If you're unsure about the slot, do fastboot getvar current-slot, then flash the correspondent commands/images accordingly.

    By the way, the "Partitions Backup & Restore" app from play store does backup both slots for each, which puts your mind at ease when you do, so you get "dtbo_a" and "dtbo_b" and so on.

    2
    I was too paranoid to flash TWRP and risk losing my data
    no need to risk, do not fastboot flash twrp.img, just boot it for once and last time - fastboot boot twrp.img
    2
    That's what I did. I don't think it is recommended way to update, but it worked for me. You can always reflash arter's using FKM - just to be sure it's done correctly ;)
    1
    By the way, the "Partitions Backup & Restore" app from play store does backup both slots for each, which puts your mind at ease when you do, so you get "dtbo_a" and "dtbo_b" and so on.
    it do backup well, bet when need to restore, this app just cant do it.
    Also, as mentioned earlier restored vendor/boot/dtbo, upgraded localy, with twrp flashed magisk, and flashed arter kernel in FKM. For now it is the easest solution, and all app data saved
    1
    @r4p70r @thirtythr33 @l_mike There is another way via fastboot (provided of course you have the backup files). That's what I did yesterday with the help of others.

    Be on 11.2.9.9, then do the following while in fastboot:

    fastboot flash boot boot.img (this should be stock 11.2.9.9 kernel)
    fastboot flash dtbo dtbo.img
    fastboot flash vendor_boot vendor_boot.img


    You'll boot into unrooted 11.2.9.9, then you can local upgrade to 11.2.10.10 and re-root.

    If you're unsure about the slot, do fastboot getvar current-slot, then flash the correspondent commands/images accordingly.

    By the way, the "Partitions Backup & Restore" app from play store does backup both slots for each, which puts your mind at ease when you do, so you get "dtbo_a" and "dtbo_b" and so on.

    I went into fastboot, then temp-booted twrp with

    $ fastboot boot twrp*.img

    Then used dd to restore the partitions (also backed up with dd). Rebooted to system, upgraded using downloaded full OTA.

    Worked like a charm. No need to install another app for something you can do with a built-in command.
  • 18
    r2 is up, and it's a big release.

    Changelog is quite self-explanatory.

    r2
    Display-related processes are now allowed to use the middle cores as well for better smoothness
    Enabled more mremap() performance improvement that was missing from r1
    LA.UM.9.14.r1-18400-LAHAINA.0 merged
    LA.UM.9.16.r1-08100-MANNAR.0 merged
    LA.UM.10.9.1.r1-00300-QCS610.0 merged (contains a lot of new improvements including power optimizations)
    Linux v5.4.159 merged
    Wi-Fi drivers updated to 2.0.8.25M
    2021-11-06 security patch merged
    Watermark boosting disabled to fix aggressive app killings (by Sultan)
    Workaround added to fix unwanted doubles presses from the power button
    6
    Sorry to be a pest, but can someone please explain how to backup vendor_boot and the dtbo partitions, and also what are the commands to restore them when needed to restore to stock? Thanks for the help folks.

    Open terminal, become root. Then:

    $ mkdir /sdcard/disk_images

    $ dd if=/dev/block/by-name/vendor_boot_a of=/sdcard/disk_images/vendor_boot_a.img

    $ dd if=/dev/block/by-name/dtbo_a of=/sdcard/disk_images/dtbo_a.img

    And so forth. Replace '_a" with "_b" if applicable.

    'Hope this helps.
    6
    @r4p70r @thirtythr33 @l_mike There is another way via fastboot (provided of course you have the backup files). That's what I did yesterday with the help of others.

    Be on 11.2.9.9, then do the following while in fastboot:

    fastboot flash boot boot.img (this should be stock 11.2.9.9 kernel)
    fastboot flash dtbo dtbo.img
    fastboot flash vendor_boot vendor_boot.img


    You'll boot into unrooted 11.2.9.9, then you can local upgrade to 11.2.10.10 and re-root.

    If you're unsure about the slot, do fastboot getvar current-slot, then flash the correspondent commands/images accordingly.

    By the way, the "Partitions Backup & Restore" app from play store does backup both slots for each, which puts your mind at ease when you do, so you get "dtbo_a" and "dtbo_b" and so on.

    4
    Reflashing the whole ROM is not a option - it would take too much time to restore all my data.

    And your answer does not help at all.... oO Your answer is like "ah you have a problem with your windows - reinstall it and dont try to fix it"
    he mean just make "dirty" flash without wiping anything. I did that just for testing, and everything goes well
    3
    Hi Eveybody
    Interesting kernel for 1+9 ...
    But I am worried regarding vendor_boot and the dtbo partitions.
    Can I easily undo the changes if I reflash the full stock rom?
    I didn't create backups the first time so I tried to reflash the stock ROM in TWRP but it failed to mount some partitions. I had to use the MSM tool to get my phone back to stock. I now backed up the partitions (and made sure I read the post properly) and flashed this kernel again.

    Just back up your partitions using the method provided by tathagatab

    Open terminal, become root. Then:

    $ mkdir /sdcard/disk_images

    $ dd if=/dev/block/by-name/vendor_boot_a of=/sdcard/disk_images/vendor_boot_a.img

    $ dd if=/dev/block/by-name/dtbo_a of=/sdcard/disk_images/dtbo_a.img

    And so forth. Replace '_a" with "_b" if applicable.

    'Hope this helps.



    And then restore them using the method provided by xontax: https://forum.xda-developers.com/t/r1-arter97-kernel-for-oneplus-9-series.4334607/post-85669053



    Hope this helps you.
  • 39
    arter97-xda.png



    arter97 kernel for OnePlus 9 series running OxygenOS

    /* Features */

    Supports OnePlus 9 series
    Fully rebased kernel without unnecessary OnePlus code
    Latest CAF msm-5.4 kernel fully merged
    Latest Linux v5.4 subversion merged
    Latest Google’s security fix merged
    BBR as the default TCP network congestion control
    Features the latest WireGuard
    Modules support disabled for lighter kernel
    Latest Wi-Fi drivers from Qualcomm with customized config
    Built with Clang 12 and ThinLTO
    Power optimizations
    Memory management optimizations
    Latest SELinux subsystem backported from mainline
    Latest f2fs backported from mainline
    Latest BFQ I/O scheduler backported from mainline
    mmap/mremap backported from mainline for a major performance boost
    Touchscreen optimizations for lower latency
    Uses LRNG for better performance

    /* Details */

    - Fully rebased kernel without unnecessary OnePlus code -



    This kernel is not based on the stock OxygenOS kernel source provided by OnePlus. Instead, it’s based on the latest and greatest Qualcomm has to offer. Only the necessary parts from the OnePlus kernel have been cherry-picked, such as OnePlus 9 specific device drivers.

    This effectively kills all kernel modifications/optimizations from OnePlus, including the infamous app throttler.
    Due to the completely different base, this kernel will behave drastically different from other kernels, in both good and bad ways.


    - Power optimizations -


    This kernel makes some conscious decisions for reducing power consumption.

    First, the stock OnePlus configuration forces display-related processes to use the big cores exclusively.
    This configuration brings a huge power regression since it makes every frame dispatch to wake up and use the power-hungry cores.

    This kernel resets this profile to use the configuration Google recommends, which is to use the LITTLE cores exclusively instead. (Reverted in r2 as it seems like that little cores aren't enough to drive 120 Hz fluidly.)
    This kernel allows these processes to use little and middle cores (0-6), depending on the load.

    Second, this kernel disables wakelocks upon Wi-Fi’s RX unicast packet transmissions. qcom_rx_wakelock is one of the major culprits to increased idle power consumption. Although its total wakelock time is quite low, it's catched very frequently and prevents the system from entering suspend repeatedly.

    As dropping unicast or local ARP packets doesn’t pose practical issues on Android, this kernel disables qcom_rx_wakelock.

    Third, this kernel reduces the duration of the Bluetooth ISR wakelock from 2 seconds to 100ms. This was done from an observation that the average userspace response time from ISR is less than 10ms.
    My kernels have been doing this for years and no Bluetooth-related issues were reported.

    Fourth, the vibrator driver used in this kernel no longer controls the cpuidle driver. The stock kernel disables the cpuidle whenever the vibrator is used. This kernel disables it as the vibrator is not that sensitive to deadline misses.

    There are other small improvements throughout the kernel tree as well.


    - Memory management optimizations -


    This kernel disables LMKD and uses an in-kernel solution called SimpleLMK, made by kerneltoast. You can track how often SimpleLMK kicks in by monitoring:
    Code:
    /sys/module/lowmemorykiller/parameters/lmk_count

    This kernel also changes a lot related to swap and zram.

    The swap-related code has been backported from Linux v5.9 (link1, link2) to efficiently support fast swap device and allow swappiness over 100. This kernel currently sets swappiness to 160 on < 6GB of RAM, 120 on 8GB and 90 on 12GB.

    zram has been also backported from mainline Linux and further tweaked to use block device writeback. This is equivalent to the recent “RAM Plus” feature that companies have been marketing that uses the internal storage to extend RAM.

    This kernel uses zram writeback to offload idle pages (i.e., really, really unused RAM) to the internal storage. As it's extremely slow to bring pages back from UFS, writeback code works quite conservatively. It'll start to writeback pages that haven't been used for a day or two. It makes use of the hidden 2GB “last_parti” partition from the UFS storage.

    Along with zram writeback, this kernel also enables deduplication with xxHash. Each page stored in zram is checked for deduplication to further save memory. With these 2 features combined, RAM reaching 1GB is additionally saved, but your mileage may vary.

    The post boot script used in the stock ROM is also overridden and it sets the readahead to 128KB. As I/O workload under Android is mostly random, high readahead doesn’t help and only increases memory thrashing.

    This kernel also incorporates a lot of patches to reduce/optimize memory allocations used throughout the entire kernel.

    mmap/mremap code was also backported from Linux v5.10 to optimize ART (see here for more info).


    - Latest subsystems -


    This kernel backports the SELinux subsystem from mainline Linux. This includes caching improvements that drastically reduces time spent on lookups. 10K lines of code has been changed.

    This kernel also backports f2fs (Flash-Friendly File System) from mainline Linux. This includes bug fixes and performance improvements such as shorter discard latency, more optimized GC logic for Android, and checkpoint merging.

    BFQ I/O scheduler has also been backported from mainline Linux for better I/O performance.


    - LRNG -


    This kernel ditches the traditional RNG driver from the Linux kernel in favor of LRNG. See here and here for more info.

    A rudimentary throughput benchmark shows an improvement of 10.5% (keep in mind that this is only one aspect of an RNG metric).


    /* Notice */

    Only OxygenOS on Android 11 is supported.

    This kernel touches vendor_boot and dtbo partitions, meaning you'd need to restore said partitions whenever you're switching to another kernel or stock.
    Please make a back-up of these partitions. The installer doesn’t do this automatically for you. Installing the stock ROM with a full OTA restores said partitions as well.

    /* Disclaimer */

    Your warranty is now void.
    I am not responsible for bricked devices, dead SD cards,
    thermonuclear war, or you getting fired because the alarm app failed. Please
    do some research if you have any concerns about features included in this kernel
    before flashing it! YOU are choosing to make these modifications, and if
    you point the finger at me for messing up your device, I will laugh at you. Hard. A lot.

    /* Thanks to */

    Vishalcj17
    kristofpetho
    kdrag0n
    kerneltoast (SultanXDA)

    /* Instructions */

    1. Read the above. Please.
    2. Flash the zip file from FK Kernel Manager. Any other installation methods are untested.

    /* Downloads and links */

    arter97.com
    Kernel source
    Telegram chat link
    18
    r2 is up, and it's a big release.

    Changelog is quite self-explanatory.

    r2
    Display-related processes are now allowed to use the middle cores as well for better smoothness
    Enabled more mremap() performance improvement that was missing from r1
    LA.UM.9.14.r1-18400-LAHAINA.0 merged
    LA.UM.9.16.r1-08100-MANNAR.0 merged
    LA.UM.10.9.1.r1-00300-QCS610.0 merged (contains a lot of new improvements including power optimizations)
    Linux v5.4.159 merged
    Wi-Fi drivers updated to 2.0.8.25M
    2021-11-06 security patch merged
    Watermark boosting disabled to fix aggressive app killings (by Sultan)
    Workaround added to fix unwanted doubles presses from the power button
    15
    After using the kernel myself and daily driving for few days and monitoring how the kernel behaves, I now feel comfortable to mark it stable.

    r1 is released.

    The original post is re-written to feature what's special with this kernel.
    Please take your time and re-read the original post.
    9
    Another new alpha build is up with big changes yet again.
    I still have quite a few TODOs left, but I ported many changes from my OnePlus 7 Pro kernel.

    Wi-Fi will behave differently with this kernel, so please let me know if you encounter Wi-Fi issues.

    r1a7

    Wi-Fi configuration merged with the latest CAF
    Wi-Fi's rx_wakelock disabled and removed
    Support for WireGuard added
    Bunch of memory optimizations
    Bunch of optimizations for screen and the GPU driver
    9
    r1a10 is up. (r1a9 is skipped as an internal build)

    This build now drastically changes the file-system code, bringing it from v5.4 to v5.15 (mainline Linux) with 13K code line changes.

    While I expect it to be stable, there might be a possibility that it may end up causing incompatibilities with the OnePlus 9's encryption code.

    So please, back up your data before using this build if you haven't already.

    Another notable change is that the USB OTG and Type-C audio jack is also fixed.

    r1a10

    Merged the latest Qualcomm LA.UM.9.14.r1-18300-LAHAINA.0 tag
    Fixed USB OTG and Type-C audio jack
    Merged the mainline f2fs from Linux v5.15