X86 performance monitoring

View: New views
4 Messages — Rating Filter:   Alert me  

X86 performance monitoring

by Frank Cox-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

My brother just sent me this inquiry and I thought I would ask here to see if
any of you lot know anything about this before I send him a reply.

Just checking whether you know anything about the various packages
I could use to monitor performance of code running on X86 processors.
I want to measure things like:
   - instructions executed, in a block of code (ie., from here to there)
   - cache misses (i-cache, d-cache, L1, L2, etc)
   - processor cycles
   - SSE4 instructions executed
   - ... and so on.

There appear to be at least a few packages which expose the
MSR functionality in varioius ways (e.g., the perfctr package).
I wondered if you knew which package would be considered
the 'best'.

One unpleasant aspect of the perfctr package is that it appears
that I need to apply patches to the kernel, then rebuild;
this would appear to increase the complexity of system maintenance
(can't just update and have everything up).

--
MELVILLE THEATRE ~ Melville Sask ~ http://www.melvilletheatre.com

--
fedora-list mailing list
fedora-list@...
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines

Re: X86 performance monitoring

by Roberto Ragusa :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Frank Cox wrote:

> My brother just sent me this inquiry and I thought I would ask here to see if
> any of you lot know anything about this before I send him a reply.
>
> Just checking whether you know anything about the various packages
> I could use to monitor performance of code running on X86 processors.
> I want to measure things like:
>    - instructions executed, in a block of code (ie., from here to there)
>    - cache misses (i-cache, d-cache, L1, L2, etc)
>    - processor cycles
>    - SSE4 instructions executed
>    - ... and so on.

While not precisely related to your question, you could have a look
at valgrind, which has a simulation mode for this kind of statistics.
It will not be real data, but if you just want to estimate if this
functions costs more than that one and if this change is an optimization
or not, it is quite good.
With proper options it gives you impressing data which you can explore
with kcachegrind.
When examining code in this way it easily happens you discover
unbelievable places where a lot of CPU is spent.

The good part is that you do not have to recompile your kernel or
your application.

Best regards.
--
   Roberto Ragusa    mail at robertoragusa.it

--
fedora-list mailing list
fedora-list@...
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines

Re: X86 performance monitoring

by William Cohen :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Frank Cox wrote:

> My brother just sent me this inquiry and I thought I would ask here to see if
> any of you lot know anything about this before I send him a reply.
>
> Just checking whether you know anything about the various packages
> I could use to monitor performance of code running on X86 processors.
> I want to measure things like:
>    - instructions executed, in a block of code (ie., from here to there)
>    - cache misses (i-cache, d-cache, L1, L2, etc)
>    - processor cycles
>    - SSE4 instructions executed
>    - ... and so on.
>
> There appear to be at least a few packages which expose the
> MSR functionality in varioius ways (e.g., the perfctr package).
> I wondered if you knew which package would be considered
> the 'best'.
>
> One unpleasant aspect of the perfctr package is that it appears
> that I need to apply patches to the kernel, then rebuild;
> this would appear to increase the complexity of system maintenance
> (can't just update and have everything up).
>

The 2.6.31 and newer kernels have support to access the performance monitoring
hardware on some models of x86 processors (NetBurst/P4 is NOT supports). You can
access the performance counter in Fedora 12 from the command line using the perf
package (a kernel sub-package). You could also write your own tools using the
same systemcalls as perf. You can browse the perf code at:

http://lxr.linux.no/#linux+v2.6.31/tools/perf/

-Will

--
fedora-list mailing list
fedora-list@...
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines

Re: X86 performance monitoring

by Frank Cox-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Fri, 06 Nov 2009 20:30:19 -0500
William Cohen wrote:

> Frank Cox wrote:
> > My brother just sent me this inquiry and I thought I would ask here to see if
> > any of you lot know anything about this before I send him a reply.

Thanks to both you and Roberto.  I will pass your information on.

--
MELVILLE THEATRE ~ Melville Sask ~ http://www.melvilletheatre.com

--
fedora-list mailing list
fedora-list@...
To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-list
Guidelines: http://fedoraproject.org/wiki/Communicate/MailingListGuidelines