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?