Skip to content

Commit 694b3f6

Browse files
committed
tracing: Rename trace_array field max_buffer to snapshot_buffer
When tracing was first added, there were latency tracers that would take a snapshot of the current trace when a new max latency was hit. This snapshot buffer was called "max_buffer". Since then, a snapshot feature was added that allowed user space or event triggers to trigger a snapshot of the current buffer using the same max_buffer of the trace_array. As this snapshot buffer now has a more generic use case, calling it "max_buffer" is confusing. Rename it to snapshot_buffer. Cc: Masami Hiramatsu <mhiramat@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Cc: Andrew Morton <akpm@linux-foundation.org> Link: https://patch.msgid.link/20260208183856.428446729@kernel.org Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
1 parent 98021e3 commit 694b3f6

3 files changed

Lines changed: 48 additions & 47 deletions

File tree

kernel/trace/trace.c

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -934,12 +934,12 @@ int tracing_alloc_snapshot_instance(struct trace_array *tr)
934934

935935
/* Make the snapshot buffer have the same order as main buffer */
936936
order = ring_buffer_subbuf_order_get(tr->array_buffer.buffer);
937-
ret = ring_buffer_subbuf_order_set(tr->max_buffer.buffer, order);
937+
ret = ring_buffer_subbuf_order_set(tr->snapshot_buffer.buffer, order);
938938
if (ret < 0)
939939
return ret;
940940

941941
/* allocate spare buffer */
942-
ret = resize_buffer_duplicate_size(&tr->max_buffer,
942+
ret = resize_buffer_duplicate_size(&tr->snapshot_buffer,
943943
&tr->array_buffer, RING_BUFFER_ALL_CPUS);
944944
if (ret < 0)
945945
return ret;
@@ -957,10 +957,10 @@ static void free_snapshot(struct trace_array *tr)
957957
* The max_tr ring buffer has some state (e.g. ring->clock) and
958958
* we want preserve it.
959959
*/
960-
ring_buffer_subbuf_order_set(tr->max_buffer.buffer, 0);
961-
ring_buffer_resize(tr->max_buffer.buffer, 1, RING_BUFFER_ALL_CPUS);
962-
set_buffer_entries(&tr->max_buffer, 1);
963-
tracing_reset_online_cpus(&tr->max_buffer);
960+
ring_buffer_subbuf_order_set(tr->snapshot_buffer.buffer, 0);
961+
ring_buffer_resize(tr->snapshot_buffer.buffer, 1, RING_BUFFER_ALL_CPUS);
962+
set_buffer_entries(&tr->snapshot_buffer, 1);
963+
tracing_reset_online_cpus(&tr->snapshot_buffer);
964964
tr->allocated_snapshot = false;
965965
}
966966

@@ -1556,7 +1556,7 @@ static void
15561556
__update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu)
15571557
{
15581558
struct array_buffer *trace_buf = &tr->array_buffer;
1559-
struct array_buffer *max_buf = &tr->max_buffer;
1559+
struct array_buffer *max_buf = &tr->snapshot_buffer;
15601560
struct trace_array_cpu *data = per_cpu_ptr(trace_buf->data, cpu);
15611561
struct trace_array_cpu *max_data = per_cpu_ptr(max_buf->data, cpu);
15621562

@@ -1616,17 +1616,17 @@ update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu,
16161616

16171617
/* Inherit the recordable setting from array_buffer */
16181618
if (ring_buffer_record_is_set_on(tr->array_buffer.buffer))
1619-
ring_buffer_record_on(tr->max_buffer.buffer);
1619+
ring_buffer_record_on(tr->snapshot_buffer.buffer);
16201620
else
1621-
ring_buffer_record_off(tr->max_buffer.buffer);
1621+
ring_buffer_record_off(tr->snapshot_buffer.buffer);
16221622

16231623
#ifdef CONFIG_TRACER_SNAPSHOT
16241624
if (tr->cond_snapshot && !tr->cond_snapshot->update(tr, cond_data)) {
16251625
arch_spin_unlock(&tr->max_lock);
16261626
return;
16271627
}
16281628
#endif
1629-
swap(tr->array_buffer.buffer, tr->max_buffer.buffer);
1629+
swap(tr->array_buffer.buffer, tr->snapshot_buffer.buffer);
16301630

16311631
__update_max_tr(tr, tsk, cpu);
16321632

@@ -1661,7 +1661,7 @@ update_max_tr_single(struct trace_array *tr, struct task_struct *tsk, int cpu)
16611661

16621662
arch_spin_lock(&tr->max_lock);
16631663

1664-
ret = ring_buffer_swap_cpu(tr->max_buffer.buffer, tr->array_buffer.buffer, cpu);
1664+
ret = ring_buffer_swap_cpu(tr->snapshot_buffer.buffer, tr->array_buffer.buffer, cpu);
16651665

16661666
if (ret == -EBUSY) {
16671667
/*
@@ -1671,7 +1671,7 @@ update_max_tr_single(struct trace_array *tr, struct task_struct *tsk, int cpu)
16711671
* and flag that it failed.
16721672
* Another reason is resize is in progress.
16731673
*/
1674-
trace_array_printk_buf(tr->max_buffer.buffer, _THIS_IP_,
1674+
trace_array_printk_buf(tr->snapshot_buffer.buffer, _THIS_IP_,
16751675
"Failed to swap buffers due to commit or resize in progress\n");
16761676
}
16771677

@@ -1722,7 +1722,7 @@ static int wait_on_pipe(struct trace_iterator *iter, int full)
17221722
* to happen, this would now be the main buffer.
17231723
*/
17241724
if (iter->snapshot)
1725-
iter->array_buffer = &iter->tr->max_buffer;
1725+
iter->array_buffer = &iter->tr->snapshot_buffer;
17261726
#endif
17271727
return ret;
17281728
}
@@ -1790,7 +1790,7 @@ static int run_tracer_selftest(struct tracer *type)
17901790
if (type->use_max_tr) {
17911791
/* If we expanded the buffers, make sure the max is expanded too */
17921792
if (tr->ring_buffer_expanded)
1793-
ring_buffer_resize(tr->max_buffer.buffer, trace_buf_size,
1793+
ring_buffer_resize(tr->snapshot_buffer.buffer, trace_buf_size,
17941794
RING_BUFFER_ALL_CPUS);
17951795
tr->allocated_snapshot = true;
17961796
}
@@ -1817,7 +1817,7 @@ static int run_tracer_selftest(struct tracer *type)
18171817

18181818
/* Shrink the max buffer again */
18191819
if (tr->ring_buffer_expanded)
1820-
ring_buffer_resize(tr->max_buffer.buffer, 1,
1820+
ring_buffer_resize(tr->snapshot_buffer.buffer, 1,
18211821
RING_BUFFER_ALL_CPUS);
18221822
}
18231823
#endif
@@ -2060,7 +2060,7 @@ void tracing_reset_all_online_cpus_unlocked(void)
20602060
tr->clear_trace = false;
20612061
tracing_reset_online_cpus(&tr->array_buffer);
20622062
#ifdef CONFIG_TRACER_MAX_TRACE
2063-
tracing_reset_online_cpus(&tr->max_buffer);
2063+
tracing_reset_online_cpus(&tr->snapshot_buffer);
20642064
#endif
20652065
}
20662066
}
@@ -2100,7 +2100,7 @@ static void tracing_start_tr(struct trace_array *tr)
21002100
ring_buffer_record_enable(buffer);
21012101

21022102
#ifdef CONFIG_TRACER_MAX_TRACE
2103-
buffer = tr->max_buffer.buffer;
2103+
buffer = tr->snapshot_buffer.buffer;
21042104
if (buffer)
21052105
ring_buffer_record_enable(buffer);
21062106
#endif
@@ -2136,7 +2136,7 @@ static void tracing_stop_tr(struct trace_array *tr)
21362136
ring_buffer_record_disable(buffer);
21372137

21382138
#ifdef CONFIG_TRACER_MAX_TRACE
2139-
buffer = tr->max_buffer.buffer;
2139+
buffer = tr->snapshot_buffer.buffer;
21402140
if (buffer)
21412141
ring_buffer_record_disable(buffer);
21422142
#endif
@@ -3943,7 +3943,7 @@ __tracing_open(struct inode *inode, struct file *file, bool snapshot)
39433943
#ifdef CONFIG_TRACER_MAX_TRACE
39443944
/* Currently only the top directory has a snapshot */
39453945
if (tr->current_trace->print_max || snapshot)
3946-
iter->array_buffer = &tr->max_buffer;
3946+
iter->array_buffer = &tr->snapshot_buffer;
39473947
else
39483948
#endif
39493949
iter->array_buffer = &tr->array_buffer;
@@ -4146,7 +4146,7 @@ static int tracing_open(struct inode *inode, struct file *file)
41464146

41474147
#ifdef CONFIG_TRACER_MAX_TRACE
41484148
if (tr->current_trace->print_max)
4149-
trace_buf = &tr->max_buffer;
4149+
trace_buf = &tr->snapshot_buffer;
41504150
#endif
41514151

41524152
if (cpu == RING_BUFFER_ALL_CPUS)
@@ -4359,14 +4359,14 @@ int tracing_set_cpumask(struct trace_array *tr,
43594359
!cpumask_test_cpu(cpu, tracing_cpumask_new)) {
43604360
ring_buffer_record_disable_cpu(tr->array_buffer.buffer, cpu);
43614361
#ifdef CONFIG_TRACER_MAX_TRACE
4362-
ring_buffer_record_disable_cpu(tr->max_buffer.buffer, cpu);
4362+
ring_buffer_record_disable_cpu(tr->snapshot_buffer.buffer, cpu);
43634363
#endif
43644364
}
43654365
if (!cpumask_test_cpu(cpu, tr->tracing_cpumask) &&
43664366
cpumask_test_cpu(cpu, tracing_cpumask_new)) {
43674367
ring_buffer_record_enable_cpu(tr->array_buffer.buffer, cpu);
43684368
#ifdef CONFIG_TRACER_MAX_TRACE
4369-
ring_buffer_record_enable_cpu(tr->max_buffer.buffer, cpu);
4369+
ring_buffer_record_enable_cpu(tr->snapshot_buffer.buffer, cpu);
43704370
#endif
43714371
}
43724372
}
@@ -4576,7 +4576,7 @@ int set_tracer_flag(struct trace_array *tr, u64 mask, int enabled)
45764576
case TRACE_ITER(OVERWRITE):
45774577
ring_buffer_change_overwrite(tr->array_buffer.buffer, enabled);
45784578
#ifdef CONFIG_TRACER_MAX_TRACE
4579-
ring_buffer_change_overwrite(tr->max_buffer.buffer, enabled);
4579+
ring_buffer_change_overwrite(tr->snapshot_buffer.buffer, enabled);
45804580
#endif
45814581
break;
45824582

@@ -5294,7 +5294,7 @@ static int __tracing_resize_ring_buffer(struct trace_array *tr,
52945294
if (!tr->allocated_snapshot)
52955295
goto out;
52965296

5297-
ret = ring_buffer_resize(tr->max_buffer.buffer, size, cpu);
5297+
ret = ring_buffer_resize(tr->snapshot_buffer.buffer, size, cpu);
52985298
if (ret < 0) {
52995299
int r = resize_buffer_duplicate_size(&tr->array_buffer,
53005300
&tr->array_buffer, cpu);
@@ -5319,7 +5319,7 @@ static int __tracing_resize_ring_buffer(struct trace_array *tr,
53195319
goto out_start;
53205320
}
53215321

5322-
update_buffer_entries(&tr->max_buffer, cpu);
5322+
update_buffer_entries(&tr->snapshot_buffer, cpu);
53235323

53245324
out:
53255325
#endif /* CONFIG_TRACER_MAX_TRACE */
@@ -7036,9 +7036,9 @@ int tracing_set_clock(struct trace_array *tr, const char *clockstr)
70367036
tracing_reset_online_cpus(&tr->array_buffer);
70377037

70387038
#ifdef CONFIG_TRACER_MAX_TRACE
7039-
if (tr->max_buffer.buffer)
7040-
ring_buffer_set_clock(tr->max_buffer.buffer, trace_clocks[i].func);
7041-
tracing_reset_online_cpus(&tr->max_buffer);
7039+
if (tr->snapshot_buffer.buffer)
7040+
ring_buffer_set_clock(tr->snapshot_buffer.buffer, trace_clocks[i].func);
7041+
tracing_reset_online_cpus(&tr->snapshot_buffer);
70427042
#endif
70437043

70447044
if (tr->scratch && !(tr->flags & TRACE_ARRAY_FL_LAST_BOOT)) {
@@ -7170,7 +7170,7 @@ static int tracing_snapshot_open(struct inode *inode, struct file *file)
71707170
ret = 0;
71717171

71727172
iter->tr = tr;
7173-
iter->array_buffer = &tr->max_buffer;
7173+
iter->array_buffer = &tr->snapshot_buffer;
71747174
iter->cpu_file = tracing_get_cpu(inode);
71757175
m->private = iter;
71767176
file->private_data = m;
@@ -7233,7 +7233,7 @@ tracing_snapshot_write(struct file *filp, const char __user *ubuf, size_t cnt,
72337233
return -EINVAL;
72347234
#endif
72357235
if (tr->allocated_snapshot)
7236-
ret = resize_buffer_duplicate_size(&tr->max_buffer,
7236+
ret = resize_buffer_duplicate_size(&tr->snapshot_buffer,
72377237
&tr->array_buffer, iter->cpu_file);
72387238

72397239
ret = tracing_arm_snapshot_locked(tr);
@@ -7254,9 +7254,9 @@ tracing_snapshot_write(struct file *filp, const char __user *ubuf, size_t cnt,
72547254
default:
72557255
if (tr->allocated_snapshot) {
72567256
if (iter->cpu_file == RING_BUFFER_ALL_CPUS)
7257-
tracing_reset_online_cpus(&tr->max_buffer);
7257+
tracing_reset_online_cpus(&tr->snapshot_buffer);
72587258
else
7259-
tracing_reset_cpu(&tr->max_buffer, iter->cpu_file);
7259+
tracing_reset_cpu(&tr->snapshot_buffer, iter->cpu_file);
72607260
}
72617261
break;
72627262
}
@@ -7312,7 +7312,7 @@ static int snapshot_raw_open(struct inode *inode, struct file *filp)
73127312
}
73137313

73147314
info->iter.snapshot = true;
7315-
info->iter.array_buffer = &info->iter.tr->max_buffer;
7315+
info->iter.array_buffer = &info->iter.tr->snapshot_buffer;
73167316

73177317
return ret;
73187318
}
@@ -9195,7 +9195,7 @@ buffer_subbuf_size_write(struct file *filp, const char __user *ubuf,
91959195
if (!tr->allocated_snapshot)
91969196
goto out_max;
91979197

9198-
ret = ring_buffer_subbuf_order_set(tr->max_buffer.buffer, order);
9198+
ret = ring_buffer_subbuf_order_set(tr->snapshot_buffer.buffer, order);
91999199
if (ret) {
92009200
/* Put back the old order */
92019201
cnt = ring_buffer_subbuf_order_set(tr->array_buffer.buffer, old_order);
@@ -9416,7 +9416,7 @@ static int allocate_trace_buffers(struct trace_array *tr, int size)
94169416
if (tr->range_addr_start)
94179417
return 0;
94189418

9419-
ret = allocate_trace_buffer(tr, &tr->max_buffer,
9419+
ret = allocate_trace_buffer(tr, &tr->snapshot_buffer,
94209420
allocate_snapshot ? size : 1);
94219421
if (MEM_FAIL(ret, "Failed to allocate trace buffer\n")) {
94229422
free_trace_buffer(&tr->array_buffer);
@@ -9439,7 +9439,7 @@ static void free_trace_buffers(struct trace_array *tr)
94399439
kfree(tr->module_delta);
94409440

94419441
#ifdef CONFIG_TRACER_MAX_TRACE
9442-
free_trace_buffer(&tr->max_buffer);
9442+
free_trace_buffer(&tr->snapshot_buffer);
94439443
#endif
94449444
}
94459445

kernel/trace/trace.h

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -331,17 +331,18 @@ struct trace_array {
331331
struct array_buffer array_buffer;
332332
#ifdef CONFIG_TRACER_MAX_TRACE
333333
/*
334-
* The max_buffer is used to snapshot the trace when a maximum
334+
* The snapshot_buffer is used to snapshot the trace when a maximum
335335
* latency is reached, or when the user initiates a snapshot.
336336
* Some tracers will use this to store a maximum trace while
337337
* it continues examining live traces.
338338
*
339-
* The buffers for the max_buffer are set up the same as the array_buffer
340-
* When a snapshot is taken, the buffer of the max_buffer is swapped
341-
* with the buffer of the array_buffer and the buffers are reset for
342-
* the array_buffer so the tracing can continue.
339+
* The buffers for the snapshot_buffer are set up the same as the
340+
* array_buffer. When a snapshot is taken, the buffer of the
341+
* snapshot_buffer is swapped with the buffer of the array_buffer
342+
* and the buffers are reset for the array_buffer so the tracing can
343+
* continue.
343344
*/
344-
struct array_buffer max_buffer;
345+
struct array_buffer snapshot_buffer;
345346
bool allocated_snapshot;
346347
spinlock_t snapshot_trigger_lock;
347348
unsigned int snapshot;

kernel/trace/trace_selftest.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1225,7 +1225,7 @@ trace_selftest_startup_irqsoff(struct tracer *trace, struct trace_array *tr)
12251225
/* check both trace buffers */
12261226
ret = trace_test_buffer(&tr->array_buffer, NULL);
12271227
if (!ret)
1228-
ret = trace_test_buffer(&tr->max_buffer, &count);
1228+
ret = trace_test_buffer(&tr->snapshot_buffer, &count);
12291229
trace->reset(tr);
12301230
tracing_start();
12311231

@@ -1287,7 +1287,7 @@ trace_selftest_startup_preemptoff(struct tracer *trace, struct trace_array *tr)
12871287
/* check both trace buffers */
12881288
ret = trace_test_buffer(&tr->array_buffer, NULL);
12891289
if (!ret)
1290-
ret = trace_test_buffer(&tr->max_buffer, &count);
1290+
ret = trace_test_buffer(&tr->snapshot_buffer, &count);
12911291
trace->reset(tr);
12921292
tracing_start();
12931293

@@ -1355,7 +1355,7 @@ trace_selftest_startup_preemptirqsoff(struct tracer *trace, struct trace_array *
13551355
if (ret)
13561356
goto out;
13571357

1358-
ret = trace_test_buffer(&tr->max_buffer, &count);
1358+
ret = trace_test_buffer(&tr->snapshot_buffer, &count);
13591359
if (ret)
13601360
goto out;
13611361

@@ -1385,7 +1385,7 @@ trace_selftest_startup_preemptirqsoff(struct tracer *trace, struct trace_array *
13851385
if (ret)
13861386
goto out;
13871387

1388-
ret = trace_test_buffer(&tr->max_buffer, &count);
1388+
ret = trace_test_buffer(&tr->snapshot_buffer, &count);
13891389

13901390
if (!ret && !count) {
13911391
printk(KERN_CONT ".. no entries found ..");
@@ -1513,7 +1513,7 @@ trace_selftest_startup_wakeup(struct tracer *trace, struct trace_array *tr)
15131513
/* check both trace buffers */
15141514
ret = trace_test_buffer(&tr->array_buffer, NULL);
15151515
if (!ret)
1516-
ret = trace_test_buffer(&tr->max_buffer, &count);
1516+
ret = trace_test_buffer(&tr->snapshot_buffer, &count);
15171517

15181518

15191519
trace->reset(tr);

0 commit comments

Comments
 (0)