Thanks for your reply. But now I have another questions. When I use 32 threads to run my app, and use the opreport to show the results, the results were mess, and I cann't see the results easily. 
Do you know how to see the results clearly?

2013/9/18 Michael Petlan <>

As I know, the L2_LINES_IN can be used for that, see this reference guide:

The LLC_MISSES should care about the last level cache, it may be the L3.

I have L2_CACHE_MISS event for this, but maybe you haven't.

Please take it as a non-official information.


-------- Original message --------
Předmět: Re: using oprofile to debug multi-processes programs on linux
Datum: Mon, 16 Sep 2013 08:34:03 -0500
Od: Maynard Johnson <>
Komu: benzhi cao <>
Kopie: oprofile-list <>

On 09/14/2013 08:24 PM, benzhi cao wrote:
Thanks so much for your reply. And I can collect the information for every process now.
Also I want to collect the L2 cache miss, so I try to use ophelp to find the event that
I can use for L2 cache miss. And I think the event is LLC_MISSES. But I also find
some guys who use l2_lines_in to profile l2 cache miss, so I was confused, I don't know
which is the right event? What's more, my hardware is intel architecture 64.
Adding oprofile-list back to cc so that maybe someone else on the list can help, since Intel is not my primary architecture of expertise.


2013/9/14 Maynard Johnson < <>>

    On 09/13/2013 02:18 AM, benzhi cao wrote:
    > Hi, can Oprofile be  used to profile performance of multi-processes programs ? And if it can, how to see the the performance of each process? (P.S: The online manual shows that it can be used to profile multi-threads programs, but I don't know whether it  can be used for multi-processes). Any help will be appreciated, thanks a lot~
    Hi, Emily,
    Hopefully, you're using oprofile 0.9.9 so you can use operf instead of the older "legacy" opcontrol commands.  Using operf, you can specify to profile just the particular application (or process) you're interested in. If your application does fork/exec to create new child processes, operf will, by default, collect all sample data for the parent and children, but will aggregate all sample data. (ATTENTION:  0.9.9 has some key bug fixes for operf relating to following forked children.)  You can specify "--separate-thread" (see operf's man page for details) so that samples are separated by process and thread.  If you do collect a --separate-thread profile, be aware that opreport, being a text-based report generator does not handle too many axes of separation very well.  You may get a report that looks like a jumbled mess, but would show a list of process IDs near the top of the report.  You could use that list of PIDs to generate per-process reports -- e.g., 'opreport tgi!
     #> [option
    s]'.  In some cases, opreport gives up and tells you that you have to either provide a profile specification (e.g., 'tgid:<pid#">' or, if profiling with multiple events, 'event:<event_name>').  More information on profile specifications can be found at


    > Best~
    > Emily
    > ------------------------------------------------------------------------------
    > How ServiceNow helps IT people transform IT departments:
    > 1. Consolidate legacy IT systems to a single system of record for IT
    > 2. Standardize and globalize service processes across IT
    > 3. Implement zero-touch automation to replace manual, redundant tasks
    > _______________________________________________
    > oprofile-list mailing list
    > <>

LIMITED TIME SALE - Full Year of Microsoft Training For Just $49.99!
1,500+ hours of tutorials including VisualStudio 2012, Windows 8, SharePoint
2013, SQL 2012, MVC 4, more. BEST VALUE: New Multi-Library Power Pack includes
Mobile, Cloud, Java, and UX Design. Lowest price ever! Ends 9/20/13.

oprofile-list mailing list