Hi
If you dont know what JIT is, read the next article:
http://androidandme.com/2010/02/news/jit-compiler-coming-to-android-sooner-than-you-think/
THE FOLOWING STEPS CAN BRICK YOUR TABLET, MAKE IT UNUSABLE OR SLOW. TRY YOURSELF. I ONLY TESTED IT IN A SMARTQ V5 WITH ROOT AND ACCESS TO /SYSTEM.
Hardware.
Smartq V5
Tests:
Reboot
Kill all the apps with Advanced Task killer
Wait 60 secs
Launch Linpack for android or Quadrant Advanced (every launch has a reboot before, and quadrant only runs cpu test)
Results:
Linpack without JIT = 2507 Mflops
Linpack with JIT = 4004 MFlops
Quadrant without JIT = 463 points
Quadrant with JIT = 645 points
To use JIT you must write this line:
dalvik.vm.execution-mode=int:jit
in /system/build.prop
To get back you only must change jit by fast at the end of the line.
To test if JIT is working you must get lines like this in logcat:
D/dalvikvm( 1212): Total arena pages for JIT: 2
All Androids 2.1 delivered with Tablets that have Telechips cpu seems that has the correct libraries, so must work with all of them.
Corvus.
I have Cube U6 / G10 7" pad, will these JIT steps works for my pad ?
I am running android 2.1 Jan 2011 version.
Benchmarks, suggestions and researchs for kernel optimization
Hello guys,
these days I have done several comparative benchmarks of what can be achieved, at least in terms of performance, applying the existing optimization options or particular compiler flags and also the main kernel memory allocators.
This, I hope, is only the beginning...
I'd like that this thread could become a place where developers, experienced or not, can share their benchmark results, knowledge, suggestions on possible improvements, patches, etc designed to improve performance and / or stability of the kernel.
Inside the next posts, you can find the conducted benchmark results.
Thanks for your attention
PS. Sorry for my bad english...
Kernel Optimization Benchmarks
These are the results of the comparative benchmarks of the performance results that can be achieved using the different kernel optimization options (-Os, -O2, -O3), using cpu and floating point tuning (eg -march=armv7-a -mtune=cortex-a8 -mfpu=neon) and other additional compilation flags.
For these tests I've used different kernels based on Arco's 3.0.60 kernel sources and built using the same toolchain (optimized for generic Cortex-A cpu):
- pure kernel built selecting -Os optimization
- pure kernel built selecting -O2 optimization
- slighty modified kernel built selecting -O3 optimization (only two simple changes to add -O3 optimization option inside Makefile and init/Kconfig)
- slighty modified kernel built selecting -O3 optimization and with the following additional compilation flags inside Makefile
Code:
...
OPTIMIZATION_FLAGS = -march=armv7-a -mtune=cortex-a8 -mfpu=neon \
-ffast-math -fsingle-precision-constant \
-fgcse-lm -fgcse-sm -fsched-spec-load -fforce-addr
CFLAGS_MODULE = $(OPTIMIZATION_FLAGS)
AFLAGS_MODULE = $(OPTIMIZATION_FLAGS)
LDFLAGS_MODULE =
CFLAGS_KERNEL = $(OPTIMIZATION_FLAGS)
AFLAGS_KERNEL = $(OPTIMIZATION_FLAGS)
...
and
Code:
...
ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
KBUILD_CFLAGS += -Os
endif
ifdef CONFIG_CC_OPTIMIZE_DEFAULT
KBUILD_CFLAGS += -O2
endif
ifdef CONFIG_CC_OPTIMIZE_MORE
KBUILD_CFLAGS += -O3 -fmodulo-sched -fmodulo-sched-allow-regmoves -fno-tree-vectorize
endif
ifdef CONFIG_CC_OPTIMIZE_FAST
KBUILD_CFLAGS += -Ofast
endif
...
The kernel has not been overclocked, I used the default min and max cpu frequencies (245 Mhz - 1401 Mhz) with Performance cpu governor and Noop I/O scheduler.
To perform each kernel benchmark, I made at least 3 test runs for each of the following tools:
- CF-Bench developed by XDA Developer Chainfire
- Antutu Benchmark
Benchmark final results
(the image is uploaded on Media Fire, if you can't see it, could be due to your proxy configuration)
You can find more detailed results (ods, xlsx and pdf format) and screenshots inside the following Media Fire folder: Results Folder
Conclusion:
As you can see, if compared with each other, -O2 optimization and -O3 optimization with additional flags give the best results in terms of performance, expecially using CF-Bench, but the differences are relatively small.
Thus, we can conclude by saying that the optimization flags above, do not do miracles, at least in terms of performance...
Memory Allocators Benchmarks
These are the results of the comparative benchmarks of the performance results that can be achieved selecting one of the different kernel memory allocators (SLUB, SLAB, SLOB and SLQB).
For these tests I've used different builds of the above descripted kernel (slighty modified kernel built selecting -O3 optimization and with the additional compilation flags):
- a build configured selecting the default SLUB memory allocator (the unqueued slab allocator V6)
- a build configured selecting the SLAB memory allocator (old and deprecated)
- a build configured selecting the SLOB memory allocator (a simpler memory allocator suitable for embedded devices with low memory)
- a build configured selecting the SLQB memory allocator (I modified the kernel sources to add it)
The kernel has not been overclocked, I used the default min and max cpu frequencies (245 Mhz - 1401 Mhz) with Performance cpu governor and Noop I/O scheduler.
To perform each kernel benchmark, I made at least 3 test runs for each of the following tools:
- CF-Bench developed by XDA Developer Chainfire
- Antutu Benchmark
Benchmark final results
(the image is uploaded on Media Fire, if you can't see it, could be due to your proxy configuration)
You can find more detailed results (ods, xlsx and pdf format) and screenshots inside the following Media Fire folder:
Results Folder
Conclusion:
In this case, if compared with each other, SLUB memory allocator (which is the default one) and SLQB memory allocator give the best results in terms of performance. The differences between these two are relatively small.
Patch:
If you want to add the SLQB memory allocator inside your JB kernel sources, you can use the following patch
SLQB_memory_allocator.patch
After downloading it inside your kernel sources folder:
Code:
[COLOR="Navy"]Show the changes inside the patch[/COLOR]
[B]git apply --stat SLQB_memory_allocator.patch[/B]
[COLOR="Navy"]Check if the patch could cause conflicts or other problems[/COLOR]
[B]git apply --check SLQB_memory_allocator.patch[/B]
[COLOR="Navy"]If all is ok, apply the patch[/COLOR]
[B]git am --signoff SLQB_memory_allocator.patch[/B]
Additional IO Scheduler Benchmarks
These are the results of the comparative benchmarks of the performance results that can be achieved selecting some of the additional IO scheduler we can find on many custom kernels.
I8150 - Samsung Galaxy W - ROW and SIO I/O schedulers comparison (Made by Hadidjapri)
These benchmarks have been made on I8150 by Hadidjapri.
For each I/O scheduler, he made 4 test runs using CF-Bench and setting the default min and max cpu frequencies (245 Mhz - 1024 Mhz) and the default SLUB memory allocator.
Benchmark final results
(the image is uploaded on Media Fire, if you can't see it, could be due to your proxy configuration)
I9001 - Samsung Galaxy S Plus - ROW, SIO and V(R) I/O schedulers comparison
For each I/O scheduler, I made 4 test runs using CF-Bench and setting Performance cpu governor with the default min and max cpu frequencies (245 Mhz - 1401 Mhz) and the default SLUB memory allocator.
Benchmark final results
(the images are uploaded on Media Fire, if you can't see them, could be due to your proxy configuration)
You can find more detailed results (ods, png and pdf format) inside the following Media Fire folder:
Results Folder
Conclusion:
For both devices, the best scheduler for I/O operations is SIO.
AW: Benchmarks, suggestions and researchs for kernel optimization
This is huge! Thank you so much!!
Sent from my GT-I9001 using xda app-developers app
WOW. This is extremely interesting! Thank you very much! These are awesome spreadsheets!
I'm going to publish these on my blog if it's okay with you. if it's not, Ill add the link of this XDA topic in Android Articles.
AWESOME. PERIOD
(I always secretly wanted to make spreadsheets like these regarding optimization, but I didn't knew how :silly
from what i see in the O3 optimization, i guess the additional build flags is a must otherwise it's only a fancy stuff which doesn't give anything
i have 2 questions regarding the benchmark
1. which one is more reliable, CF or antutu?
2. do you get large variance when testing for database IO? or is this happens only to me
broodplank1337 said:
WOW. This is extremely interesting! Thank you very much! These are awesome spreadsheets!
I'm going to publish these on my blog if it's okay with you. if it's not, Ill add the link of this XDA topic in Android Articles.
AWESOME. PERIOD
(I always secretly wanted to make spreadsheets like these regarding optimization, but I didn't knew how :silly
Click to expand...
Click to collapse
I'll be really happy if you publish these results inside your blog.
You can also use those spreadsheet as template, you're welcome!
Thank you!
hadidjapri said:
from what i see in the O3 optimization, i guess the additional build flags is a must otherwise it's only a fancy stuff which doesn't give anything
i have 2 questions regarding the benchmark
1. which one is more reliable, CF or antutu?
2. do you get large variance when testing for database IO? or is this happens only to me
Click to expand...
Click to collapse
I can say that no benchmarking tool is really reliable, I've tried many and I think it isn't actually possible to create or find a tool that always gives similar results on a system that still performs other operations without our control on them...
Antutu Benchmark is the benchmark tool every one of us know and use most, could not miss, though it is not the best in terms of reliability of the results. In particular, the first test should always be discarded because it is very different from the next, so each time I run 4/5 test and considered only the last 3 similar. In addition, I confirm that the database test and SD card tests often vary greatly.
CF-Bench is certainly more reliable and allowed me to make the detailed tests on memory allocation, but doesn't perform benchmarks on database and on the 2d and 3d graphics.
Even as a non-dev its intersting. Nice work
Nice job. Even though i dont own this phone anymore but im still interested of benchmarks. Saw one in antutu and the highest for your phones is about 7000+. The guy (I forgot who) said that he edited something in the build.prop to achieve that high score. Only thing I remember is that he posted the line in the q&a thread.
Juhan Jufri said:
Nice job. Even though i dont own this phone anymore but im still interested of benchmarks. Saw one in antutu and the highest for your phones is about 7000+. The guy (I forgot who) said that he edited something in the build.prop to achieve that high score. Only thing I remember is that he posted the line in the q&a thread.
Click to expand...
Click to collapse
debug.gr.swapinterval=0
which disables the 2d FPS cap, it preforms well on benchmark but sucks in reality, overheating your gpu for nothing, and all animations are bugged
Christopher, where did you get the custom Linaro toolchain optimized for Cortex-A?
R: Benchmarks, suggestions and researchs for kernel optimization
android1234567 said:
Christopher, where did you get the custom Linaro toolchain optimized for Cortex-A?
Click to expand...
Click to collapse
I've built myself, take a look here:
http://forum.xda-developers.com/showthread.php?t=2098133
Sent from my GT-I9001 using xda premium
i would like to benchmark ROW and SIO scheduler.
using CF Bench is enough right?
R: Benchmarks, suggestions and researchs for kernel optimization
hadidjapri said:
i would like to benchmark ROW and SIO scheduler.
using CF Bench is enough right?
Click to expand...
Click to collapse
Yes, you don't need to test 2d and 3d graphics, the results shouldn't change. So CF Bench is enough. Let me know your results, if you want...
Sent from my GT-I9001 using xda premium
Christopher83 said:
Yes, you don't need to test 2d and 3d graphics, the results shouldn't change. So CF Bench is enough. Let me know your results, if you want...
Sent from my GT-I9001 using xda premium
Click to expand...
Click to collapse
okay, i'll test it after i finish my class today. maybe 3-4hours later
hmm here's what i got
benchmark procedure and static variable used
1. test run at 1024MHz
2. both scheduler are tested for 4 times/batch
3. test is using CF Bench tool
4. memory allocator used is SLUB
link to pastebin
http://pastebin.com/SPrv1HVG
hadidjapri said:
hmm here's what i got
benchmark procedure and static variable used
1. test run at 1024MHz
2. both scheduler are tested for 4 times/batch
3. test is using CF Bench tool
4. memory allocator used is SLUB
link to pastebin
http://pastebin.com/SPrv1HVG
Click to expand...
Click to collapse
Thank you very much Hadidjapri!
I'm adding your benchmark results inside the first page...
Then I'll add my benchmark results too...
Christopher83 said:
Thank you very much Hadidjapri!
I'm adding your benchmark results inside the first page...
Then I'll add my benchmark results too...
Click to expand...
Click to collapse
Ok, first part completed.
Now, I'll collect my results and prepare the spreadsheet...
Christopher83 said:
Ok, first part completed.
Now, I'll collect my results and prepare the spreadsheet...
Click to expand...
Click to collapse
you mistype the clock sir. it's 245-1024 not 1401
Sent from my GT-I8150
Finally after someone pm'd me I looked back into GPU Overclocking.
New thread created issues with old thread OP permissions (people seem to be asking the same questions over and over again all information will be kept in OP & DO READ THE THREAD, repetitive questions will now be ignored)
Benefits:
Smoother UI
Handle 2d & 3d core GPU intensive applications & games
Currently only 2D core has been overclocked working on 3D core OC
2D-core original value - 192mhz OC to 245mhz DONE achieved 25% performance boost grp_2d_clk outputs 245760000hz
3D-core original value - 245mhz OC to 300+mhz WIP hoping to achieve 40-50% performance boost
2D-core OC only Download: Coming soon...
Download Links for other devices coming soon...
Works for all HTC Sense/Cm9/Cm10 kernels (Just ask a kernel developer for your device to implement the source code)
Note: Don't have internet on PC so providing 3 main files that need replaced for 2D-core OC to work
Download link to source code: http://d-h.st/wbH
3D-CORE OC TESTS Download: Coming soon...
Do check under sys/kernel/debug/htc_clock/clks/ look for file with all clocks & look for GRP_clks (Graphics clock)
OK so basically today I've been thinking and I've come to the conclusion that I will release the 2D-core OC patch As Soon As Possible, 3D-core Core OC is NOT Impossible but for now I'll give it a break, I will attempt 3D-core OC If/When I can get a hold of a msm7x30/msm8x55 device, as it will make it much easier for both me & users.
So for now you can enjoy the 50mhz increase/bump up, perf boost 25% in 2D-core (will increase performance in both 2D/3D intensive appications as 2D-core is used for 3D AFAIK and increase User Interface performance (Note: This will not take a hit on battery life)), I will also release a couple of fixes on patchas kernel that shouldnt be there/set etc.
(Theres a device available in my area for roughly £90, if anyone wants to contribute towards getting that device or can donate a device , more than welcome and shoot me a PM so I can list you here.)
(This isnt a promise of 3D-Overclock if you donate, if you donate please do so expecting nothing I will only attempt 3D-overclock)
Working device list - all kernel 3.0+ msm7x30/msm8x55 soc devices.
Main thread is in Desire HD Android Development section: http://forum.xda-developers.com/show....php?t=2368497
[KERNEL][ICS][STOCK-ROM] CPU OC 1.83ghz(ov, uv) , scorched, zen, L2 & bus bw boost
**NOTE: this is a Kernel ONLY, it works with the stock ROM, whch is why I put STOCK-ROM in title.**
Heyas all.. Ive never been a fan of full blown ROM changes because that often leaves features missing, like Wifi calling which I cannot live without...
So... I just wanted to announce Ive basically taken the following project:
[Kernel][ICS] TFQ Scorched Kernel ICS v1.0.22: http://forum.xda-developers.com/show....php?t=2052377
and this project:
-CM Based ONLY! [KERNEL]OC/UV up to 1.83GHz h0tcakez-ICS | 3.0.8: http://forum.xda-developers.com/show....php?t=2027054
and combined them.
This kernel is based on build ICS LH5, works with modem flash UVMB1.
Im using the original source code provided in the first link and tweaking clocks / voltages for cpu, L2 & bus speeds etc.. while adding the increased clock speed of the 2nd link.
This kernel is still experimental as Im testing it on my phone. There are a bunch of variables when it comes to this code and finding the right clocks / voltages can be tricky.
Im aiming for most effecient clocks / voltages on my particular device. This may not be ideal for the rest of you because my particular CPU / hardware may be worse or better to others out there. So, finding a middle ground would be ideal. Thats whats still in the experimental phase.
!!--10.01.14--!!
My device was stable all day today, used various different features including GPS to get around ... no problems, and have used several CPU stress apps at lower than voltage settings specified in my firmware. My device seems to do 1.83ghz @ 1.25v - not bad me thinks...
Anywho, I worked on the code more today and GPU OC is integrated. The device is set 228mhz 2d & 300mhz 3d by default.
Also, signed CWM flashable .zip file is attached to this thread!
Quadrant: over 5400
AnTuTu: over 15400
Here is my github of the project:
https://github.com/GenTarkin/SGH-T769-kernel
I plan on adding a 'stock kernel build' as well at a later date.
Feel free to offer any suggestions.
UPDATE ~ GPU OC added & CWM .zip file posted!
Enjoy all, feel free to try it out.
I plan on releasing a completely stock kernel .zip file as well soon.
Tips: BTC- 12jjayHWtUci3ygPXD4i2yUHMySytiUBd4
Glad to see others are starting to develop for this phone again. Thanks!