On Sun, Oct 2, 2011 at 7:03 AM, mihai pricopi <[email protected]>wrote:
> Hello, > > Currently I am running a multi-threaded application on multi-core marss > and I am interestead to measure the per-thread stats. Is Marss providing > this information ? If not, do you have any idea of how to easily do this ? I > guess I need to access the processes structure in linux from the simulator > but I am not sure how to do this. > > Marss doesn't have ability to track OS threads/processes. So for now you are stuck with the per core statistics. You can use cpu-affinity to pin each thread to a CPU and then use per core 'user' data as per os-thread data, it will give you good approx. results. We have looked at how to implement kernel module that will help us to achieve this problem. To do this we need two things: 1. A kernel module that will keep track of process/thread running in each CPU and communicate with MARSS via MMIO interface, 2. Modified stats collection that will track per os-thread stats across multiple CPU's. Linux kernel provides 'kprobes' with that you can insert a function call at specific function start/end points. The idea is to use 'kretprobe' (function call return probe) on 'schedule' function and use 'current' pointer to find which process is running on which CPU. Then use MMIO interface to send this data to Marss and modify statistic collection to use per os-thread stats data-store. If someone is interested in developing this then I can provide more details on this. - Avadh Thanks, > Mihai > > _______________________________________________ > http://www.marss86.org > Marss86-Devel mailing list > [email protected] > https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel > >
_______________________________________________ http://www.marss86.org Marss86-Devel mailing list [email protected] https://www.cs.binghamton.edu/mailman/listinfo/marss86-devel
