40-bit PMC counters, can they be used for marking start/stops

40-bit PMC counters, can they be used for marking start/stops

halivingston's picture

FIXED_CTR0 has instructions retired being counted. If the counter is only 40-bit (pre-Nehalem), is there a use of this counter without sampling?

To paraphrase, if all I'm doing is RDPMC on a certain code site, and then RDPMC on another code site, this is bound to overflow right?

Or does that not matter if I always subtract the two numbers and multiply it by negative 1?

5 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.
iliyapolak's picture

Try to consultIntel Manuals.

Patrick Fay (Intel)'s picture
Best Reply

Hello halivingston,
There is always the danger of overflowing the counters if they are used in the free-running mode (or sometimes called 'counting mode').
We can estimate how long before the counter will wrap:

Max instructions/sec @ 5 inst/cycle= frequency * 5 inst/cycle
Just for ease of computing say the freq is 2 Ghz then we could get 10 billion (1.0e10)instructions/sec.
A 40 bit counter can count 1,099,511,627,775 (or ~1.1e12) before wrapping.
So, at this example 2GHz frequency and 5 instructions/cycle, we could run about 100 seconds before wrapping.

Of course, some CPUs have a higher frequency but many codes probably don't sustain retiring 5 instructions/cycle.
So... depending on these factors, the wrap around may be longer.
Pat

petminuti's picture
Patrick Fay (Intel)'s picture

In what way would you like the answer to be more precise?

Login to leave a comment.