Thread (12 messages) 12 messages, 4 authors, 2021-09-17

Re: [PATCH 1/3] libperf: Add processing to scale the counters obtained during the read() system call when multiplexing

From: nakamura.shun@fujitsu.com <hidden>
Date: 2021-08-24 10:18:53
Also in: lkml

Hi, Rob
On Fri, Aug 20, 2021 at 06:39:06PM +0900, Shunsuke Nakamura wrote:
quoted
perf_evsel__read() scales counters obtained by RDPMC during multiplexing, but
does not scale counters obtained by read() system call.

Add processing to perf_evsel__read() to scale the counters obtained during the
read() system call when multiplexing.
Which one is right though? Changing what read() returns could break 
users, right? Or are you implying that the RDPMC path is correct and 
read() was not. More likely the former case since I wrote the latter.
perf_evsel__read() returns both the count obtained by RDPMC and the count obtained
by the read() system call when multiplexed with RDPMC enabled.

That is, there is a mix of scaled and unscaled values.

As Rob says, when this patch is applied, rescaling the count obtained from
perf_evsel__read() during multiplexing will break the count.

I think the easiest solution is to change the value you get from RDPMC to not scale 
and let the user scale it, but I thought it would be a little inconvenient.

Best Regards
Shunsuke
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help