Linux - KernelThis 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.
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.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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)
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.
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.
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.
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..
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.