Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1534729 > unrolled thread
| Started by | Srinivas Ramana <sramana@codeaurora.org> |
|---|---|
| First post | 2016-12-02 09:20 +0100 |
| Last post | 2016-12-06 13:30 +0100 |
| Articles | 4 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH] trace: extend trace_clock to support arch_arm clock counter Srinivas Ramana <sramana@codeaurora.org> - 2016-12-02 09:20 +0100
Re: [PATCH] trace: extend trace_clock to support arch_arm clock counter Will Deacon <will.deacon@arm.com> - 2016-12-02 12:10 +0100
Re: [PATCH] trace: extend trace_clock to support arch_arm clock counter Srinivas Ramana <sramana@codeaurora.org> - 2016-12-04 09:40 +0100
Re: [PATCH] trace: extend trace_clock to support arch_arm clock counter Will Deacon <will.deacon@arm.com> - 2016-12-06 13:30 +0100
| From | Srinivas Ramana <sramana@codeaurora.org> |
|---|---|
| Date | 2016-12-02 09:20 +0100 |
| Subject | [PATCH] trace: extend trace_clock to support arch_arm clock counter |
| Message-ID | <sJRex-16S-11@gated-at.bofh.it> |
Extend the trace_clock to support the arch timer cycle
counter so that we can get the monotonic cycle count
in the traces. This will help in correlating the traces with the
timestamps/events in other subsystems in the soc which share
this common counter for driving their timers.
Signed-off-by: Srinivas Ramana <sramana@codeaurora.org>
---
arch/arm64/include/asm/Kbuild | 1 -
arch/arm64/include/asm/trace_clock.h | 20 ++++++++++++++++++++
2 files changed, 20 insertions(+), 1 deletion(-)
create mode 100644 arch/arm64/include/asm/trace_clock.h
diff --git a/arch/arm64/include/asm/Kbuild b/arch/arm64/include/asm/Kbuild
index 44e1d7f10add..c943e9c9823a 100644
--- a/arch/arm64/include/asm/Kbuild
+++ b/arch/arm64/include/asm/Kbuild
@@ -41,7 +41,6 @@ generic-y += swab.h
generic-y += switch_to.h
generic-y += termbits.h
generic-y += termios.h
-generic-y += trace_clock.h
generic-y += types.h
generic-y += unaligned.h
generic-y += user.h
diff --git a/arch/arm64/include/asm/trace_clock.h b/arch/arm64/include/asm/trace_clock.h
new file mode 100644
index 000000000000..dc9af640738d
--- /dev/null
+++ b/arch/arm64/include/asm/trace_clock.h
@@ -0,0 +1,20 @@
+#ifndef _ASM_ARM64_TRACE_CLOCK_H
+#define _ASM_ARM64_TRACE_CLOCK_H
+
+#include <linux/compiler.h>
+#include <linux/types.h>
+#include <asm/arch_timer.h>
+
+/*
+ * trace_clock_arm64_count_vct(): A clock that is just the cycle counter.
+ * Unlike the other clocks, this is not in nanoseconds.
+ */
+static inline u64 notrace trace_clock_arm64_count_vct(void)
+{
+ return arch_counter_get_cntvct();
+}
+
+# define ARCH_TRACE_CLOCKS \
+ { trace_clock_arm64_count_vct, "arm64-count-vct", 0 },
+
+#endif /* _ASM_ARM64_TRACE_CLOCK_H */
--
Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc.,
is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.
[toc] | [next] | [standalone]
| From | Will Deacon <will.deacon@arm.com> |
|---|---|
| Date | 2016-12-02 12:10 +0100 |
| Subject | Re: [PATCH] trace: extend trace_clock to support arch_arm clock counter |
| Message-ID | <sJTT3-34R-5@gated-at.bofh.it> |
| In reply to | #1534729 |
On Fri, Dec 02, 2016 at 01:44:55PM +0530, Srinivas Ramana wrote: > Extend the trace_clock to support the arch timer cycle > counter so that we can get the monotonic cycle count > in the traces. This will help in correlating the traces with the > timestamps/events in other subsystems in the soc which share > this common counter for driving their timers. I'm not sure I follow this reasoning. What's wrong with nanoseconds? In particular, the "perf" trace_clock hangs off sched_clock, which should be backed by the architected counter anyway. What does the cycle counter in isolation tell you, given that the frequency isn't architected? I think I'm missing something here. Will
[toc] | [prev] | [next] | [standalone]
| From | Srinivas Ramana <sramana@codeaurora.org> |
|---|---|
| Date | 2016-12-04 09:40 +0100 |
| Message-ID | <sKAuZ-4P9-9@gated-at.bofh.it> |
| In reply to | #1534842 |
On 12/02/2016 04:38 PM, Will Deacon wrote: > On Fri, Dec 02, 2016 at 01:44:55PM +0530, Srinivas Ramana wrote: >> Extend the trace_clock to support the arch timer cycle >> counter so that we can get the monotonic cycle count >> in the traces. This will help in correlating the traces with the >> timestamps/events in other subsystems in the soc which share >> this common counter for driving their timers. > > I'm not sure I follow this reasoning. What's wrong with nanoseconds? In > particular, the "perf" trace_clock hangs off sched_clock, which should > be backed by the architected counter anyway. What does the cycle counter in > isolation tell you, given that the frequency isn't architected? > > I think I'm missing something here. > > Will > Having cycle counter would help in the cases where we want to correlate the time with other subsystems which are outside cpu subsystem. local_clock or even the perf track_clock uses sched_clock which gets suspended during system suspend. Yes, they are backed up by the architected counter but they ignore the cycles spent in suspend. so, when comparing with monotonically increasing cycle counter, other clocks doesn't help. It seems X86 uses the TSC counter to help such cases. Thanks, -- Srinivas R -- Qualcomm India Private Limited, on behalf of Qualcomm Innovation Center, Inc., is a member of Code Aurora Forum, a Linux Foundation Collaborative Project.
[toc] | [prev] | [next] | [standalone]
| From | Will Deacon <will.deacon@arm.com> |
|---|---|
| Date | 2016-12-06 13:30 +0100 |
| Subject | Re: [PATCH] trace: extend trace_clock to support arch_arm clock counter |
| Message-ID | <sLn2F-1ZI-1@gated-at.bofh.it> |
| In reply to | #1535616 |
On Sun, Dec 04, 2016 at 02:06:23PM +0530, Srinivas Ramana wrote: > On 12/02/2016 04:38 PM, Will Deacon wrote: > >On Fri, Dec 02, 2016 at 01:44:55PM +0530, Srinivas Ramana wrote: > >>Extend the trace_clock to support the arch timer cycle > >>counter so that we can get the monotonic cycle count > >>in the traces. This will help in correlating the traces with the > >>timestamps/events in other subsystems in the soc which share > >>this common counter for driving their timers. > > > >I'm not sure I follow this reasoning. What's wrong with nanoseconds? In > >particular, the "perf" trace_clock hangs off sched_clock, which should > >be backed by the architected counter anyway. What does the cycle counter in > >isolation tell you, given that the frequency isn't architected? > > > >I think I'm missing something here. > > > > Having cycle counter would help in the cases where we want to correlate the > time with other subsystems which are outside cpu subsystem. Do you have an example of these subsystems? Can they be used to generate trace data with mainline? > local_clock or even the perf track_clock uses sched_clock which gets > suspended during system suspend. Yes, they are backed up by the > architected counter but they ignore the cycles spent in suspend.i Does mono_raw solve this (also hangs off the architected counter and is supported in the vdso)? > so, when comparing with monotonically increasing cycle counter, other > clocks doesn't help. It seems X86 uses the TSC counter to help such cases. Does this mean we need a way to expose the frequency to userspace, too? Will
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web