[KERNEL] SpeedMod Froyo [K13E HPCall VoodooSnd7 SharpnessFix STABLE]

Search This thread

uppon2

Inactive Recognized Contributor
Oct 27, 2010
3,108
1,488
Hello. I am testing kernels for battery usage and I am now using Hardcores speedmod kernel i1_2-250hz-r2-CWM - All tweaks enabled - No lagfix

I would like to say that i was using i1.1-250hz for about a week but this new one is working much better for me.
I believe my phone has a very honest battery :) I'm not claiming my battery is lasting for 4 days with moderate use and I'm not claiming that I'm losing 30% every hour. Hopefully this might interest average users with average battery usage

I am using JPO Doc 7.6.2 - JPD Modem - Dena theme - Launcher pro plus - Beautiful Widgets

Below are the figures. I played about 20 minutes worth of games but didn't run anything else serious besides using WiFi for an hour or so

First recording after roughly 16 hours as displayed in image

http://s274.photobucket.com/albums/jj276/uppon2/?action=view&current=1.png
http://s274.photobucket.com/albums/jj276/uppon2/?action=view&current=2.png
http://s274.photobucket.com/albums/jj276/uppon2/?action=view&current=3-1.png
http://s274.photobucket.com/albums/jj276/uppon2/?action=view&current=4-1.png
http://s274.photobucket.com/albums/jj276/uppon2/?action=view&current=5-1.png

I was cruising along nicely and then i went to bed and after waking up i checked again and this is the result. I'm still happy with the result but i think the battery icon / meter must be playing tricks on me?

http://s274.photobucket.com/albums/jj276/uppon2/?action=view&current=6.png

After a couple of more hours of light use including a short call and some basic navigation

http://s274.photobucket.com/albums/jj276/uppon2/?action=view&current=7-1.png
http://s274.photobucket.com/albums/jj276/uppon2/?action=view&current=8.png
http://s274.photobucket.com/albums/jj276/uppon2/?action=view&current=9-1.png
http://s274.photobucket.com/albums/jj276/uppon2/?action=view&current=10.png
http://s274.photobucket.com/albums/jj276/uppon2/?action=view&current=11.png
http://s274.photobucket.com/albums/jj276/uppon2/?action=view&current=12-1.png
http://s274.photobucket.com/albums/jj276/uppon2/?action=view&current=13-1.png
http://s274.photobucket.com/albums/jj276/uppon2/?action=view&current=14.png
 
Last edited:

harrydg

Senior Member
Oct 27, 2010
126
10
Herent
harry.enzoverder.be
Yes I have considered those compile options, and I think the current ones are the best for this CPU. The thing is, to really see if compile options make it better or worse, a lot of proper benchmarking has to be done.

If you are interested, you can check out the linked PDF file on the 1st post where there was some research done on it.

Also, according to that report (and I've read it a few times elsewhere), O3 is slower than O2 for the cortex-a8 CPU, and it makes the code bigger.

About the config options, it might not be a good idea to disable swap because it might break other things. I personally haven't tried, but because there are some pre-compiled modules where we don't have the source for, if we change the wrong thing then the kernel won't boot.

sorry to answer just now... do you have a list of modules that you don't have the sources for? plus: if you don't have the sources, how do you use them? are they "binary blobs" with stubs that you DO compile?
99.999% chance that removing swap support doesn't change a thing. It's just the way the linux kernel is built, or you (can) use swap, or you don't. Nothing else is impacted. So unless you have some binary-only memory management units, it won't make a difference. Can you put a kernel tree online somewhere, so that i can take a look at it? (incl the precompiled modules?) I can't connect to many sites here, so a tar.gz with everything in it would be perfect! (if you find the time ;))

Thanks in advance (again ;))
ps. I looked at the PDF you put on the first page, but haven't had time to fully read it all..
 

Fihlvein

Senior Member
Aug 19, 2010
672
133
Update on my situation. Ultimately did factory format (*2767*3855#) which resulted to booting forever without presenting login screen.

Now going to reflash with Odin.

Gasp, luckily I took backup on Saturday. I still don't understand how this could happen. What made CWM recovery to suddenly find changed config file?!

Well of course, unstable is unstable. :)
 

harrydg

Senior Member
Oct 27, 2010
126
10
Herent
harry.enzoverder.be
hey again guys.. sorry for another noob™ question:

What does the kernel sharpness/granuality affect? Or how "should" it affect the phone?

From what I've read so far it affects smoothness and battery life if you just look at user experience.. but how is it affected?

Higher HZ -> smoother but less battery?
Lower HZ - choppier but longer battery?

What exactly does this do anyway? I tried google but couldnt find a good answer.

--- Ohh and while I'm at it... how do the lagfixes and/or tweaks affect battery life?

No:
higher HZ -> more responsive, but more process switches, so applications (may) run slower, and slight battery impact may be possible
lower HZ -> longer timeslices, so longer "wait" for process to get cpu time. Applications get bigger timeslices, so faster to finish and less process switches, so might slightly improve battery life.

The only question now is: is this "battery life" relevant... or are we talking about 0,001% for a 100HZ -> 500HZ (mind you, HZ has NOTHING to do with Hz (Hertz)... well ,it does, but ... no it doesn't! it's completely different :))

As always: every change in behaviour has impact on battery life... but how (positive/negative) is very hard to quantify. Actually, the ONLY way to measure this, is to put a (very sensitive) ampere meter between your battery and your sgs and measure the current...
 

harrydg

Senior Member
Oct 27, 2010
126
10
Herent
harry.enzoverder.be
battery statistics

People ,

may i have your attention please!!
Can you all take a look at the battery discharge graphs on the following site:
http://www.mpoweruk.com/performance.htm
(maybe read it ALL)
after that, read this:
http://www.mpoweruk.com/soc.htm

This will show you that all your "100-99 is very good" and other crap... is completely USELESS! Learn first how it works, what batteries do, how they work (just a little bit, the basics).
That way, we can have an "adult" conversation with USEFUL information with which we can work. so PLEASE PLEASE PLEASE... read these pages thoroughly!

Thanks in advance for your cooperation, all! :)
 
Last edited:

PombeirP

Member
May 25, 2008
43
6
People ,

may i have your attention please!!
Can you all take a look at the battery discharge graphs on the following site:
http://www.mpoweruk.com/performance.htm
(maybe read it ALL)
after that, read this:
http://www.mpoweruk.com/soc.htm

This will show you that all your "100-99 is very good" and other crap... is completely USELESS! Learn first how it works, what batteries do, how they work (just a little bit, the basics).
That way, we can have an "adult" conversation with USEFUL information with which we can work. so PLEASE PLEASE PLEASE... read these pages thoroughly!

Thanks in advance for your cooperation, all! :)

+1!

10 chars
 

bilboa1

Inactive Recognized Developer
Aug 16, 2010
1,291
683

The "%" in the battery is not necessarily reflecting the real discharge curve, actually it probably doesn't.. :/
All we can do is get a "good feeling" of how many % have been used, using the same rom (aka JPA/JPO based)
Otherwise we could use the direct "mah" report from the kernel, It's probably in /proc (someone going to flame cause I'm not using capitals, oh well! :D) - probably not super accurate, but more than the %
 

harrydg

Senior Member
Oct 27, 2010
126
10
Herent
harry.enzoverder.be
compiling arguments...

Here I am again.. *****in' about stuff :)
but this is what i found:

-fno-gcse remove (completely disabling GCSE which actually causes performance loss on this test suite)
-farm-fix-gcse-loop-hierarchy (add if possible)
-farm-fix-gcse (add if possible)

==> if these fixes aren't in gcc (yet), then adding -no-gcse is (for the moment) better anyway ;)

-fprefetch-loop-arrays (best performance with this macro on Cortex-A8 is achieved with no prefetching instruction at all and with unrolling factor equal to 4)
--param l2-cache-size=512
--param l1-cache-size=64
--param simultaneous-prefetches=6
--param prefetch-latency=400
--param l1-cache-line-size=32 (the best value found for l1-cache-line-size is 32, though ARM documentation specifies line size equal to 64)
-mvectorize-with-neon-quad (option gives slightly better overall results)
After enabling autovectorizer (-ftree-vectorize -mfpu=neon -mfloat-abi=softfp), we were surprized to observe performance regression.
We have chosen -O2 as the base, since our tests have shown that -O2 outperforms -O3 on expedite by 0.5-1%

Small thing to added:
If the selected floating-point hardware includes the NEON extension (e.g. -mfpu=`neon'), note that floating-point operations will not be used by GCC's auto-vectorization pass unless -funsafe-math-optimizations is also specified. This is because NEON hardware does not fully implement the IEEE 754 standard for floating-point arithmetic (in particular denormal values are treated as zero), so the use of NEON instructions may lead to a loss of precision.
==> this makes me think: how "needed" is the floating point precision in calculations? (as in: it's not always "less precise")
What worries me on the NEON extension is also the following:
"First, we have analyzed why so few loops (just about 25%) were vectorized
automatically by GCC. Most common causes of autovectorizer's failure were
the following: function calls within the loop body (mostly indirect calls, so they
can not be inlined), switch operator within a loop, and unsupported operations
(e.g. there is no support for vector division on NEON). It's worth to note that
switch operators within loops in libevas are used to specialize two cases for
transparency values 0 and 1, so a multiplication by alpha-channel value could
be replaced with simple copy of either source or destination color value. Though
such specialization prevents the loop from being vectorized for NEON, pure
ARM specialized code still signi cantly outperforms autovectorized NEON code
on expedite tests."

Is there anyone who has access to this?:
ARM RealView Development Suite (RVDS)

I'd like to test compile the kernel on the compiler created by ARM itself... it is supposed to be A LOT faster than gcc... but the only caveat might be that the linux kernel is "written to be compiled with gcc"
but it's worth testing if someone has access
 
Last edited:

hardcore

Senior Member
Sep 12, 2006
3,435
7,992
Here I am again.. *****in' about stuff :)
but this is what i found:

-fno-gcse remove (completely disabling GCSE which actually causes performance loss on this test suite)
-farm-fix-gcse-loop-hierarchy (add if possible)
-farm-fix-gcse (add if possible)

==> if these fixes aren't in gcc (yet), then adding -no-gcse is (for the moment) better anyway ;)

-fprefetch-loop-arrays (best performance with this macro on Cortex-A8 is achieved with no prefetching instruction at all and with unrolling factor equal to 4)
--param l2-cache-size=512
--param l1-cache-size=64
--param simultaneous-prefetches=6
--param prefetch-latency=400
--param l1-cache-line-size=32 (the best value found for l1-cache-line-size is 32, though ARM documentation specifies line size equal to 64)
-mvectorize-with-neon-quad (option gives slightly better overall results)
After enabling autovectorizer (-ftree-vectorize -mfpu=neon -mfloat-abi=softfp), we were surprized to observe performance regression.
We have chosen -O2 as the base, since our tests have shown that -O2 outperforms -O3 on expedite by 0.5-1%
Yes, this is how I reached the settings that are used for this kernel. As you can see, bigger numbers aren't always better (O3 vs O2).
 

dupel

Senior Member
Jun 2, 2010
1,394
23
London
Err, Universal lagfix init.d works without any mods. All scripts just need S as the first character in the file name.

nope it doesnt. Quite a couple pages ago I with several people help couldn't make it work in any way.

At least it has some bugs since it didnt work for me and raspdeep fixed something.
 

Laum

Senior Member
Jun 23, 2010
180
19
nope it doesnt. Quite a couple pages ago I with several people help couldn't make it work in any way.

At least it has some bugs since it didnt work for me and raspdeep fixed something.

Ah ok, strange that my scripts seem to be working just fine with S in front of them.

/system/user.log states correct output for the scripts. All placed in system/etc/init.d

And this is with Hardcore kernel version k2r2 200HZ.
 

dupel

Senior Member
Jun 2, 2010
1,394
23
London
Ah ok, strange that my scripts seem to be working just fine with S in front of them.

/system/user.log states correct output for the scripts. All placed in system/etc/init.d

And this is with Hardcore kernel version k2r2 200HZ.

Mind posting one of your scripts? I tried to make to work script from hardcores thread about optimal mount points (add nobh) but it refused to work in any way I tried it.
 

hardcore

Senior Member
Sep 12, 2006
3,435
7,992
yeah, that's why i propose these changes to your compile options (as test of course):
--param l1-cache-line-size=32 (instead of 64)
-mvectorize-with-neon-quad
maybe all with marginal/no benefit, but you never know ;)
The 2nd option doesn't exist in the gcc that we use.
And the 1st option was chosen based on the inputs of that test, where they shared 2 sets of similar options but said that the second set (with 64 which I used) gave overall better results.

Moreover, it probably will be quite impossible for us to actually benchmark the difference, unless we have the time & resources of those researchers! But I appreciate you taking the time to understand the options and suggest changes.
 
Last edited:

Top Liked Posts

  • There are no posts matching your filters.
  • 525
    Hi people. This kernel aims to be fast, compatible, stable, and have good battery life. It makes our Galaxy S run the way it should.

    This kernel is for the International Galaxy S (I9000) and Bell Mobility Vibrant (I9000M)

    The SpeedMod kernel for the AT&T Captivate is available here: http://xdaforums.com/showthread.php?t=893880

    Note: Only lagfixes using EXT4 are robust. Other lagfixes run the risk of data loss on freezing, hard-reboots, or sudden power loss.

    WARNING: Before you try any lagfix, make sure that you have enough free space on your Internal SD. You should have at least more free space than data+dbdata+cache combined.

    Latest K13E (12-Apr) - Voodoo Sound v7. Lowmemorykiller fixes. Improved display sharpness using AMOLED processing mode in MDNIE. Support for voice calls through headphones. Check here for more info and downloads.

    >>> Click here for the installation procedure using Odin.

    >>> If you have questions, please read the FAQ: Frequently Asked Questions first!

    >>> What is the SpeedMod kernel?

    Latest features:

    - Compiled using codesourcery 2010.09: Faster and more battery efficient
    - The only properly working Tiny RCU implementation, thanks to Paul McKenney
    - More efficient: Removed debug logging from kernel and Android
    - Most updated version of my Enhanced Universal Lagfix fork with improved stability
    - Full Android 2.2.1 ROM compatibility

    This kernel has:

    - Based on JPX Android 2.2.1 kernel source
    - Works on all stock Froyo 2.2 and 2.2.1 ROMs and popular custom ROMs
    - 340MB RAM
    - Enhanced version of sztupy's Universal Lagfix
    - Includes neldar's BackLightNotification 2.3 from https://github.com/project-voodoo/backlightnotification/tree/master/kernel_patches/
    - Sharpness (AMOLED mode) & color fixes for the screen
    - SpeedMod: Replaced kernel jhash2 with jhash3
    - Includes my Startup Tweaks from http://xdaforums.com/showthread.php?t=813309
    - Adjusted kernel HZ value to improve smoothness
    - Uses BFQ IO scheduler by default, from http://algo.ing.unimo.it/people/paolo/disk_sched/sources.php
    - Updated ext4 code in kernel from http://www2.kernel.org/pub/linux/kernel/people/tytso/ext4-patches/
    - Properly working Tiny RCU for better speed and efficiency from http://android.git.kernel.org/?p=ke...it;h=9b1d82fa1611706fa7ee1505f290160a18caf95d
    - Patched lowmemorykiller for compatibility with Tiny RCU from http://android.git.kernel.org/?p=ke...ff;h=5545554aac04918ece318270d63cbfcb015577a9
    - Optimized compiler flags: -mcpu=cortex-a8 -mfpu=neon -mfloat-abi=softfp

    --------------------------------

    FOR BEGINNERS:

    This kernel is based on sztupy's Universal Lagfix: Lagfix and root options are accessible by booting into the Recovery Menu.

    To get the best speed, it is recommended that you enable all Tweaks from the Recovery Menu. Tweaks are under SpeedMod features. Info on Tweaks: http://xdaforums.com/showthread.php?t=813309

    How to root: http://xdaforums.com/showpost.php?p=8896862&postcount=90

    Kernel HZ value: HZ=500 is smoother, HZ=256 is Samsung default.

    --------------------------------

    Memory configs (K10J and later):

    CONFIG_ANDROID_PMEM_MEMSIZE_PMEM=2048
    CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_GPU1=4096
    CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_ADSP=1500
    CONFIG_WLAN_SAMSUNG_MEMSIZE_BCM=256
    CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMC0=12288
    CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMC1=1024
    CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMC2=12288
    CONFIG_VIDEO_SAMSUNG_MEMSIZE_MFC0=32768
    CONFIG_VIDEO_SAMSUNG_MEMSIZE_MFC1=32768
    CONFIG_VIDEO_SAMSUNG_MEMSIZE_TEXSTREAM=10240
    CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMD=3072

    Memory configs (K10I and earlier):

    CONFIG_ANDROID_PMEM_MEMSIZE_PMEM=4096 *#
    CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_GPU1=8192 *#
    CONFIG_ANDROID_PMEM_MEMSIZE_PMEM_ADSP=1500
    CONFIG_WLAN_SAMSUNG_MEMSIZE_BCM=256
    CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMC0=11264 **
    CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMC1=1024
    CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMC2=11264 **
    CONFIG_VIDEO_SAMSUNG_MEMSIZE_MFC0=30720 ##
    CONFIG_VIDEO_SAMSUNG_MEMSIZE_MFC1=30720 ##
    CONFIG_VIDEO_SAMSUNG_MEMSIZE_JPEG=1024 *#
    CONFIG_VIDEO_SAMSUNG_MEMSIZE_TEXSTREAM=6144 ^^
    CONFIG_VIDEO_SAMSUNG_MEMSIZE_FIMD=3072

    ** FIMC0/2 = Below this and 720P video recording won't work
    ## MFC0/1 = Below this and 720P video playback won't work
    *# PMEM/PMEM_GPU1/JPEG = Taken from default values for Galaxy Tab
    ^^ TEXTREAM = Too low and 3G video call stops working

    THANKS: Big thanks to sztupy for his kernel compiler VM and ULFK, lastufo for testing compiler optimizations, ykk_five for testing memory configs, and others who gave ideas or helped.

    --------------------------------

    WARNING: If you use a custom boot animation, apps like One Click Lag Fix will not work because it disables the playlogos1 script hack.

    The files with ending with -CWM are for flashing using Clockwork Recovery.
    These other zip files are for flashing with ODIN.

    --------------------------------

    About USB Mounts:

    >>> Click here to download the USB mount fixes. Latest SpeedMod versions do not need this fix. The fix is for using K12E or older with 2.2 ROMs. It fixes the problem where Internal SD mounts as a read-only drive on the PC, or if the External SD does not get mounted.

    >>> If you have questions, please read the FAQ: Frequently Asked Questions first!

    >>> CLICK HERE to DOWNLOAD the kernels.
    47
    Updated test: K12Q-T7:

    This version is unbelievably smooth!

    Android Logger (logcat) disabled by default (can be re-enabled via Tweaks).
    Kernel debug messages have been disabled.
    Fixed the super loud notifications with Voodoo Sound.

    Changes from K12P:

    - Disabled Android Logger (can be re-enabled via Tweaks)
    - Disabled all kernel debug messages for efficiency
    - Changed boot logo to I897 logo for AT&T Captivate version
    - Changed /cache to ext4nj in recommended ext4 lagfix to fix large Market downloads
    - Optional IPv6 Privacy support in Tweaks
    - Voodoo Sound v2 compatible
    - Fixed loud notification problem with headphones
    - Fixed popping / clicking noise when music and FM radio is stopped / started
    - Better FM Radio sound:
    - - Really removed the high pass filter and DRC from FM Radio (restores full bass)
    - - Turn on 4FS mode for ADC in FM Radio (smoother high frequencies)
    - - Turn on 128x oversampling for ADC and DAC in FM Radio mode
    - Adjusted volume of FM Radio and Media Playback to be similar
    - General sound quality improvements:
    - - Maximized digital mixer output to improve SNR and resolution
    - - 128x oversampling option in Voodoo Sound enabled by default
    - - Explicitly disable DRC and NG during media playback, if +1.5dB mode is NOT selected

    For those people who requested IPv6 privacy, please let me know if it works in this version.
    41
    On 12A, the battery seems better - but only marginally so - i still see Wifi using 35% on a mostly idle phone. If I remember right, the previous usage used to be around 5% - definitely single digit. Something is still wrong with wifi with JPY ROM/Modem....
    Its not the ROM or modem. I think its the new Wifi firmware. I've started a thread to collect Wifi firmware versions.

    http://xdaforums.com/showthread.php?t=885903

    In the meantime, if you want u can experiment. I've created update.zip packages to update/overwrite the wifi firmware (it's in /system/etc/wifi).

    You can try to use the older (DXJPA) wifi firmware and see how that does in terms of power.
    If you don't like it, you can put back the XXJPY wifi firmware with the other package.

    Let me know your findings, if u try it out.

    DXJPA wifi firmware is working fine with my XXJPY rom. Gonna check out the battery usage.

    FYI:
    DXJPA: Firmware version = wl0: Jun 4 2010 14:21:21 version 4.218.214.3
    XXJPY: Firmware version = wl0: Nov 16 2010 08:56:21 version 4.218.250.38
    26
    K12U was just out, but here is K13A-T1!

    Changes:
    - Single version for neutral/cold/warm color, selectable from Recovery
    - Option to disable darkest auto-brightness level, selectable from Recovery
    - Minor optimizations to brightness sensor driver

    Otherwise it is the same as K12U.
    25
    SpeedMod + Voodoo Sound test version!

    K12L-T5:

    Changes from K12K:
    - Improvements to FM Radio sound: remove Dynamic Range Compression
    - Voodoo Sound v1: FM radio bass fix, controllable headphone output via app
    - rear speaker volume +1 for media
    - light sensor polling interval changed to 2s instead of 0.5s
    (saves battery, more stable brightness levels)
    - light sensor sensitivity adjusted so that the screen doesn't turn bright so easily
    (saves battery and reduces screen burn)
    - adjustments to IO Tweak (super smooth now!)
    - changed battery level polling interval to 60 seconds, from 5 seconds

    Note that you need Supercurio's Voodoo app to adjust the headphone level. If u don't install it, the default level is the same level as K12K (+1 from Nexus S, or +3 from SGS).

    PS. The FM radio sound is really awesome after those voice filters have been removed!