SpeedWizz Kernel N2 - Samsung 4.1.2

WARNING: Supports only 4.1.2 samsung based roms only. For Samsung JB 4.3 please see the new kernel section.

In this page you will find the samsung 4.1.2 based releases of my kernel...
It is supposed to think that those stable kernels are bug-free.

...SpeedWizz Kernel N2 Downloads!

Latest build is 09/30, click on the link below to start download

SpeedWizz kernel 10/08

Changelogs from version 09/30

Triggered experimental option flags for compiler
Introduced two new flags: Graphite optimization and Link Time Optimization

Reverted and re-applied (i hope in proper way) the fast charge feature
Beta testers reported as working, after the above correction.

Enabled sysfs interface for frame buffer early suspend delay
Now we are able to set the delay using proper sysfs interface, with a range of options from 0 milliseconds to 700 milliseconds. To easily configure we can use speedwizz manager.

Permanent filesystem TRIM

Totally disabled samsung debug

- Linux kernel 3.0.99

- RAMDISK: Added earlysuspend delay related scripts.

SpeedWizz kernel 09/30

Changelogs from version 09/24

tmpfs: fix mempolicy object leaks
Patched mm/shmem.c to avoid several memory leaks caused by mpol allocated memory, errors parsing remount options will leaked mpol and multiple mpol per mount leak mpol. Credits as per related commit. Follow the link on description.

mach-exynos: cpuidle-exynos4: set logging default to disabled
Trying a proper way to optimize kernel resources usage. From gokhan moral source tree.

power: reduce regulator initializations to regulator minima
With this modification we now use more undervolt (less voltage level) for Gpu and running stable.
Before applying this patch, I can't use even -25 Mv. Now i can reach  a stable -75 Mv without crash neither graphics glitches.
Anyway, at the moment,  the undervolt scripts in ramdisk are the same of the previous release.

cpupower: update the cpu_power according to cpu load 
When the lowest frequencies are used, we are in a light load use case and we increase the cpu capacity to keep these light tasks on CPU0. This patch was originally used by AndreiLux in his Perseus, and i think it could be implemented to reach a better balance between performances and battery life.

This should grant Triangle Away support, need to be tested by others than me.

With this modification we now should, i repeat SHOULD, be able to use the same power output for both A/C and USB charging case. And also we should be able to set our custom power level for both.
Default is disabled, you can use speedwizz manager to set things as desired. 
PLEASE IGNORE THE OUTPUT PRINTED BY TRICKSTERMOD, i will investigate why it show an ENABLED message despite the real state of the sysfs interface.
Also you should know that for your safety i deliberately omitted the option to enable FAILSAFE: It can be used to  allow anything up to 2.1A to be used as AC / USB custom current. The sysfs interface is there but there isn't a script to manage this option because i think it's too dangerous for your data. Use it at your own risk.

- RAMDISK: Corrected almost all scripts to let show the coerent increasing order as per choice.

- RAMDISK: fixed the scripts for sched_mc_pwersavings, now will echoes the correct values.

- RAMDISK: simplified the GPU overclock scripts removing the frequencies steps from description choiche menu (i noticed overlapp between values). Now you will see only Low, Medium, High, High+, High++. 

- RAMDISK: Added the related scripts for all the new features.

- RAMDISK: Made the Zipallign feature as optional. Use the speedwizz manager to manage the feature.

- RAMDISK: removed the option for manage the gentle_fair_sleepers, as this debug feature is totally removed since 24/09 release, sorry for the inconvenience.

SpeedWizz kernel 09/24

Changelogs from version 09/17

Enabled hardfloat and Neon kernel support
We have an ARM V7 architecture machine, so i think it's better to unleash his power, to gain optimum performances;

sched/nohz: Rewrite, fix and add more accurate load-avg computation

Updated Linaro toolchain to 4.7.4.

- Enabled Veno tcp congestion and set as default. Now you have three kind: Veno, Reno and cubic.

Linux 3.0.70

rwsem: Tons of optimizations. Read/Write semaphores are very important in Linux kernel and give those the correct attention can give best overall performance. To gain more details on what i introduced (patches are from other developers) give a sneakpeak to my github.

lib/memcopy: use glibc version.
Glibc of linux memcpy and memmove are way better than the standard one. Pure efficience.

Asynchronous I/O latency: removed the plug from do_io_submit, to gain improvement on i/o latency

CPU-supported unaligned accesses: enabled one of the critical performance feature of our Arm V7.

Input: Send events one packet at a time. On heavy event loads, such as a multitouch driver, the irqsoff latency can be very high. And trasferring those data after accumulating in a frame can reduce the latency a lot.

-  dynamic fsync: Many fixes and improvements from latest Faux123's commits. Updated to version 1.2.

mali: GPU controlIntroduced Voltage and Clock control sysfs interface, Major credits to AndreiLux and Simone201;

mali: reduce utilization sampling timeout. Reduced the time needed by the kernel to make computation on Mali usage.

Let the ASV settings be applied at init process, during boot.

Added more Gpu frequencies. Also restored the default steps configuration and modified the related ASV tables.

Disabled haptic debug

Enabled exfat. Those are the new samsung opensource drivers for exfat. No performance or efficency loss, despite few debug features enabled on kernel configuration.
Many thanks to my friends Loudness79 and Pluccio, for the beta testing.

- Enabled sched_mc_powersavings support.

- Ramdisk - Rewritten all the scripts to let the application interface be more  comprehensible and immediate. Also to avoid selecting more of one option for the same cathegory.

- Ramdisk - Added the new Mali scripts to control GPU. Now we can select various level of overclock and also we can select different sets of voltage to be applied for all 5 gpu steps. Voltage settings are dynamic: no need to re-apply after frequency modifications. Too high clock and too low voltages can give instability. You've been warned ;)

- Ramdisk - Added new script to manage the sched_mc_power savings. Default seto to 0 (disabled)

Reminder: As always all new features and all code modifications that are not mine are credited on my github. Also you can find a list of awesome devs at bottom of this page.

SpeedWizz kernel 09/17

Changelogs from version 09/12

- From this version kernel will be available also in tar format for odin use (tested on stock rom). 

- Ramdisk - Using busybox compiled binary instead of a shared library;

- Ramdisk - Added autoroot feature, with ability of turn it off and on based on your needs - In order to                      disable the root feature just create an empty file on your sdcard (internal) called   "noroot"                      (without quotes) using even stock file manager (no root needed for this) and reboot your                        device. To re-enable root just remove the file and reboot again;
                   Also, the mechanism should detetc the correct name of the application, even if it is updated                     from playstore. Please report any issue.

- Ramdisk - Added the related OC scripts to kernel in order to manage frequency using the application                      included with kernel.

- Added Overclock feature up to 1920 mhz (maybe unstable for some device) now the available freq step are as following: 200, 300, 400, 500, 600, 700, 800, 900, 1000, 1100, 1200, 1300, 1400, 1500, 1600, 1704, 1800, 1920. - Major credits for method to Ptmr3, thanks.

- Reworked Uv table and sysfs interface to adapt the previous commit to new frequencies.

- Fixed an initial bug with OC: frequency goes above the maximum setting causing battery drain and freeze on some device. Now works perfectly - credits to Yank555-Lu.

SpeedWizz kernel 09/12

Changelogs from version 09/11

- Ramdisk - Refactored tweaks, taken isnpiration from simone201, removed as consequence                                      thunderbolt script. For more details see my github;
- Ramdisk - Fixed some malformed scripts to apply the correct undervolt values for each frequency.                           Update is reccomended.

- Ramdisk - Added the following script: S10enable_stockundervolt, 
Now kernel control should be almost complete using my application included.

- Sio scheduler as default and tweaked for performances (credits to googyanas)

- drivers/media/video/samsung/mali/platform/pegasus-m400/mali_platform.c:
  Restored stock GPU voltages, in order to resolve stability issues and graphical glitches on some     devices

- Jump to main kernel 3.0.50 version - used patches from Simone201 and ptmr3 source trees

- drivers/staging/android/binder.c
  Allow using highmem for binder buffers to avoid allocating tasks on lowmem that can be useful   for other entries - Arve Hjønnevåg

- drivers/staging/android/binder.c
  Fixed two possible checkpatch issues in binder.c - CruzBishop

- drivers/staging/android/binder.h
  Avoid using camelcase in binder.h - CruzBishop

- Add frandom(/dev/frandom) -Fast kernel number generator - credits simone201

- drivers/mmc/core/host.c
  Noticed a workqueue overload, battery lasting less, and Android OS showing up at the top as result.     Tracing showed that mmc_host_clk_gate_work was one of the runqueues called regularly in the  background.

- include/linux/sched.h
- kernel/sched.c
  In order to save power, it would be useful to schedule light weight work on cpus that aren't IDLE  instead of waking up an IDLE one.

- kernel/hrtimer.c
- kernel/timer.c
  No need to call idle_cpu() twice, once from sched_select_non_idle_cpu() and once from timer and  hrtimer before calling get_nohz_timer_target().

SpeedWizz kernel 09/11

Changelogs from version 09/05

- RAMDISK- Introduced new script support totally configurable by using the speedwizz manager application that came with the kernel; all modifications are made on the fly (except for logger, see below)

- RAMDISK- Removed major post-init tweaks previously used, unuseful if we now can configure as we need;

- RAMDISK- Added almost 10 scripts (located in res/scripts) that let you select:
                       - Global undervolt for all frequencies, from a -27 mV value up to -112 mV;
                       - Optimization tweaks for PegasusQ governor (credits ACR101);
                       - Activate/deactivate touchboost daemon and, if selected, let decide wich frequency to                            use;
                       - Option to enable/disable logcat (reboot is needed)
                       - Option to enable/disable Gentle fair sleepers for IOsched
                       - Select proper idle state mode.

NOTE: This feature is a work in progress, incomplete and should be consider as a beta state. As side effect the only issue is to make attention to NOT select two options for the same category.
Example: You can't select two different options to Undervolt kernel and  the application (at his actual state) can't prompt on any wrong entry, so be aware of this!
Remember also that all the selected scripts will be moved in init.d folder to execute on startup and the only way to resolve the issue is from a booted and working system.
In extreme case of trouble (freeze at boot, SOD, ecc..) you have only one way: reflash the kernel from recovery and your init.d folder will be resetted at the initial state, letting you to reboot your machine correctly ;)

-  drivers/net/wireless/bcmdhd/dhd_linux.c:
   Fixed a Wifi wakelock - credits PTMR3 and DerTeufel1980

-  arch/arm/mach-exynos/cpufreq-4x12.c:
   Fixed 200mhz undervolt - Wanam;

-  sound/soc/codecs/boeffla_sound.c;
   updated Boefflasound to 1.6.4 - AndiP.

-  drivers/cpufreq/cpufreq_zzmoove.c:
   Updated zzmoove governor to version 0.7d - ZaneZam

- drivers/input/touchscreen/Makefile;   drivers/input/touchscreen/mms152_ts.c;
  drivers/input/touchscreen/touchboost_switch.h   ported AndiP and yank555 touchboost SYSFS interfaces originally from gt i9300 kernel - credits to yank555 e andip for the sources. Driver implementation for gt n7100  by me.

-  GitHub
   Removed the "dirty" tag from the version kernel by updating source BEFORE compilation.

SpeedWizz kernel 09/05

Changelogs from version 09/04

- Custom boot logo;
removed stand alone hotplug policy for classic govs, i noticed that driver's automatic unload/load system is not working properly, causing a conflict when switching trough governors;

- removed ondemand, powersave, userspace, lionheart, conservative govs because without a working hotplug policy they are useless;

- added zzmoove v7 governor;

- added LulzactiveQ governor;

- Restored stock ARM voltage tables and added a configurable sysfs interface - to change the voltage values you can use TricksterMod app or similar like voltage control;

- Bus voltage and GPU voltage are still lowered like in previous version of the kernel.

SpeedWizz kernel 09/04

Changelogs from version 09/03

swicthed back default governor to PegasusQ again (until i find a solution to better optimize the hotplug policy for the others governors, still available for choice)

- workaround to fix most compiler warnings, almost 30 files are fixed til now, and many other require some modification

- Jump to version 3.0.45 - used some patches from simone201

- kernel/sched.c : don't call task_group() many times in set_task_rq(),to improve performance

- kernel/timer.c : Optimise apply_slack() for size and speed

- block/deadline_iosched: tweaked for better performance on android

- Overclocked GPU to 733 mhz and removed 266mhz step

- Removed Andromize application, download from playstore TricksterMod to configure kernel if needed

- Enabled level 0 by default on sched_mc_power_savings to speed things up a bit. To save some battery just create a file named   ".battery"  (without quotes) in /system or /data and reboot the device: kernel at boot will set this parameter to level 2.

SpeedWizz kernel 09/03

Changelogs from version 2.0.0

- Build date for kernel version instead of version number
- Many warning suppressed/fixed for an optimized, clean code
- Linux kernel 3.0.40
- Raised fb-early suspend delay TO 200ms (CRT effect should work properly)
- NO GENTLE FAIR SLEEPERS by default to achieve optimum responsivness, if you see      battery drain just enable by creating a file in /system or /data called ".gfs" and reboot
- Automatically enabled the stand alone hotplug logics ONLY when using standard governor (without an hotplug feature) like onDemand or other
- available governors : Ondemand, adaptive, interactive, conservative, Lionheart (Default), pegasusQ
- Removed the following governors : performance, powersave, userspace
- Tweaked Ondemand governor for performance
- Available I/O schedulers : noop, deadline, row (default), cfq, sio, zen
- proportional rate reduction

SpeedWizz kernel v 2.0.0

Changelogs from version 1.2

- O3 optimizations flag
- Linux kernel 3.0.36
- rewrited init.d support
- Renewed Post-init
- Thunderbolt tweaks
- Sound codecs patched with Boeffla source code
- PegasusQ governor as default patched with the source code from siyah kernel for the GT I9300 (GokhanMoral)
- Read ahead params set to 1024 kb
- I/O tweaks to 1024
- android logger is compiled as a module, user can decide when and if load in to kernel
   Just create an empty file called .logcat in your system directory or data directory, using a root explorer
- support for custom boot animation, either in /data/local or /system/media
- At first boot kernel will push in your system Andromizer free and Boeffla sound applications (free version)
- Revisited Automatic zipallign for all applications in system and data partitions
- Undervolted many source parts and exactly: GPU voltage (-50mv), ARM voltage (-75 mv), Internal Voltage and bus (-50 mv)
- Added Dynamic FSYNCH (Faux source)
- Modified androi/staging/binder.c to prevent some memory leak.
- Raised up random entropy for better smoothness (Googyanas)
- Patched rwsem: steal writing sem for better performance

- Modified mmc: core: Fix possbile memory leak Fix possible memory leak detected by kmemleak

Current kernel features (version 1.0)

- Compiled using Linaro toolchain 4.6.3
- No Ex-Fat support
- Linux kernel 3.0.34
- Exynos exploit official fix
- Many optimization compiler flags
- Sudden Death Syndrome official fix
- Unsecured boot-image
- Used safe initramfs from DXMB2 to avoid EFS corruption
- Raised fb-early suspend delay for crt-off animation support
- full init.d support
- Post-init tweaks for better battery life and performance
- PegasusQ governor as default and tweaked for better performance
- Hardcore's speedmod patch (GT I9300):
- Turned off many logging and tracing
- Read ahead params set to 2048 kb
- I/O tweaks
- Screen sharpness fix
- Optimized GPU DVFS driver
- HmCarbide for his great (but outdated, very sad) script manager.

NOTE: At the end of this page you will find all the older releases of this kernel available for download.

...SpeedWizz Kernel N2 Sources!

Can find them HERE, on my GitHub. Lates commit is the latest build you find in rom!

                                                                  ...and credits for all!

The speedwizz kernel includes many patches from other experienced developers. Keep in mind that ALL commits in my github are already credited in detailed and proper way.
Anyway here is a list of people that i would to thank for their awesome work.

- AndreiLux (for gpucontrols, SDS and exynos exploit fixes)
- DerTeufel1980 (GPU interface on OSRC Update 3 and many fixes)
- GokhanMoral (for PegasusQ governor tweaks and other patches)
- Simone201 (main linux version updating, several patches and boeffla sound control)
- Hardcore (speedmod S3 patches used for my initial kernel releases)
- ptmr3 (for Overclock interface)
- psndna88 (many patches here and there)
- Googy_anas (some ideas and patches)
- AndiP (Boeffla sound mod and application)
- Angelom (my favourite developer)
- Faux123 (dynamic fsynch and many patches)
- FranciscoFranco (main linux kernel patches updates)
- Netharchy (Gpu control)
- Wanam (undervolt interfaces)
- Sakuramilk (for custom boot logo inspiration)
- Pluccio (Tester)
- loudness79 (tester)
- Acr101 (for suggestions across kernel testing and governor tweaks)
- HMCarbide (for his awesome script manager application
- Stratosk (for his customization scripts)
- Sarcastillo (many patches and ideas)
- Chainfire (Superuser and for being God of root)
- Nazar78 (for bootanimation support)

2 commenti:

  1. What best setting for performance n batery life on speedwizz manager?

  2. Sorry lately answering...I can suggest to use it as is. If you are not happy enough, you can try to undervolt, but don't expect miracles. Also you may have instability, doing so.
    Try instead to use zzmoove governor, when turned on you will notice that only one core is used when screen on doing nothing (on default gov - PegasusQ - it will use to use two cores active).