| Linux - Kernel This forum is for all discussion relating to the Linux kernel. |
| Notices |
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
Are you new to LinuxQuestions.org? Visit the following links:
Site Howto |
Site FAQ |
Sitemap |
Register Now
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
 |
GNU/Linux Basic Guide
This 255-page guide will provide you with the keys to understand the philosophy of free software, teach you how to use and handle it, and give you the tools required to move easily in the world of GNU/Linux. Many users and administrators will be taking their first steps with this GNU/Linux Basic guide and it will show you how to approach and solve the problems you encounter.
Click Here to receive this Complete Guide absolutely free. |
|
 |
09-04-2012, 04:18 AM
|
#1
|
|
LQ Newbie
Registered: Apr 2012
Posts: 29
Rep: 
|
Scheduler benchmarking
Hi,
Are there any benchmark tools available for benchmarking the Linux scheduler on Android? While googling came across a tool called "interbench" http://users.on.net/~ckolivas/interbench/, which can be used to benchmark the interactiveness of Linux. Are there such tools for android/ ARM? (any Linx tool that can be cross compiled to ARM)
Thanks
Last edited by DKSL; 09-04-2012 at 08:14 AM.
|
|
|
|
09-04-2012, 08:50 AM
|
#2
|
|
Senior Member
Registered: Feb 2004
Location: SE Tennessee, USA
Distribution: Gentoo, LFS
Posts: 4,554
|
You might need to more-carefully define exactly what it is you're looking for, in order to be certain that you are looking at the right thing. The "interactiveness" of Linux, a.k.a. its "response time," really does not have that much to do with the CPU scheduler. Rather, it has to do with how quickly the application in question provides its first response to whatever the user has asked it to do. This can be heavily influenced by the application's design, by the mutexes and other synchronization mechanisms applications must hold (or that are held for them, by the API routines that they call), and so on.
Generally speaking, the CPU scheduler doesn't have too much at all to do with this. It will dutifully parcel out CPU-time, more or less fairly and equally, to any and every active thread that says it can use it.
The API, and as I said, the application itself, will be the major instruments of perception. The time-interval being measured is the moment from when I ask the application to do something, and the time that I receive the first visual indication that something is happening with response to it. My perception of responsiveness is also affected by how frequently and how steadily those visual indicators are updated. Well-designed applications dedicate a thread to this, and perform all UI updates through that thread.
Last edited by sundialsvcs; 09-04-2012 at 08:54 AM.
|
|
|
|
09-04-2012, 09:36 AM
|
#3
|
|
LQ Newbie
Registered: Apr 2012
Posts: 29
Original Poster
Rep: 
|
Quote:
Originally Posted by sundialsvcs
You might need to more-carefully define exactly what it is you're looking for, in order to be certain that you are looking at the right thing. The "interactiveness" of Linux, a.k.a. its "response time," really does not have that much to do with the CPU scheduler. Rather, it has to do with how quickly the application in question provides its first response to whatever the user has asked it to do. This can be heavily influenced by the application's design, by the mutexes and other synchronization mechanisms applications must hold (or that are held for them, by the API routines that they call), and so on.
Generally speaking, the CPU scheduler doesn't have too much at all to do with this. It will dutifully parcel out CPU-time, more or less fairly and equally, to any and every active thread that says it can use it.
The API, and as I said, the application itself, will be the major instruments of perception. The time-interval being measured is the moment from when I ask the application to do something, and the time that I receive the first visual indication that something is happening with response to it. My perception of responsiveness is also affected by how frequently and how steadily those visual indicators are updated. Well-designed applications dedicate a thread to this, and perform all UI updates through that thread.
|
I am changing the process priorities and want to measure if there is any effect on CPU timeslice, interactivity. Also if only a few applications are running anyway they will get the needed resources. However a benchmark tool inserts background load and can check what are the effects under them.
Yes what you said was correct and thanks for the input. Application design and other factors will have a huge effect on the responsiveness(The rate at which your workloads can proceed under different load conditions - interbench ). However my requirement is to benchmark two instances of OS(one the stock one and the customized one) and to see the pros and cons of them.
I need to simulate some background load(small, medium, high) and under each load conditions how will the priority changing instance of the OS and the stock instance of the OS will behave? And need to cross compile it to ARM as well  .
|
|
|
|
09-04-2012, 01:11 PM
|
#4
|
|
Senior Member
Registered: Feb 2004
Location: SE Tennessee, USA
Distribution: Gentoo, LFS
Posts: 4,554
|
The scheduler will apportion "a fair share" of resources among all of the processes that are in "runnable" state at any particular instance. AFAIK it does not alter the length of a time-slice (quantum) but I could be wrong on this. The "priority" value is one of several inputs that are used to insert runnable tasks into appropriate positions within the runlist. I would suggest that you obtain and review the source-code to the scheduler as your primary determinant of how your workload will be dispatched.
Also... I would frankly be extremely surprised to see any sort of "CPU intensive" workload on a portable phone.
|
|
|
|
09-04-2012, 01:56 PM
|
#5
|
|
LQ Newbie
Registered: Apr 2012
Posts: 29
Original Poster
Rep: 
|
Nice value is only one factor, in the case of android they give all the priority to the foreground app and have cgroups to limit the background app's CPU usage. However if you run a CPU intensive app 'superPI' to calculate PI value it will take a lot of CPU. It was shown like that when I used top.
I have a way of changing application priorities based on location. Now looking for a way test the significance of it. I plan on creating a background work load so the effect of priority change can be noticed easily and has to constant too every time..
Found a tool called lmbench going to test with it..
|
|
|
|
| Thread Tools |
Search this Thread |
|
|
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -5. The time now is 04:32 AM.
|
|
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.
|
Latest Threads
LQ News
|
|