My Final Project is done: Context Switching Accounting Mechanism


My final project is related to Context Switching on GNU/Linux. As stated in its final report, available here:

How many times a given process p preempts, either voluntarily or involuntarily, is an
important threat to computer’s processes throughput. Whenever running cpu-bound
processes on a multi-core system without an actual system grid engine as commonly
found on Grid Clusters, their performance and stability are directly related to their
accurate implementation and the system reliability which is, to an extend, an important
caveat most of the times so difficult to detect.
Context Switching is time-consuming. Thus, if we could develop a tool capable of
detecting it and gather data from every single performed Context Switch, we would be
able to study this data and present some results that should pin-point at whatever their
main cause could be.

So far so good; I had developed and implemented a sort of new utility capable of gathering additional Context Switching Accounting information that, so far, was not available from the GNU/Linux kernel. This project puts an end to my Software Engineering degree. However, this project is far from be over;  it can – and must – keep going; there are a lot of things to be analysed and developed further. In order to do so, this blog is going to be used as a tool for scattering all the things related directly to this Context Switching Accounting Mechanism, thus providing a central point from where every single aspect involved in or related to it could be accessed.


As described in the final report, these are preliminary results. But they are quite interesting; as clearly shown in the next figure, we can now determine whenever a certain process p is being affected by external influences, like those ones being involved in hardware interrupts. Chart A depicts the normal behaviour for p, whereas on the other hand, chart C depicts an abnormal behaviour for the very same process p. These figures have been gathered and plotted by means of using my new kernel counters accounting Interrupt Handlers’ context switches.

Future Work

 Now that I have finished my studies, I can focus on these project completely – among, obviously, other important matters 😉 -. So, what now? I am planning to post more often now, not only about GNU/Linux issues in general, but about my Context Switching Accounting Mechanism. The very idea is to  put it to work on a real environment. Besides, some of its own code can be re-used to shape another project that has been in my mind for a long time. So, stay tuned.

More information

You can watch a presentation video here (in English).

You can get the slides here.