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

Reply via email to