[Xperia Arc Android Development] wedgess:
LuPuS-JB-Kernel

Built with Linaro

LuPuS-PRO-STOCK KERNEL HERE

LuPuS-CM9-KERNEL HERE

This kernel can be used on any JB CM BASED JB 4.1 or 4.2

Disclaimer

[COLOR="DarkOrchid"]#include[/COLOR] [COLOR="Magenta"]<std_disclaimer.h>[/COLOR]
[COLOR="Blue"]/*
* Your warranty is now void.. LOL I guess you knew it already.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, you getting dumped or you getting fired because your phone
* bootloops and alarm does not go off. Please do some research if you have any
* concerns about features included in my kernel before using it! YOU and only
* YOU are choosing to make these modifications.
*/

[COLOR="Magenta"]#ifdef[/COLOR]
You have a [COLOR="DarkGreen"]question[/COLOR] post it in the [COLOR="DarkRed"]thread[/COLOR],
Instead of [COLOR="DarkGreen"]Pm'ing me[/COLOR], as other users may
experience you [COLOR="DarkRed"]problems[/COLOR]
[COLOR="Magenta"]#endif[/COLOR][/COLOR]

What Works --

Wifi - (flash modules)

Data

Everything Else that works on FXP

What doesn't work --

Anything that doesn't work on FXP

Whats included in kernel

Added Governors --

brazillianwax

smartass

Smartassv2

Savagedzen

Smoothass

Scary

InteractiveX

Minmax

Userspace

Intellidemand - Thanks to faux123

This is an intelligent ondemand that enters browsing mode to limit max frequency when GPU is idling,

and (exits browsing mode) behaves like ondemand when GPU is busy; to deliver performance for gaming and such.

Intellidemand does not jump to highest frequency when screen is off.

Lazy - Thanks to Ezekeel

The Idea here is to eliminate any instabilities caused by fast frequency switching by ondemand.

Lazy governor polls more often than ondemand, but changes frequency only after completing min_time_state

on a step overriding sampling interval.

Lazy also has a screenoff_maxfreq parameter which when enabled will cause the governor to always

select the maximum frequency while the screen is off.

Lulzactive - Thanks to Tegrak

Based on Interactive and Smartass. When workload is greater than or equal to 60%, the governor scales up

CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step.

When screen is off, frequency is locked to global scaling minimum frequency

- Superbad

- a "superbad" super smooth rendition of a highly optimized "smartass" governor!

- Darkside

- a "slightly more agressive smart" optimized governor!

-Ondemandx:

Basically an ondemand with suspend/wake profiles. This governor is supposed to be a battery friendly ondemand. When screen is off, max frequency is capped at 500 mhz. Even though ondemand is the default governor in many kernel and is considered safe/stable, the support for ondemand/ondemandX depends on CPU capability to do fast frequency switching which are very low latency frequency transitions. I have read somewhere that the performance of ondemand/ondemandx were significantly varying for different i/o schedulers. This is not true for most of the other governors. I personally feel ondemand/ondemandx goes best with SIO I/O scheduler.

-Lionheart:

Is a conservative-based governor. The tunables (such as the thresholds and sampling rate) were changed so the governor behaves more like the performance one, at the cost of battery as the scaling is very aggressive.

To 'experience' Lionheart using conservative, try these tweaks:

sampling_rate:10000 or 20000 or 50000, whichever you feel is safer. (transition latency of the CPU is something below 10ms/10,000uS hence using 10,000 might not be safe).

up_threshold:60

down_threshold:30

freq_step:5

Lionheart goes well with deadline i/o scheduler. When it comes to smoothness (not considering battery drain), a tuned conservative delivers more as compared to a tuned ondemand.

BadAss Governor:

Badass removes all of this "fast peaking" to the max frequency. Badass will also take the gpu load into consideration. If the gpu is moderately busy it will bypass the above check and clock the cpu with 1024Mhz. If the gpu is crushed under load, badass will lift the restrictions to the cpu.

-

Virtuous

Virtuous is a modded smartassV2 which gives even more battery time then smartassV2:)

Added Io-scheduler --

VR io-scheduler - Unlike other schedulers, synchronous and asynchronous requests are not treated separately,

instead a deadline is imposed for fairness. The next request to be served is based on it's distance from last request.

- SIO - Simple IO-Scheduler-

SIO is the default scheduler in this kernel. It is widely-regarded as the best all-round performing IO scheduler for android. It is low on CPU usage and optimized for flash-based storage. From the creator - "Based on Noop, Deadline and V(R) IO schedulers. This algorithm does not do any kind of sorting, as it is aimed for aleatory access devices, but it does some basic merging. We try to keep minimum overhead to achieve low latencies. Asynchronous and synchronous requests are not treated separately, but we rely on deadlines to ensure fairness."

- BFQ - Budget Fair Queueing IO-Scheduler-

From Creators

- Incresed WiFi-Signal Strength

- Changes to save battery(if it works)

- Make overall kernel smoother

- O/C 2ghz

- Updated and Changed Zram (thanks to faux123)

- Updated and changed LZO compression and decompression = Double increase in performance

- Added Init.d Support

- Added tweaks on boot :)

-Overclocked to 2ghz---

Stable up to 1.9ghz, 2ghz may just reboot device, although I do not recommend O/C for long at high settings,

if you damage your phone I am not responsible

- Supports CIFS

- Built with LINARO

LuPuS MENU

You can run lupus menu from terminal or scriptmanager or similar, you must run as root or script will exit with a message

in terminal

su
lupus

* information is in lupus menu

1/ CIFS Menu *

Enable

Disable

2/ zRam Menu *

Enable

Disable

Set zRam size ( default is 60)

3/ Frandom Menu *

Enable

Disable

4/ USB OTG *

Enable

Disable

5/ Clean and Remove tweaks

Remove init.d's

6/ Tweak Menu

Note all tweaks are preset from here and option to set as init.d's

Clean all temp files

SQLITE optimizations

LMK Optimizations

Network optimizations

Defend against ARP spoofing

Remove android logger

SDcard speed tweak

Flag blocks as non-rotational

7/ Choose Recovery

TWRP

CWM

8/ Performance Menu

Note all options are se by user input from here and option to set as init.d's

Set CPU frequencies

Set Governor

Set IO-Scheduler

Voltage Control

VM tweaks (explained below)

VM Tweaks

dirty ratio and dirty background ratio 1 & 2

This controls how often the kernel writes data to "disk" (in our case the internal microSD system card, not the removable microSD card). When your apps write data to disk, Linux actually doesn't write the data out to the disk right away, it actually writes the stuff to system memory and the kernel handles when and how the data is actually going to be flushed to the disk. These values represent a percentage, the higher the percentage, the longer it waits to flush, the lower the percentage, the more often flushes will occur. Now remember, we are dealing with solid state storage, not the traditional disk platter and spindle. So we are actually able to delay flushes a little longer with solid state versus a traditional hard drive disk.

dirty_expire_centisecs

How old "dirty" data should be before the kernel considers it old enough to be written to disk. It is expressed in 100ths of a second.

dirty_writeback_centisecs

This is the interval of when the writeback daemons periodically wake up and write "old" data out to disk. It is expressed in 100ths of a second.

min free kbytes

This is used to force the Linux VM to keep a minimum number of kilobytes free. The VM uses this number to compute a pages_min value for each lowmem zone in the system. Each lowmem zone gets a number of reserved free pages based proportionally on its size. Default is 2048kb.

overcommit_memory

This controls overcommit of system memory, possibly allowing processes to allocate (but not use) more memory than is actually available.

0 - Heuristic overcommit handling. Obvious overcommits of address space are refused. Used for a typical system. It ensures a seriously wild allocation fails while allowing overcommit to reduce swap usage. root is allowed to allocate slighly more memory in this mode. This is the default.

1 - Always overcommit. Appropriate for some scientific applications.

2 - Don't overcommit. The total address space commit for the system is not permitted to exceed swap plus a configurable percentage (default is 50) of physical RAM. Depending on the percentage you use, in most situations this means a process will not be killed while attempting to use already-allocated memory but will receive errors on memory allocation as appropriate.

Swappiness

A property for the Linux kernel that changes the balance between swapping out runtime memory, as opposed to dropping pages from the system page cache. Swappiness can be set to values between 0 and 100 inclusive. A low value means the kernel will try to avoid swapping as much as possible where a higher value instead will make the kernel aggressively try to use swap space.

VFS Cache Pressure

File system cache (dentry/inode) is really more important than the block cache above in dirty ratio and dirty background ratio, so we really want the kernel to use up much more of the RAM for file system cache, this will increas the performance of the system without sacrificing performance at the application level. The default value is 100, as a percentage, and what you want to do is lower the value to tell the kernel to favor the file system cache and not drop them aggressively.

I would like to say a big thanks to -

FXP

- Sources/help with wifi (thanks Jerpelea)

Cyanogenmod

- Sources

Dympy

- For helping me test alot :)

Dexmorr

- testing

tempest918

- For the New Logo

DooMLoRD - for patches and all the work he has done for Xpeeria's

xeozus

NobodyAtAll

Faux123

Erasmus

Leedroid

Jerpelea

Phil3795

CTCaer

Anyone missing please PM me

LuPuS-jB sources -b jellybean

https://github.com/garwedgess/semc-kernel-msm7x30

CWM source -- https://github.com/garwedgess/android_bootable_recovery -b lupus-cwm