On Wed, Dec 3, 2008 at 2:43 AM, Dan Terpstra <[EMAIL PROTECTED]> wrote:
>> Counting requires interrupt to virtualize the counters to 64-bit. They are
>> 48
>> bits if I recall.
>>
> Yes, they're 48-bit, but why do you need interrupt to virtualize? With a
> multi-tasking OS, you just do it at context switch. I still think it will be
> important to count in both domains at once...

There is no context switch in system-wide mode. You program the counters
and you let them run.

Also the perfmon API export all counters as 64-bit wide. This is very useful
for tools, especially when sampling.


> - d
>
>> -----Original Message-----
>> From: stephane eranian [mailto:[EMAIL PROTECTED]
>> Sent: Tuesday, December 02, 2008 12:54 PM
>> To: Dan Terpstra
>> Cc: perfmon2-devel
>> Subject: Re: [perfmon2] Intel Core i7 specs available.
>>
>> Dan,
>>
>> On Tue, Dec 2, 2008 at 5:10 PM, Dan Terpstra <[EMAIL PROTECTED]>
>> wrote:
>> >
>> > Are you referring to the Uncore Address/Opcode Match stuff (18.17.2.3)?
>> I
>> > saw that, but wasn't quite sure how to use it. I didn't see anything in
>> the
>> > PEBS stuff that looked like Data EAR. Or is this part of the Load
>> Latency
>> > stuff that's described in (18.17.1.2)? Looks like part of the latency
>> stuff
>> > includes a Data Address.
>> >>
>>
>> No, I was indeed referring to offcore (which is different from uncore).
>> Yes, that's the load latency PEBS I was talking about. I does give
>> you the cache miss information similar to Itanium D-EAR, you get
>> instr and data addresses, latency, source of the data in addition
>> to the machine state which is quite nice.
>>
>> >> You missed one thing, however, the offcore_response feature. That one
>> >> is tricky because
>> >> it uses a register that is shared per core (if I recall).
>> >> Perfmon handles offcore_response similaryl to what is going on with
>> >> AMD northbridge event.
>> >> It enforces some form of mutual exclusion.
>> >>
>> > Yes, the off-core response stuff can be coded into any of the generic
>> > registers on any core, but it shares a single common configuration
>> register.
>> > Exclusion logic for this guy could be fun. It looks like this takes the
>> > place of the SELF/ANY modifiers used in earlier Core architectures for
>> > events that probed shared cache?
>> >>
>> Well, yes this is tricky. The current code does the following:
>>    - only one system-wide session per physical core (each physical
>> core has 2 threads)
>>    - only one per-thread session across the entire system (otherwise
>> you have problems
>>      in case of migration).
>>
>> > Who owns the system-wide session? First-come first-served? Can it be any
>> > thread or must it be a specific core? And if you restrict access to
>> counting
>> > (calipers), couldn't you do per-thread access without worrying about
>> > overflow?
>> >>
>> For uncore, the first system-wide session which asks for it, gets it.
>> It can be coming from any core/threads on the socket.
>>
>> >> > I'm not sure that uncore counters should be restricted to system-wide
>> >> > counting only; I think it could be quite useful, as Phil described
>> for
>> >> > SiCortex, to measure "what's happening to this shared resource while
>> I'm
>> >> > active". That's not unlike Component PAPI measuring network activity
>> on
>> >> a
>> >>
>> Counting requires interrupt to virtualize the counters to 64-bit. They are
>> 48
>> bits if I recall.
>>
>>
>> >> No, this is not yet supported. I think on x86, this is not that far
>> off.
>> >>
>> > Could you do first-person monitoring in a parent thread and spawn a
>> daughter
>> > thread to measure uncore stuff? Or maybe even fork a new process?
>> >>
>> No, this is currently restricted to system-wide sessions only.
>
>

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
perfmon2-devel mailing list
perfmon2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/perfmon2-devel

Reply via email to