[Kernel]Skyrocket[2.6.35.14](010)OC~1.73GHz/GPU OC/OTG/UV/SLQB/BLN[Mar-09]

Search This thread

faux123

Senior Member
Dec 16, 2010
8,536
34,426
West Los Angeles
www.canonspike.com
NOTICE: This is COMPATIBLE with ALL Samsung Rooted Stock and Custom ROMs

For frequency control use fauxclock from Google Play

Just a statement regarding kernel source: The Kernel Source is of course covered under GPL version 2. Free software does NOT mean no work or time was spent working on it. I have donated a large sum of my free time to hack this kernel. If you use my modified kernel source in parts or in its entirety, I kindly ask you mention its origins and to send me a github pull request or PM whenever you find bugs or think you can help improve my kernel hack further. This way the entire community will truly benefit from the spirit of open source. Thank you!


Hi XDA members and fellow Samsung users:

This is my sixteenth kernel hack. I want to thank my Team Kang tea mates Roman, Whitehawks and CMenard, and several others I cannot recall for inspiring me to venture into this unfamiliar territory for me.

What is a Kernel? The Kernel is the Foundation in which everything else builds upon in any software system.
[Car Analogy]: Kernel is like the Engine, Electrical system and the Transmission to a car. The Library, Framework and the Apps [AKA ROM] are the body frame and the rest of the Car.



THIS KERNEL is BASED ON Samsung Source Code. So it is COMPATIBLE ONLY WITH Samsung Gingerbread Builds.

Please DO NOT use any task killers, they DO NOT improve performance nor battery life. They INTERFERE with your phone's stability (more crashes) and App compatibilities (Forced Close).


CleanCache (via ZCache backend)

ZCACHE is a new technology I introduced to Qualcomm Kernel. ZCACHE is a compressed cache similar to ZRAM but the similarity ends there. ZCache is meant to provide as many "cleancache" pages (non-dirty or untouched "virgin" memory) to apps that request for new memory. CleanCache is very easy to allocate and no additional penalty are required to hand them out, so having more CleanCache pages will improve performance. Under heavy memory pressure, often times the kernel will NOT have enough CleanCache pages, so the kernel has to do EXTRA work to reclaim dirty cache pages and clean them for the new apps that's requesting for them. The described process creates a performance hit for the kernel and the app, so the idea is to use compression to create more CleanCache pages available for use. Of course there's a penalty to pay for using compression, but the trade-off between compression penalty and the penalty for reclaiming dirty cache pages and allocating them after cleaning is smaller for compression, so in the end, CleanCache should add more performance.

ZRAM (aka CompCache aka RAMZSwap)

ZRAM is an updated version formally known as CompCache and RAMZSwap. It was originally designed for 2.6.38.xx kernels, I have backported to our 2.6.35.xx kernel. ZRAM allows real-time compression of memory objects in RAM thus reducing memory pressure for the Linux kernel and can keep more apps in memory longer (more apps in RAM == better performance, less fetching from slower MMC or SDCard). Compression, however, is not Free. Some CPU cycles are required to do the compress/decompression, so there's a slight penalty for it. The original CompCache / RAMZSwap required a user space binary to control its behavior which adds additional penalty to performance, but the new version ZRAM eliminated the need for a separate dedicated daemon, thus reducing the overhead and increased performance from the old CompCache by 20%. Therefore, with the newer implementation of ZRAM interface, the performance penalty is almost negligible. :D

Joe's RCU (Optimized for Small SMP systems - NOT YET ADDED)

Joe Korty has created an RCU for small SMP systems (> 32 cores). His approach is to isolate all the Garbage Collection (GC, a slow time consuming but necessary processing) to a single core, thus allowing other cores to ONLY work on real required processing. This will allow the additional cores to complete their assigned tasks as fast as possible (not bogged down by GC) then immediately go back to a suspended state (saving battery).

Fast No Hz RCU (Optimized for SMP operations)

Fast NoHz is an optimized version of the traditional Tree RCU. Many new kernels are using the Tickless NoHz design. This RCU is tailored and designed to work with the new NoHz kernel system.

SmartAssV2 Governor (Balanced - NOT COMPATIBLE WITH QUALCOMM 8x60)

This governor has a built-in "profile" similar to SetCPU, so screen off will use lower clock rate thus conserve more battery, but it also has a fast wake up feature so that user interaction will not see the lag when switching from Sleep to Wake state.... (So SetCPU Profiles are sorta redundant when using this governor, you can still use SetCPU to OC to higher than default Clock frequency).

Interactive Governor (Performance - NOT COMPATIBLE WITH QUALCOMM 8x60)

This governor is designed to put more priority to User Interface (UI aka Apps) tasks, therefore appears more responsive then the traditional OnDemand governor. So if you want the smoothest UI interaction, this governor is for you...

Brain F*ck Scheduler - (BFS - NOT COMPATIBLE WITH QUALCOMM 8x60)

This scheduler is designed to be simple and speedy tailor specifically for user interface type systems such as desktop/smart phone devices where user interaction is MORE important than serving 1 million web requests (CFS, the default scheduler) at the same time (think of nimble desktop workstations vs large corporate servers).

SLQB - (SLAB allocator with Queue)

This memory allocator is designed for small number of CPUs system (such as desktop or smart phone devices). This allocator is design to be simple and it is optimized for using order-0 pages as much as possible (order-0 pages are the simplest therefore quickest type of memory in a Linux system to allocate). Not all kernels are using SLQB including CM7 main line...

Fair Budget Queue (BFQ I/O scheduler)

This I/O scheduler is an improvement on top of Completely Fair Queue (CFQ). CFQ is fair in terms of time but not in terms of throughput / bandwidth, so BFQ make sure that both time and throughput / bandwidth are balanced across all requests.


Installation Instructions:

Here's a step by step instruction to install this kernel:

[ CFS ] (Mainline Edition - should work with ALL phones!)
The File ==> Skyrocket kernel 010m (1.73 GHz, L2 speed up to 1.56 GHz) <==

[ CFS ] (Ultimate Edition - should work with most phones but NOT GUARANTEED!)
The File ==> Skyrocket kernel 010u (1.73 GHz, L2 speed up to 1.56 GHz, GPU 3D @ 320 MHz, GPU 2D @ 220 MHz, CleanCache Enabled) <==


1. download the above file (via phone directly or to a PC)
2. copy the downloaded zip file to /sdcard/download/
3. Open ROM Manager and select "Reboot into Recovery" and select "OK"
4. Once in recovery, select "wipe cache partition", select "Yes", then select "advanced", then select "Wipe Dalvik Cache", then select "Yes" again. Once finished, click the back button to go back to the main recovery menu. On that menu, select "Install Zip From SDCad", then select "Choose zip from SDCard", then go to /sdcard/download and select the downloaded zip file and let it run its script.
5. Once the script is done, select "reboot system now"


Note: After FLASHING, the first reboot may take longer than usual, please be patient... After the first reboot, it may lag during initial load (let everything finish loading). Once everything is loaded and phone is ready for use, reboot the phone a 2nd time and the lag will be gone and everything should be silky smooth... [/b]

[ Advanced Users: ]

[ Optional: ]

[ For Kernel Devlopers ONLY: ]

The File ==> My Global VDD_TABLE for under volt patch <==


Optional Under voltage:

Code:
[ to over volt ALL frequencies by 25000 uv (microvolts) ]
echo "+25000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
[ to under volt ALL frequencies by 25000 uv (microvolts) ]
echo "-25000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels

[ to set a specific frequency (ie 1.18 GHz)
  with a specific voltage (ie 1.0875 volts) ]
echo "1188000 1087500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
CPU Frequency Voltage Table Example
Code:
  192000:   812500
  310500:   812500
  384000:   812500
  432000:   812500
  486000:   837500
  540000:   850000
  594000:   862500
  648000:   875000
  702000:   900000
  756000:   925000
  810000:   937500
  864000:   962500
  918000:   962500
  972000:   962500
1026000:   975000
1080000:   987500
1134000:  1000000
1188000:  1012500
1242000:  1025000
1296000:  1050000
1350000:  1075000
1404000:  1100000
1458000:  1112500
1512000:  1125000
1566000:  1150000

Optional: Stock Clock Frequencies for Dual CPUs
Code:
su
echo 192000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
echo 1188000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq

echo 1 > /sys/devices/system/cpu/cpu1/cpufreq/online
echo 192000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
echo 1188000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq

NEWS BULLETIN:

Version 010 is OUT for skyrocket variant!

Please don't hesitate to talk among yourselves and help each other out... The XDA community is what inspired me to hack kernels for everyone since everyone here is nice and helpful to each other... Keep helping each other.... Famous proverb: It's better to give than to receive...

BUGS:

Not All CHIPS ARE CREATED EQUAL


TO DO:

version 1.x.x -- Haven't thought about it yet...

History:

See Post below...

Standard Disclaimer: Not responsible for bricking your phone, voiding your warranty, or any other pain or suffering you may feel as result of using this kernel!!!

My github Complying with GPL and XDA rulez :D

Follow me on :

If you find this Kernel useful, feel free to hit the [Thanks] button below
 
Last edited:

faux123

Senior Member
Dec 16, 2010
8,536
34,426
West Los Angeles
www.canonspike.com
Version History

Version 001 (Deprecated)

internal

Version 002 (Deprecated)

internal

Version 003 (Deprecated)

Overclocking: reduced max to 1.728 GHz due to PLL limitations
Overclock: Initial overclock patch
Added Global CPU Voltage table used for adjusting voltage table
Added Scaling_Available_Frequencies back to cpufreq sysfs interface
mm: retry page fault when blocking on disk transfer
PM / Sleep: Drop pm_op() and pm_noirq_op()
PM / Sleep: Unify diagnostic messages from device suspend/resume
sched/rt: code cleanup, remove a redundant function call
ARM: Add optimised swahb32() byteswap helper for v6 and above
hugetlb: Replace BUG() with BUILD_BUG() for dummy definitions.
kernel.h: Add BUILD_BUG() macro.
nfs: writeback pages wait queue
block: limit default readahead size for small devices
PM / Suspend: Fix bug in suspend statistics update
make default readahead size a kernel parameter
tty: disable kernel CIQ tty driver
mm/vmalloc.c: eliminate extra loop in pcpu_get_vm_areas error path
PM / Sleep: Remove pm_runtime_suspended() from __pm_generic_call()
lockdep: print lock name for lockdep_init_error
init/main.c: execute lockdep_init as early as possible
kernel:sched: LOAD_FREQ (4*HZ+61) avoids loadavg Moire
sched: don't call task_group() many times in set_task_rq()
dm-cache: block level disk cache target for device mapper
partition_sched_domains: Do not destroy old sched domain on cpu_up
sched: Do not block when waiting to free old root domain
rcu-tree: Check for extended quiescent state at start of gp
printk: Don't allow cpu to get console lock during hotplugging
cpu-hotplug: Add the function 'cpu_hotplug_inprogress'
msm: platsmp: Remove extraneous boot_secondary delay
CPU hotplug, PM: Remove unused symbol 'suspend_cpu_hotplug'
kernel: Set the command name of the idle tasks in SMP kernels v3
net: Reorder incoming packets in PPPoLAC and PPPoPNS.
PM: wakelocks: Display wakelocks preventing suspend by default
PM: wakelocks: Don't report wake up wakelock if suspend aborted
arm: Implement ticket spin-locks
Decompressors: Get rid of set_error_fn() macro
ARM: 6428/1: add cpu_idle_wait() to support CPUidle on SMP systems.
msm: Kconfig: Enable inline lock functions
crypto: crc32c should use library implementation
crc32: Bolt on crc32c
crc32-add-slicing-by-8.diff
crc32-add-real-8-bit.diff
lib/sha1: use the git implementation of SHA-1
ARM: support XZ compressed kernels
Squashfs: Add XZ compression configuration option
Squashfs: add XZ compression support
decompressors: add boot-time XZ support
decompressors: add XZ decompressor module
CFS Auto Group V2 - Changes since last:
Added NEON and other Snapdragon optimizations
compilation: fix many Samsung sloppy coding warnings (part 1)
patch: Add BFQ I/O scheduler by Paolo Valente
patch: add SLQB memory allocator by Nick Piggin
kernel patch: 2.6.35.13 -> 2.6.35.14
make: fix Kconfig errors by Samsung
kernel patch: 2.6.35.12 -> 2.6.35.13
kernel patch: 2.6.35.11 -> 2.6.35.12
Initial Commit for T-Mo Hercules!

Version 004 (deprecated)

fail!

Version 005 (deprecated)

re-baseline using Romanbb's initial commit to resolve compilation issues and problems.
all patches from version 003 still apply!

Version 006 (deprecated)

board/device: Add GPU turbo boost for 2D as well
watchdog: increase pet time to ten seconds
board/devices: enable GPU turbo mode @ 320 Mhz
OTG: Fix fast plug out/in wall charger charging issue
gadget: f_mtp: Fix problems transferring files from device to host
gadget: f_mtp: Make sure request is dequeued if transfer is canceled
gadget: f_mtp: Zero length packet fixes
gadget: f_mtp: Support for file transfer length greater than 4 gigabytes
gadget: f_mtp: Return zero result for successful file transfer.
gadget: f_mtp: MTP driver cleanup:
msm_otg: Increment PM usage counter for suspend failure cases
defconfig: 8x60: Enable USB accessory function
gadget: android: Restore default composition upon accessory disable
gadget: f_accessory: Set bNumEndpoints to correct value of 2
gadget: f_accessory: Add string for accessory's unique serial number
gadget: f_accessory: Clear disconnected flag when driver file is opened
gadget: f_accessory: Clear previous strings on ACCESSORY_GET_PROTOCOL
gadget: f_accessory: Clear accessory strings when USB is disconnected
gadget: f_accessory: Misc improvements and cleanup:
gadget: f_accessory: New gadget driver for android USB accesories
gadget: android: Support switching vendor ID when configuration changes
audio: qdsp6v2: Modify the wait timer for apr registration
audio: qdsp6v2: Reduce the pcm write timeout value
audio: qdsp6v2: Fix crash with erroneous aac playback
audio: qdsp6v2: Send session ID in RTAC APR packet
audio: qdsp6v2: Disable idle wakelocks for pcm driver
audio: qdsp6v2: Fix for enabling dolby aac decoder.
audio: qdsp6v2: Unification changes for AAC Multichannel decoder
audio: qdsp6v2: Add Decoder Unification changes.
audio: qdsp6v2: Enabling Dolby pulse aac codec.
audio: qdsp6v2: Add fmt type adif in aac driver.
audio: qdsp6v2: Add support for aac dual mono playback
audio: qdsp6v2: Address multiple seek issues in AAC 5.1
audio: qdsp6v2: Add support for multichannel AAC.
audio: qdsp6v2: Add support for output port flush
audio: qdsp6v2: correction in allocation of number of dma_channels.
camera: configure the mipi csi based on lanecount
camera: Postprocessing framework changes
camera: Fix recording state machine bug
camera: Remove additional check in msm_queue_drain
rpc: While powering down flush all the rpcrouter workqueues
rpc: Reader thread to allocate memory without holding a spinlock
rpc: Reorganize the usage of spinlocks in RPC Router reader thread
smd_pkt: Extend read operation to receive data larger than SMD FIFO
gsmd: Save interrupt state when using spinlocks
audio: qdsp6v2: Close smd ports upon failure to open.
msm_fb/hdmi: fixed merge error
HDMI: EDID > 2 blocks, params not set.
msm_fb: Check for ACP and ACFG register before reset core.
HDMI: CEC: Hardware FSM reset.
msm_fb: Remove Audio Packet Control Register setup
HDMI: Driver support for CEC feature
HDMI: Driver support for CEC feature
HDMI: Remove audio packet setup for ACP, ISRC
rtc-msm: Fix uptime corruption due to slow clock overflow.
msm_serial_hs: Fix issue related to sleeping in invalid context
msm_serial_hs_lite: Set UART Clock rate to zero, when it is disable
tsens: Add suspend/resume for TSENS
kgsl: New low power level
kgsl: Count a percentage of _io time
kgsl: Clocks should be set to the active level during NAP
kgsl: Add a periodic check to turn the TZ algorithm on
kgsl: Update pwrlevel_change
input/keyboard: add BLN support

Version 007 (deprecated)

video/msm/mdp: update mdp driver from ATT SkyRocket Source
msm_fb: Removing HDCP timedout error.
msm_fb: Fixing Aspect Ratio
thermal: msm_tsens: Fix clearing interrupt bit on resume
msm: sdio: Replace banned/deprecated strcmp with strncmp
mmc: msm_sdcc: use prog_done for all commands having R1B response type
msm: vidc: Fix handling EOS with bitstream error.
staging: zcache: remove zcache_direct_reclaim_lock
staging: zcache: reduce tmem bucket lock contention
staging: zcache: fix crash on cpu remove
staging: zcache: fix cleancache crash
Staging: zcache: signedness bug in tmem_get()
staging: zcache: fix crash on high memory swap
staging: zcache: fix typos
staging: zcache: fix possible sleep under lock
zcache: Fix build error when sysfs is not defined
zcache: Use div_u64 for 64-bit division
staging: zcache: include module.h for MODULE_LICENSE
staging: zcache: module is GPL
staging: fix zcache building
staging: zcache: support multiple clients, prep for KVM and RAMster
staging: zcache: fix memory leak
staging: Allow sharing xvmalloc for zram and zcache
zram: Set initial disksize to some default value
zram: Simplify zram disk resizing interface
zram: Make gobal variables use unique names
zram: Kernel config option for number of devices
zram: Fix sparse warnings
zram: driver update to latest stable release on 2011-07-18
kernel:mm: Backported vzalloc to support ZRAM
Staging: zram: simplify zram_make_request
Staging: zram: make zram_read return a bio error if the device is not
initialized
Staging: zram: round up the disk size provided by user
Staging: zram: make ZRAM depends on SYSFS
zram: various improvements and cleanups
zram: Rename ramzswap to zram in documentation
zram: Rename ramzswap to zram in code
zram: Rename ramzswap files to zram
zram: Support generic I/O requests
staging:zcache: Enable zcache by default
drivers/staging: zcache: dynamic page cache/swap compression

Version 008 (Deprecated)

Update baseline source code with Skyrocket specific bits from ATT SkyRocket Source Release

Version 009 (Short Term Release)

[ CFS ] (Mainline Edition - should work with ALL phones!)
The File ==> Skyrocket kernel 009m (1.73 GHz, L2 speed up to 1.56 GHz) <==

[ CFS ] (Ultimate Edition - should work with most phones but NOT GUARANTEED!)
The File ==> Skyrocket kernel 009u_r2 (1.73 GHz, L2 speed up to 1.56 GHz, GPU 3D @ 320 MHz, GPU 2D @ 220 MHz) <==

mmc: core: Prevent too long response times for suspend
msm_fb: [HDMI_COMPLIANCE] Update audio ARCs for 480p
msm: audio: qdsp6v2: Fix memory leak in aac encoder
mm-camera: configure the mipi csi based on lanecount
RCU: JRCU 2.6.35.13, consolidated
Reverted battery draining patches

Version 010 (Current)

Fixed USB Host Notification for Skyrocket (not supported)
Remove Android USB Gadget Accessory for Skyrocket (not supported)
msm: vidc: Remove endianness change for 1080p firmware. …
vidc: 1080p: Increase context memory size of the H.264 encoder. …

zcache: avoid AB-BA deadlock condition …
msm_fb: HDMI-CEC: Line latch patch …
msm: camera: Free buffers from frame queue at open …
msm: vidc: insert break in switch-case statement …
msm: camera: Update csi interrupt trigger conditon …
msm: vidc: Remove endianness change for 1080p firmware. …
vidc: 1080p: Increase context memory size of the H.264 encoder. …
msm: qdsp6v2: Invalid memory access of timpani regset array …
sched: disable GENTLTE_FAIR_SLEEPERS for better performance on Android
revert back to FasNoHz RCU
Skyrocket Source Update: Add debug switch to board PM
Skyrocket Source Update: misc board driver updates
Skyrocket Source Update: regulator driver update
Skyrocket Source Update: misc minor driver clean ups
Skyrocket Source Update: Make CIQ a standalone option so it can be di…
Skyrocket Source Update: Update Headset Jack detection driver
Skyrocket Source Update: Update CHARM Modem Interface driver
Skyrocket Source Update: Update battery driver
Skyrocket Source Update: Update GPIO driver
Skyrocket Source Update: update misc USB drivers
Skyrocket Source Update: Update Timpani Profiles for Skyrocket and He…
Skyrocket Source Update: Update Touch Screen Driver
Skyrocket Source Update: Update Power Supply Driver to fix DDR issues
Skyrocket Source Update: Update Camera Media driver
Skyrocket Source Update: Add Samsung BT WL keyboard support
Skyrocket Source Update: Update BRCM WiFi driver
Skyrocket Source Update: Update Misc HDMI and Video drivers
Skyrocket Source Update: Update LowMemoryKiller OOM_Adj settings
Skyrocket Source Update: Add Smart Dimming
Skyrocket Source Update: Add suspend_sys_sync to kernel power management
 
Last edited:

appdroid

Senior Member
Oct 25, 2011
2,565
4,266
Chicago
Yes finally going official! People go ahead and give it try its great kernel. Nothing to worry about. battery life is great too.
 

Treatcon

Senior Member
Apr 6, 2010
794
173
Austin, TX
Samsung Galaxy S21 Ultra
Thank you Faux!!

Is GideonX's script compatible with the SkyRocket as well?

Some benchmarks I ran using this kernel from the T989 Herc.

2005.jpeg

This image has been resized, click here to see the fullsize original :eek:

2006.jpeg

This image has been resized, click here to see the fullsize original :cool:

Loving this kernel, doing a little stress testing for under volting. Not bad benchmarks! :eek: UV to -100000 across the board with GideonX script and managed to keep the same benchmark scores, +/- 10 or so.
 

tacotino

Senior Member
Mar 21, 2011
842
155
Thanks again for the help!!!!! And for all the haters now feel the love

Monster cm7
 

nick34609

Senior Member
Feb 17, 2011
195
27
spring hill
Great to have you on board. You did great things back when I had the mt4g. Always very involved.

Sent from my SAMSUNG-SGH-I727 using Tapatalk
 

the2rrell

Senior Member
Jun 27, 2011
2,928
610
thanks for all work and the new betas faux, appreciate the time bruh.

So far this Kernel is the best one i have seen on battery with OC'ing.
 
Last edited:

ruebarb

Senior Member
Oct 13, 2007
138
59
Awesome, thanks for developing this. Will check out the otg tonight, a feature I was longing to have on an OC Kernel.
 

dvandam

Senior Member
Aug 11, 2010
307
24
How's the battery life with this Kernel? Does anyone see any problems installing this with the Super Stock 2.3.6 ROM?
 

SalTNutz

Senior Member
Dec 2, 2011
123
12
He listed it in his post on the first page.

---------- Post added at 04:43 PM ---------- Previous post was at 04:42 PM ----------

Im pretty sure it does not have this option........

From his post


SmartAssV2 Governor (Balanced)

This governor has a built-in "profile" similar to SetCPU, so screen off will use lower clock rate thus conserve more battery, but it also has a fast wake up feature so that user interaction will not see the lag when switching from Sleep to Wake state.... (So SetCPU Profiles are sorta redundant when using this governor, you can still use SetCPU to OC to higher than default Clock frequency).
 

Top Liked Posts

  • There are no posts matching your filters.
  • 127
    NOTICE: This is COMPATIBLE with ALL Samsung Rooted Stock and Custom ROMs

    For frequency control use fauxclock from Google Play

    Just a statement regarding kernel source: The Kernel Source is of course covered under GPL version 2. Free software does NOT mean no work or time was spent working on it. I have donated a large sum of my free time to hack this kernel. If you use my modified kernel source in parts or in its entirety, I kindly ask you mention its origins and to send me a github pull request or PM whenever you find bugs or think you can help improve my kernel hack further. This way the entire community will truly benefit from the spirit of open source. Thank you!


    Hi XDA members and fellow Samsung users:

    This is my sixteenth kernel hack. I want to thank my Team Kang tea mates Roman, Whitehawks and CMenard, and several others I cannot recall for inspiring me to venture into this unfamiliar territory for me.

    What is a Kernel? The Kernel is the Foundation in which everything else builds upon in any software system.
    [Car Analogy]: Kernel is like the Engine, Electrical system and the Transmission to a car. The Library, Framework and the Apps [AKA ROM] are the body frame and the rest of the Car.



    THIS KERNEL is BASED ON Samsung Source Code. So it is COMPATIBLE ONLY WITH Samsung Gingerbread Builds.

    Please DO NOT use any task killers, they DO NOT improve performance nor battery life. They INTERFERE with your phone's stability (more crashes) and App compatibilities (Forced Close).


    CleanCache (via ZCache backend)

    ZCACHE is a new technology I introduced to Qualcomm Kernel. ZCACHE is a compressed cache similar to ZRAM but the similarity ends there. ZCache is meant to provide as many "cleancache" pages (non-dirty or untouched "virgin" memory) to apps that request for new memory. CleanCache is very easy to allocate and no additional penalty are required to hand them out, so having more CleanCache pages will improve performance. Under heavy memory pressure, often times the kernel will NOT have enough CleanCache pages, so the kernel has to do EXTRA work to reclaim dirty cache pages and clean them for the new apps that's requesting for them. The described process creates a performance hit for the kernel and the app, so the idea is to use compression to create more CleanCache pages available for use. Of course there's a penalty to pay for using compression, but the trade-off between compression penalty and the penalty for reclaiming dirty cache pages and allocating them after cleaning is smaller for compression, so in the end, CleanCache should add more performance.

    ZRAM (aka CompCache aka RAMZSwap)

    ZRAM is an updated version formally known as CompCache and RAMZSwap. It was originally designed for 2.6.38.xx kernels, I have backported to our 2.6.35.xx kernel. ZRAM allows real-time compression of memory objects in RAM thus reducing memory pressure for the Linux kernel and can keep more apps in memory longer (more apps in RAM == better performance, less fetching from slower MMC or SDCard). Compression, however, is not Free. Some CPU cycles are required to do the compress/decompression, so there's a slight penalty for it. The original CompCache / RAMZSwap required a user space binary to control its behavior which adds additional penalty to performance, but the new version ZRAM eliminated the need for a separate dedicated daemon, thus reducing the overhead and increased performance from the old CompCache by 20%. Therefore, with the newer implementation of ZRAM interface, the performance penalty is almost negligible. :D

    Joe's RCU (Optimized for Small SMP systems - NOT YET ADDED)

    Joe Korty has created an RCU for small SMP systems (> 32 cores). His approach is to isolate all the Garbage Collection (GC, a slow time consuming but necessary processing) to a single core, thus allowing other cores to ONLY work on real required processing. This will allow the additional cores to complete their assigned tasks as fast as possible (not bogged down by GC) then immediately go back to a suspended state (saving battery).

    Fast No Hz RCU (Optimized for SMP operations)

    Fast NoHz is an optimized version of the traditional Tree RCU. Many new kernels are using the Tickless NoHz design. This RCU is tailored and designed to work with the new NoHz kernel system.

    SmartAssV2 Governor (Balanced - NOT COMPATIBLE WITH QUALCOMM 8x60)

    This governor has a built-in "profile" similar to SetCPU, so screen off will use lower clock rate thus conserve more battery, but it also has a fast wake up feature so that user interaction will not see the lag when switching from Sleep to Wake state.... (So SetCPU Profiles are sorta redundant when using this governor, you can still use SetCPU to OC to higher than default Clock frequency).

    Interactive Governor (Performance - NOT COMPATIBLE WITH QUALCOMM 8x60)

    This governor is designed to put more priority to User Interface (UI aka Apps) tasks, therefore appears more responsive then the traditional OnDemand governor. So if you want the smoothest UI interaction, this governor is for you...

    Brain F*ck Scheduler - (BFS - NOT COMPATIBLE WITH QUALCOMM 8x60)

    This scheduler is designed to be simple and speedy tailor specifically for user interface type systems such as desktop/smart phone devices where user interaction is MORE important than serving 1 million web requests (CFS, the default scheduler) at the same time (think of nimble desktop workstations vs large corporate servers).

    SLQB - (SLAB allocator with Queue)

    This memory allocator is designed for small number of CPUs system (such as desktop or smart phone devices). This allocator is design to be simple and it is optimized for using order-0 pages as much as possible (order-0 pages are the simplest therefore quickest type of memory in a Linux system to allocate). Not all kernels are using SLQB including CM7 main line...

    Fair Budget Queue (BFQ I/O scheduler)

    This I/O scheduler is an improvement on top of Completely Fair Queue (CFQ). CFQ is fair in terms of time but not in terms of throughput / bandwidth, so BFQ make sure that both time and throughput / bandwidth are balanced across all requests.


    Installation Instructions:

    Here's a step by step instruction to install this kernel:

    [ CFS ] (Mainline Edition - should work with ALL phones!)
    The File ==> Skyrocket kernel 010m (1.73 GHz, L2 speed up to 1.56 GHz) <==

    [ CFS ] (Ultimate Edition - should work with most phones but NOT GUARANTEED!)
    The File ==> Skyrocket kernel 010u (1.73 GHz, L2 speed up to 1.56 GHz, GPU 3D @ 320 MHz, GPU 2D @ 220 MHz, CleanCache Enabled) <==


    1. download the above file (via phone directly or to a PC)
    2. copy the downloaded zip file to /sdcard/download/
    3. Open ROM Manager and select "Reboot into Recovery" and select "OK"
    4. Once in recovery, select "wipe cache partition", select "Yes", then select "advanced", then select "Wipe Dalvik Cache", then select "Yes" again. Once finished, click the back button to go back to the main recovery menu. On that menu, select "Install Zip From SDCad", then select "Choose zip from SDCard", then go to /sdcard/download and select the downloaded zip file and let it run its script.
    5. Once the script is done, select "reboot system now"


    Note: After FLASHING, the first reboot may take longer than usual, please be patient... After the first reboot, it may lag during initial load (let everything finish loading). Once everything is loaded and phone is ready for use, reboot the phone a 2nd time and the lag will be gone and everything should be silky smooth... [/b]

    [ Advanced Users: ]

    [ Optional: ]

    [ For Kernel Devlopers ONLY: ]

    The File ==> My Global VDD_TABLE for under volt patch <==


    Optional Under voltage:

    Code:
    [ to over volt ALL frequencies by 25000 uv (microvolts) ]
    echo "+25000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
    [ to under volt ALL frequencies by 25000 uv (microvolts) ]
    echo "-25000" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
    
    [ to set a specific frequency (ie 1.18 GHz)
      with a specific voltage (ie 1.0875 volts) ]
    echo "1188000 1087500" > /sys/devices/system/cpu/cpufreq/vdd_table/vdd_levels
    CPU Frequency Voltage Table Example
    Code:
      192000:   812500
      310500:   812500
      384000:   812500
      432000:   812500
      486000:   837500
      540000:   850000
      594000:   862500
      648000:   875000
      702000:   900000
      756000:   925000
      810000:   937500
      864000:   962500
      918000:   962500
      972000:   962500
    1026000:   975000
    1080000:   987500
    1134000:  1000000
    1188000:  1012500
    1242000:  1025000
    1296000:  1050000
    1350000:  1075000
    1404000:  1100000
    1458000:  1112500
    1512000:  1125000
    1566000:  1150000

    Optional: Stock Clock Frequencies for Dual CPUs
    Code:
    su
    echo 192000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
    echo 1188000 > /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq
    
    echo 1 > /sys/devices/system/cpu/cpu1/cpufreq/online
    echo 192000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_min_freq
    echo 1188000 > /sys/devices/system/cpu/cpu1/cpufreq/scaling_max_freq

    NEWS BULLETIN:

    Version 010 is OUT for skyrocket variant!

    Please don't hesitate to talk among yourselves and help each other out... The XDA community is what inspired me to hack kernels for everyone since everyone here is nice and helpful to each other... Keep helping each other.... Famous proverb: It's better to give than to receive...

    BUGS:

    Not All CHIPS ARE CREATED EQUAL


    TO DO:

    version 1.x.x -- Haven't thought about it yet...

    History:

    See Post below...

    Standard Disclaimer: Not responsible for bricking your phone, voiding your warranty, or any other pain or suffering you may feel as result of using this kernel!!!

    My github Complying with GPL and XDA rulez :D

    Follow me on :

    If you find this Kernel useful, feel free to hit the [Thanks] button below
    26
    Version History

    Version 001 (Deprecated)

    internal

    Version 002 (Deprecated)

    internal

    Version 003 (Deprecated)

    Overclocking: reduced max to 1.728 GHz due to PLL limitations
    Overclock: Initial overclock patch
    Added Global CPU Voltage table used for adjusting voltage table
    Added Scaling_Available_Frequencies back to cpufreq sysfs interface
    mm: retry page fault when blocking on disk transfer
    PM / Sleep: Drop pm_op() and pm_noirq_op()
    PM / Sleep: Unify diagnostic messages from device suspend/resume
    sched/rt: code cleanup, remove a redundant function call
    ARM: Add optimised swahb32() byteswap helper for v6 and above
    hugetlb: Replace BUG() with BUILD_BUG() for dummy definitions.
    kernel.h: Add BUILD_BUG() macro.
    nfs: writeback pages wait queue
    block: limit default readahead size for small devices
    PM / Suspend: Fix bug in suspend statistics update
    make default readahead size a kernel parameter
    tty: disable kernel CIQ tty driver
    mm/vmalloc.c: eliminate extra loop in pcpu_get_vm_areas error path
    PM / Sleep: Remove pm_runtime_suspended() from __pm_generic_call()
    lockdep: print lock name for lockdep_init_error
    init/main.c: execute lockdep_init as early as possible
    kernel:sched: LOAD_FREQ (4*HZ+61) avoids loadavg Moire
    sched: don't call task_group() many times in set_task_rq()
    dm-cache: block level disk cache target for device mapper
    partition_sched_domains: Do not destroy old sched domain on cpu_up
    sched: Do not block when waiting to free old root domain
    rcu-tree: Check for extended quiescent state at start of gp
    printk: Don't allow cpu to get console lock during hotplugging
    cpu-hotplug: Add the function 'cpu_hotplug_inprogress'
    msm: platsmp: Remove extraneous boot_secondary delay
    CPU hotplug, PM: Remove unused symbol 'suspend_cpu_hotplug'
    kernel: Set the command name of the idle tasks in SMP kernels v3
    net: Reorder incoming packets in PPPoLAC and PPPoPNS.
    PM: wakelocks: Display wakelocks preventing suspend by default
    PM: wakelocks: Don't report wake up wakelock if suspend aborted
    arm: Implement ticket spin-locks
    Decompressors: Get rid of set_error_fn() macro
    ARM: 6428/1: add cpu_idle_wait() to support CPUidle on SMP systems.
    msm: Kconfig: Enable inline lock functions
    crypto: crc32c should use library implementation
    crc32: Bolt on crc32c
    crc32-add-slicing-by-8.diff
    crc32-add-real-8-bit.diff
    lib/sha1: use the git implementation of SHA-1
    ARM: support XZ compressed kernels
    Squashfs: Add XZ compression configuration option
    Squashfs: add XZ compression support
    decompressors: add boot-time XZ support
    decompressors: add XZ decompressor module
    CFS Auto Group V2 - Changes since last:
    Added NEON and other Snapdragon optimizations
    compilation: fix many Samsung sloppy coding warnings (part 1)
    patch: Add BFQ I/O scheduler by Paolo Valente
    patch: add SLQB memory allocator by Nick Piggin
    kernel patch: 2.6.35.13 -> 2.6.35.14
    make: fix Kconfig errors by Samsung
    kernel patch: 2.6.35.12 -> 2.6.35.13
    kernel patch: 2.6.35.11 -> 2.6.35.12
    Initial Commit for T-Mo Hercules!

    Version 004 (deprecated)

    fail!

    Version 005 (deprecated)

    re-baseline using Romanbb's initial commit to resolve compilation issues and problems.
    all patches from version 003 still apply!

    Version 006 (deprecated)

    board/device: Add GPU turbo boost for 2D as well
    watchdog: increase pet time to ten seconds
    board/devices: enable GPU turbo mode @ 320 Mhz
    OTG: Fix fast plug out/in wall charger charging issue
    gadget: f_mtp: Fix problems transferring files from device to host
    gadget: f_mtp: Make sure request is dequeued if transfer is canceled
    gadget: f_mtp: Zero length packet fixes
    gadget: f_mtp: Support for file transfer length greater than 4 gigabytes
    gadget: f_mtp: Return zero result for successful file transfer.
    gadget: f_mtp: MTP driver cleanup:
    msm_otg: Increment PM usage counter for suspend failure cases
    defconfig: 8x60: Enable USB accessory function
    gadget: android: Restore default composition upon accessory disable
    gadget: f_accessory: Set bNumEndpoints to correct value of 2
    gadget: f_accessory: Add string for accessory's unique serial number
    gadget: f_accessory: Clear disconnected flag when driver file is opened
    gadget: f_accessory: Clear previous strings on ACCESSORY_GET_PROTOCOL
    gadget: f_accessory: Clear accessory strings when USB is disconnected
    gadget: f_accessory: Misc improvements and cleanup:
    gadget: f_accessory: New gadget driver for android USB accesories
    gadget: android: Support switching vendor ID when configuration changes
    audio: qdsp6v2: Modify the wait timer for apr registration
    audio: qdsp6v2: Reduce the pcm write timeout value
    audio: qdsp6v2: Fix crash with erroneous aac playback
    audio: qdsp6v2: Send session ID in RTAC APR packet
    audio: qdsp6v2: Disable idle wakelocks for pcm driver
    audio: qdsp6v2: Fix for enabling dolby aac decoder.
    audio: qdsp6v2: Unification changes for AAC Multichannel decoder
    audio: qdsp6v2: Add Decoder Unification changes.
    audio: qdsp6v2: Enabling Dolby pulse aac codec.
    audio: qdsp6v2: Add fmt type adif in aac driver.
    audio: qdsp6v2: Add support for aac dual mono playback
    audio: qdsp6v2: Address multiple seek issues in AAC 5.1
    audio: qdsp6v2: Add support for multichannel AAC.
    audio: qdsp6v2: Add support for output port flush
    audio: qdsp6v2: correction in allocation of number of dma_channels.
    camera: configure the mipi csi based on lanecount
    camera: Postprocessing framework changes
    camera: Fix recording state machine bug
    camera: Remove additional check in msm_queue_drain
    rpc: While powering down flush all the rpcrouter workqueues
    rpc: Reader thread to allocate memory without holding a spinlock
    rpc: Reorganize the usage of spinlocks in RPC Router reader thread
    smd_pkt: Extend read operation to receive data larger than SMD FIFO
    gsmd: Save interrupt state when using spinlocks
    audio: qdsp6v2: Close smd ports upon failure to open.
    msm_fb/hdmi: fixed merge error
    HDMI: EDID > 2 blocks, params not set.
    msm_fb: Check for ACP and ACFG register before reset core.
    HDMI: CEC: Hardware FSM reset.
    msm_fb: Remove Audio Packet Control Register setup
    HDMI: Driver support for CEC feature
    HDMI: Driver support for CEC feature
    HDMI: Remove audio packet setup for ACP, ISRC
    rtc-msm: Fix uptime corruption due to slow clock overflow.
    msm_serial_hs: Fix issue related to sleeping in invalid context
    msm_serial_hs_lite: Set UART Clock rate to zero, when it is disable
    tsens: Add suspend/resume for TSENS
    kgsl: New low power level
    kgsl: Count a percentage of _io time
    kgsl: Clocks should be set to the active level during NAP
    kgsl: Add a periodic check to turn the TZ algorithm on
    kgsl: Update pwrlevel_change
    input/keyboard: add BLN support

    Version 007 (deprecated)

    video/msm/mdp: update mdp driver from ATT SkyRocket Source
    msm_fb: Removing HDCP timedout error.
    msm_fb: Fixing Aspect Ratio
    thermal: msm_tsens: Fix clearing interrupt bit on resume
    msm: sdio: Replace banned/deprecated strcmp with strncmp
    mmc: msm_sdcc: use prog_done for all commands having R1B response type
    msm: vidc: Fix handling EOS with bitstream error.
    staging: zcache: remove zcache_direct_reclaim_lock
    staging: zcache: reduce tmem bucket lock contention
    staging: zcache: fix crash on cpu remove
    staging: zcache: fix cleancache crash
    Staging: zcache: signedness bug in tmem_get()
    staging: zcache: fix crash on high memory swap
    staging: zcache: fix typos
    staging: zcache: fix possible sleep under lock
    zcache: Fix build error when sysfs is not defined
    zcache: Use div_u64 for 64-bit division
    staging: zcache: include module.h for MODULE_LICENSE
    staging: zcache: module is GPL
    staging: fix zcache building
    staging: zcache: support multiple clients, prep for KVM and RAMster
    staging: zcache: fix memory leak
    staging: Allow sharing xvmalloc for zram and zcache
    zram: Set initial disksize to some default value
    zram: Simplify zram disk resizing interface
    zram: Make gobal variables use unique names
    zram: Kernel config option for number of devices
    zram: Fix sparse warnings
    zram: driver update to latest stable release on 2011-07-18
    kernel:mm: Backported vzalloc to support ZRAM
    Staging: zram: simplify zram_make_request
    Staging: zram: make zram_read return a bio error if the device is not
    initialized
    Staging: zram: round up the disk size provided by user
    Staging: zram: make ZRAM depends on SYSFS
    zram: various improvements and cleanups
    zram: Rename ramzswap to zram in documentation
    zram: Rename ramzswap to zram in code
    zram: Rename ramzswap files to zram
    zram: Support generic I/O requests
    staging:zcache: Enable zcache by default
    drivers/staging: zcache: dynamic page cache/swap compression

    Version 008 (Deprecated)

    Update baseline source code with Skyrocket specific bits from ATT SkyRocket Source Release

    Version 009 (Short Term Release)

    [ CFS ] (Mainline Edition - should work with ALL phones!)
    The File ==> Skyrocket kernel 009m (1.73 GHz, L2 speed up to 1.56 GHz) <==

    [ CFS ] (Ultimate Edition - should work with most phones but NOT GUARANTEED!)
    The File ==> Skyrocket kernel 009u_r2 (1.73 GHz, L2 speed up to 1.56 GHz, GPU 3D @ 320 MHz, GPU 2D @ 220 MHz) <==

    mmc: core: Prevent too long response times for suspend
    msm_fb: [HDMI_COMPLIANCE] Update audio ARCs for 480p
    msm: audio: qdsp6v2: Fix memory leak in aac encoder
    mm-camera: configure the mipi csi based on lanecount
    RCU: JRCU 2.6.35.13, consolidated
    Reverted battery draining patches

    Version 010 (Current)

    Fixed USB Host Notification for Skyrocket (not supported)
    Remove Android USB Gadget Accessory for Skyrocket (not supported)
    msm: vidc: Remove endianness change for 1080p firmware. …
    vidc: 1080p: Increase context memory size of the H.264 encoder. …

    zcache: avoid AB-BA deadlock condition …
    msm_fb: HDMI-CEC: Line latch patch …
    msm: camera: Free buffers from frame queue at open …
    msm: vidc: insert break in switch-case statement …
    msm: camera: Update csi interrupt trigger conditon …
    msm: vidc: Remove endianness change for 1080p firmware. …
    vidc: 1080p: Increase context memory size of the H.264 encoder. …
    msm: qdsp6v2: Invalid memory access of timpani regset array …
    sched: disable GENTLTE_FAIR_SLEEPERS for better performance on Android
    revert back to FasNoHz RCU
    Skyrocket Source Update: Add debug switch to board PM
    Skyrocket Source Update: misc board driver updates
    Skyrocket Source Update: regulator driver update
    Skyrocket Source Update: misc minor driver clean ups
    Skyrocket Source Update: Make CIQ a standalone option so it can be di…
    Skyrocket Source Update: Update Headset Jack detection driver
    Skyrocket Source Update: Update CHARM Modem Interface driver
    Skyrocket Source Update: Update battery driver
    Skyrocket Source Update: Update GPIO driver
    Skyrocket Source Update: update misc USB drivers
    Skyrocket Source Update: Update Timpani Profiles for Skyrocket and He…
    Skyrocket Source Update: Update Touch Screen Driver
    Skyrocket Source Update: Update Power Supply Driver to fix DDR issues
    Skyrocket Source Update: Update Camera Media driver
    Skyrocket Source Update: Add Samsung BT WL keyboard support
    Skyrocket Source Update: Update BRCM WiFi driver
    Skyrocket Source Update: Update Misc HDMI and Video drivers
    Skyrocket Source Update: Update LowMemoryKiller OOM_Adj settings
    Skyrocket Source Update: Add Smart Dimming
    Skyrocket Source Update: Add suspend_sys_sync to kernel power management
    16
    OP updated with mainline download links.

    I am aware of the new Skyrocket source drop. It included some cool features, but unfortunately, I don't own a Skyrocket, I have a Tmo Hercules. I will extract the relevant updates from the new kernel source and merge into the my mainline source.

    This will take some time because I will need to extract the difference, apply them to my Hercules code and test on my Hercules first before I can do anything for the Skyrocket (This is one of the main reason I almost NEVER develop for a phone I don't own, Skyrocket is a very very rare exception I am making but because of this, it will take some time to do it and do it right).
    14
    [ Add-Ons ]

    Gideonx's scripts for OC / UV.

    http://forum.xda-developers.com/showpost.php?p=20946429&postcount=574

    Make sure you hit [ thanks ] button for him :D
    7
    Kernel 010 is official! Mainline and Ultimate are available!

    https://twitter.com/#!/faux123/status/178190457514360832

    PS... If you are using Ultimate Beta Build 3... it is identical to the released Ultimate edition... so NO NEED to flash if you are happy with Ultimate Version!