Re: [PATCH] perf arm-spe: Fix incorrect sample timestamp in perf script

From: Yang Jihong
Date: Mon Jun 28 2021 - 02:31:08 EST


Hello Leo,

On 2021/6/28 12:07, Leo Yan wrote:
On Mon, Jun 28, 2021 at 11:45:07AM +0800, Yang Jihong wrote:

[...]

The timestamp does not match. Each timestamp has a difference of
213.98296702 seconds. Is the command I executed wrong?

I don't understand what's your meaning "a difference of 213.98296702
seconds".

But let me give an explaination with your below examples. You could
the command "perf script" outputs the timestamp 314938.859071370 which
is the kernel's timestamp, if using the command "perf script -D", it
outputs the value 31515284203839 which is the Arch timer's raw counter
value.

In theory, the arch timer's counter is enabled at the very early
time before kernel's booting (e.g. bootloaders, UEFI, etc...). So for
the kernel's timestamp, it should calibrate the timestamp and reduce
the offset prior to the kernel's booting. I think this is the reason
why you observed 213.98296702 seconds difference (if compared with
your own patch?)

If still see any issue, please let me know. Thanks a lot for the
testing!

Thanks for the very detailed explanation.
To keep the correct relative time sequence between events in SPE and other events, we should use kernel timestamp instead of arch time. Therefore, we need to calibrate the time. Is this correct?

Thanks,
Jihong.
Leo

|symbol_address|perf script| perf script -D|
|ffffb7ee2a20e100|314938.859071370|31515284203839|
|ffffb7ee29f360e0|314938.859753820|31515284272084|
|fffe85dd87e0|314938.859820430|31515284278745|
|fffe85dd7a28|314938.859941110|31515284290813|
|fffe85dd7a28|314938.859948890|31515284291591|
|fffe85dc8f58|314938.859953610|31515284292063|
.