Nexus 5 big-bum kernel V23

I know I said I won't post about this anymore, but everybody lies.
From V20 we have new interesting things that are worth mentioning in a special blog post.
I kind of changed the base of the kernel. It's still franco-ish, but with a little cherry-picking from there and a little from here, and from there also.

I will try to make a complete list of features enabled and active in this kernel:

  • min default CPU freq: 300MHz
  • max default CPU freq: 2.26GHz
  • overclock possibility up to 3.01GHz, with the following freq steps: 2.4GHz, 2.72GHz, 2.80GHz, 2.88GHz
  • CPU under/overvolting possibility
  • default CPU governor: blu_active (the same one which Code Blue kernel uses)
  • available CPU governors: ondemand, interactive (the one from franco's original work) and performance
  • hotplug: blu_plug (the same one which Code Blue kernel uses). I've changed from mako_hotplug to this one.
  • hotplug special tunables: powersave mode, min/max CPUs online, max CPUs online when screen is off, max freq when screen is off
  • I/O readahead size: 512KB
  • I/O default schedueler: BFQ v7r5
  • available I/O scheduelers: noop, deadline, row, cfq, zen
  • dynamic fsync. When screen is on, file syncing is disabled. Once you turn off the screen, sync will be enabled
  • GPU min/max 200/450MHz
  • GPU default governor: interactive
  • GPU available governors: ondemand, performance
  • color profiles. Based on franco, works with FKU or Nexus Display Control app.
  • franco sound
  • high performance mode sound driver, enabled by default
  • various memory improvements. This doesn't mean less consumed RAM, also free RAM is wasted RAM for linux. Also, read this:
  • fast charge from faux123. This enables a custom mode where you can input your maximum input amperage, from 500mAh to 2000mAh, with the following steps: 500mAh, 900mAh, 1200mAh, 1500mAh, 2000mAh. I don't recommend setting anything more than 1200mAh.
  • KSM: Kernel Samepage Merging.

    KSM merges memory pages from one app with another app, thus only loading one memory page, not two pages that are the same.

    Let's say that app A has the page X loaded in memory. Let's say that app B loads pages X and Y in memory. KSM detects that and points app B to the memory address from page X loaded by app A. In the end we have this:

    Without KSM:
    A: X
    B: X, Y
    Total: X, X, Y

    With KSM:
    A: X
    B: ^, Y
    Total: X, Y

  • the famous I2C @ 19.2MHz

  • HTCP as default TCP congestion control. (I personally don't see any differences between different TCP Congestion Control algorithms)
  • other TCPCC available: reno, bic, cubic (I used this in DD-WRT), westwood (they say it's good for wireless/3G/4G devices), highspeed, hybla, vegas, veno, scalable, lp, yeah, illinois. (I will get rid of 90% of this, since I'm 100% sure that 99% of the Internet users don't even know what these are.) (
  • compilled with latest Linaro GCC (4.9.2)
  • I probably forgot somethings

Comments !