|
@@ -192,6 +192,7 @@ config IRQSOFF_TRACER
|
|
|
select TRACER_MAX_TRACE
|
|
|
select RING_BUFFER_ALLOW_SWAP
|
|
|
select TRACER_SNAPSHOT
|
|
|
+ select TRACER_SNAPSHOT_PER_CPU_SWAP
|
|
|
help
|
|
|
This option measures the time spent in irqs-off critical
|
|
|
sections, with microsecond accuracy.
|
|
@@ -215,6 +216,7 @@ config PREEMPT_TRACER
|
|
|
select TRACER_MAX_TRACE
|
|
|
select RING_BUFFER_ALLOW_SWAP
|
|
|
select TRACER_SNAPSHOT
|
|
|
+ select TRACER_SNAPSHOT_PER_CPU_SWAP
|
|
|
help
|
|
|
This option measures the time spent in preemption-off critical
|
|
|
sections, with microsecond accuracy.
|
|
@@ -266,6 +268,27 @@ config TRACER_SNAPSHOT
|
|
|
echo 1 > /sys/kernel/debug/tracing/snapshot
|
|
|
cat snapshot
|
|
|
|
|
|
+config TRACER_SNAPSHOT_PER_CPU_SWAP
|
|
|
+ bool "Allow snapshot to swap per CPU"
|
|
|
+ depends on TRACER_SNAPSHOT
|
|
|
+ select RING_BUFFER_ALLOW_SWAP
|
|
|
+ help
|
|
|
+ Allow doing a snapshot of a single CPU buffer instead of a
|
|
|
+ full swap (all buffers). If this is set, then the following is
|
|
|
+ allowed:
|
|
|
+
|
|
|
+ echo 1 > /sys/kernel/debug/tracing/per_cpu/cpu2/snapshot
|
|
|
+
|
|
|
+ After which, only the tracing buffer for CPU 2 was swapped with
|
|
|
+ the main tracing buffer, and the other CPU buffers remain the same.
|
|
|
+
|
|
|
+ When this is enabled, this adds a little more overhead to the
|
|
|
+ trace recording, as it needs to add some checks to synchronize
|
|
|
+ recording with swaps. But this does not affect the performance
|
|
|
+ of the overall system. This is enabled by default when the preempt
|
|
|
+ or irq latency tracers are enabled, as those need to swap as well
|
|
|
+ and already adds the overhead (plus a lot more).
|
|
|
+
|
|
|
config TRACE_BRANCH_PROFILING
|
|
|
bool
|
|
|
select GENERIC_TRACER
|