mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-08 18:42:53 +00:00
powerpc/ftrace: add powerpc timebase as a trace clock source
Add a new powerpc-specific trace clock using the timebase register, similar to x86-tsc. This gives us - a fast, monotonic, hardware clock source for trace entries, and - a clock that can be used to correlate events across cpus as well as across hypervisor and guests. Signed-off-by: Naveen N. Rao <naveen.n.rao@linux.vnet.ibm.com> Acked-by: Steven Rostedt <rostedt@goodmis.org> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:
parent
35a7f41cc6
commit
197165d449
@ -346,6 +346,11 @@ of ftrace. Here is a list of some of the key files:
|
||||
x86-tsc: Architectures may define their own clocks. For
|
||||
example, x86 uses its own TSC cycle clock here.
|
||||
|
||||
ppc-tb: This uses the powerpc timebase register value.
|
||||
This is in sync across CPUs and can also be used
|
||||
to correlate events across hypervisor/guest if
|
||||
tb_offset is known.
|
||||
|
||||
To set a clock, simply echo the clock name into this file.
|
||||
|
||||
echo global > trace_clock
|
||||
|
@ -6,5 +6,4 @@ generic-y += local64.h
|
||||
generic-y += mcs_spinlock.h
|
||||
generic-y += preempt.h
|
||||
generic-y += rwsem.h
|
||||
generic-y += trace_clock.h
|
||||
generic-y += vtime.h
|
||||
|
19
arch/powerpc/include/asm/trace_clock.h
Normal file
19
arch/powerpc/include/asm/trace_clock.h
Normal file
@ -0,0 +1,19 @@
|
||||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License, version 2, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* Copyright (C) 2015 Naveen N. Rao, IBM Corporation
|
||||
*/
|
||||
|
||||
#ifndef _ASM_PPC_TRACE_CLOCK_H
|
||||
#define _ASM_PPC_TRACE_CLOCK_H
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/types.h>
|
||||
|
||||
extern u64 notrace trace_clock_ppc_tb(void);
|
||||
|
||||
#define ARCH_TRACE_CLOCKS { trace_clock_ppc_tb, "ppc-tb", 0 },
|
||||
|
||||
#endif /* _ASM_PPC_TRACE_CLOCK_H */
|
@ -118,6 +118,7 @@ obj-$(CONFIG_PPC_IO_WORKAROUNDS) += io-workarounds.o
|
||||
obj-$(CONFIG_DYNAMIC_FTRACE) += ftrace.o
|
||||
obj-$(CONFIG_FUNCTION_GRAPH_TRACER) += ftrace.o
|
||||
obj-$(CONFIG_FTRACE_SYSCALLS) += ftrace.o
|
||||
obj-$(CONFIG_TRACING) += trace_clock.o
|
||||
|
||||
ifneq ($(CONFIG_PPC_INDIRECT_PIO),y)
|
||||
obj-y += iomap.o
|
||||
|
15
arch/powerpc/kernel/trace_clock.c
Normal file
15
arch/powerpc/kernel/trace_clock.c
Normal file
@ -0,0 +1,15 @@
|
||||
/*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License, version 2, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* Copyright (C) 2015 Naveen N. Rao, IBM Corporation
|
||||
*/
|
||||
|
||||
#include <asm/trace_clock.h>
|
||||
#include <asm/time.h>
|
||||
|
||||
u64 notrace trace_clock_ppc_tb(void)
|
||||
{
|
||||
return get_tb();
|
||||
}
|
Loading…
Reference in New Issue
Block a user