Thread (5 messages) 5 messages, 3 authors, 2012-07-17

How to measure time spent in context switch

From: Manavendra Nath Manav <hidden>
Date: 2012-07-16 20:09:29

On Tue, Jul 17, 2012 at 1:20 AM, Victor Rodriguez [off-list ref] wrote:
Hi Manavendra

Have you think in a driver that you can call when the context switch
happen? If this can be detected (more investigation on this area is
required). If that is possible we can create the driver to measure the
time according to the interruption.

Thanks a lot and regards

Victor Rodriguez



On Mon, Jul 16, 2012 at 2:28 PM, Manavendra Nath Manav
[off-list ref] wrote:
quoted
How to measure time spent in context switch in Linux i.e. the time the
application stays suspended while the kernel is doing something else. I
don't want to use any profiling tools. What approach should I take to write
my own C code, which can also run as kernel module if required, to measure
time spent accurately. Will it also require to modify the scheduler code?
Does /proc gives any statistics in this regard?

Ref:
http://stackoverflow.com/questions/2368384/write-a-c-program-to-measure-time-spent-in-context-switch-in-linux-os

--
Manavendra Nath Manav
_______________________________________________
Hi Victor

I was thinking something in these terms:
1) Process is executing a non-critical section like a bottom-half.
2) At Nth line of code, I will measure the timestamp.
3) At (N+1)th line of code, I will voluntarily call schedule() to do
context switch.
4) At (N+2)th, I will measure the timestamp, and calculate the time difference.

Although the above procedure will measure context switch time
statically and not dynamically, it can give a fair idea but for
multi-core processors this measurement will heavily deviate from
accuracy. If we can set scheduler() process affinity to one single
core, will it affect the measurements and predictability of context
switches?

--
Manavendra Nath Manav
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help