@@ -825,15 +825,15 @@ static void tracing_snapshot_instance_cond(struct trace_array *tr,
825825 return ;
826826 }
827827
828- /* Note, snapshot can not be used when the tracer uses it */
829- if (tracer_uses_snapshot (tr -> current_trace )) {
830- trace_array_puts (tr , "*** LATENCY TRACER ACTIVE ***\n" );
828+ if (tr -> mapped ) {
829+ trace_array_puts (tr , "*** BUFFER MEMORY MAPPED ***\n" );
831830 trace_array_puts (tr , "*** Can not use snapshot (sorry) ***\n" );
832831 return ;
833832 }
834833
835- if (tr -> mapped ) {
836- trace_array_puts (tr , "*** BUFFER MEMORY MAPPED ***\n" );
834+ /* Note, snapshot can not be used when the tracer uses it */
835+ if (tracer_uses_snapshot (tr -> current_trace )) {
836+ trace_array_puts (tr , "*** LATENCY TRACER ACTIVE ***\n" );
837837 trace_array_puts (tr , "*** Can not use snapshot (sorry) ***\n" );
838838 return ;
839839 }
@@ -1555,8 +1555,8 @@ static void
15551555__update_max_tr (struct trace_array * tr , struct task_struct * tsk , int cpu )
15561556{
15571557 struct array_buffer * trace_buf = & tr -> array_buffer ;
1558- struct array_buffer * max_buf = & tr -> snapshot_buffer ;
15591558 struct trace_array_cpu * data = per_cpu_ptr (trace_buf -> data , cpu );
1559+ struct array_buffer * max_buf = & tr -> snapshot_buffer ;
15601560 struct trace_array_cpu * max_data = per_cpu_ptr (max_buf -> data , cpu );
15611561
15621562 max_buf -> cpu = cpu ;
@@ -1585,7 +1585,14 @@ __update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu)
15851585 tracing_record_cmdline (tsk );
15861586 latency_fsnotify (tr );
15871587}
1588+ #else
1589+ static inline void trace_create_maxlat_file (struct trace_array * tr ,
1590+ struct dentry * d_tracer ) { }
1591+ static inline void __update_max_tr (struct trace_array * tr ,
1592+ struct task_struct * tsk , int cpu ) { }
1593+ #endif /* CONFIG_TRACER_MAX_TRACE */
15881594
1595+ #ifdef CONFIG_TRACER_SNAPSHOT
15891596/**
15901597 * update_max_tr - snapshot all trace buffers from global_trace to max_tr
15911598 * @tr: tracer
@@ -1619,12 +1626,11 @@ update_max_tr(struct trace_array *tr, struct task_struct *tsk, int cpu,
16191626 else
16201627 ring_buffer_record_off (tr -> snapshot_buffer .buffer );
16211628
1622- #ifdef CONFIG_TRACER_SNAPSHOT
16231629 if (tr -> cond_snapshot && !tr -> cond_snapshot -> update (tr , cond_data )) {
16241630 arch_spin_unlock (& tr -> max_lock );
16251631 return ;
16261632 }
1627- #endif
1633+
16281634 swap (tr -> array_buffer .buffer , tr -> snapshot_buffer .buffer );
16291635
16301636 __update_max_tr (tr , tsk , cpu );
@@ -1679,10 +1685,7 @@ update_max_tr_single(struct trace_array *tr, struct task_struct *tsk, int cpu)
16791685 __update_max_tr (tr , tsk , cpu );
16801686 arch_spin_unlock (& tr -> max_lock );
16811687}
1682- #else /* !CONFIG_TRACER_MAX_TRACE */
1683- static inline void trace_create_maxlat_file (struct trace_array * tr ,
1684- struct dentry * d_tracer ) { }
1685- #endif /* CONFIG_TRACER_MAX_TRACE */
1688+ #endif /* CONFIG_TRACER_SNAPSHOT */
16861689
16871690struct pipe_wait {
16881691 struct trace_iterator * iter ;
@@ -1715,7 +1718,7 @@ static int wait_on_pipe(struct trace_iterator *iter, int full)
17151718 ret = ring_buffer_wait (iter -> array_buffer -> buffer , iter -> cpu_file , full ,
17161719 wait_pipe_cond , & pwait );
17171720
1718- #ifdef CONFIG_TRACER_MAX_TRACE
1721+ #ifdef CONFIG_TRACER_SNAPSHOT
17191722 /*
17201723 * Make sure this is still the snapshot buffer, as if a snapshot were
17211724 * to happen, this would now be the main buffer.
@@ -2058,7 +2061,7 @@ void tracing_reset_all_online_cpus_unlocked(void)
20582061 continue ;
20592062 tr -> clear_trace = false;
20602063 tracing_reset_online_cpus (& tr -> array_buffer );
2061- #ifdef CONFIG_TRACER_MAX_TRACE
2064+ #ifdef CONFIG_TRACER_SNAPSHOT
20622065 tracing_reset_online_cpus (& tr -> snapshot_buffer );
20632066#endif
20642067 }
@@ -2098,7 +2101,7 @@ static void tracing_start_tr(struct trace_array *tr)
20982101 if (buffer )
20992102 ring_buffer_record_enable (buffer );
21002103
2101- #ifdef CONFIG_TRACER_MAX_TRACE
2104+ #ifdef CONFIG_TRACER_SNAPSHOT
21022105 buffer = tr -> snapshot_buffer .buffer ;
21032106 if (buffer )
21042107 ring_buffer_record_enable (buffer );
@@ -2134,7 +2137,7 @@ static void tracing_stop_tr(struct trace_array *tr)
21342137 if (buffer )
21352138 ring_buffer_record_disable (buffer );
21362139
2137- #ifdef CONFIG_TRACER_MAX_TRACE
2140+ #ifdef CONFIG_TRACER_SNAPSHOT
21382141 buffer = tr -> snapshot_buffer .buffer ;
21392142 if (buffer )
21402143 ring_buffer_record_disable (buffer );
@@ -3757,7 +3760,7 @@ static void test_ftrace_alive(struct seq_file *m)
37573760 "# MAY BE MISSING FUNCTION EVENTS\n" );
37583761}
37593762
3760- #ifdef CONFIG_TRACER_MAX_TRACE
3763+ #ifdef CONFIG_TRACER_SNAPSHOT
37613764static void show_snapshot_main_help (struct seq_file * m )
37623765{
37633766 seq_puts (m , "# echo 0 > snapshot : Clears and frees snapshot buffer\n"
@@ -3935,7 +3938,7 @@ __tracing_open(struct inode *inode, struct file *file, bool snapshot)
39353938
39363939 iter -> tr = tr ;
39373940
3938- #ifdef CONFIG_TRACER_MAX_TRACE
3941+ #ifdef CONFIG_TRACER_SNAPSHOT
39393942 /* Currently only the top directory has a snapshot */
39403943 if (tr -> current_trace -> print_max || snapshot )
39413944 iter -> array_buffer = & tr -> snapshot_buffer ;
@@ -4351,14 +4354,14 @@ int tracing_set_cpumask(struct trace_array *tr,
43514354 if (cpumask_test_cpu (cpu , tr -> tracing_cpumask ) &&
43524355 !cpumask_test_cpu (cpu , tracing_cpumask_new )) {
43534356 ring_buffer_record_disable_cpu (tr -> array_buffer .buffer , cpu );
4354- #ifdef CONFIG_TRACER_MAX_TRACE
4357+ #ifdef CONFIG_TRACER_SNAPSHOT
43554358 ring_buffer_record_disable_cpu (tr -> snapshot_buffer .buffer , cpu );
43564359#endif
43574360 }
43584361 if (!cpumask_test_cpu (cpu , tr -> tracing_cpumask ) &&
43594362 cpumask_test_cpu (cpu , tracing_cpumask_new )) {
43604363 ring_buffer_record_enable_cpu (tr -> array_buffer .buffer , cpu );
4361- #ifdef CONFIG_TRACER_MAX_TRACE
4364+ #ifdef CONFIG_TRACER_SNAPSHOT
43624365 ring_buffer_record_enable_cpu (tr -> snapshot_buffer .buffer , cpu );
43634366#endif
43644367 }
@@ -4568,7 +4571,7 @@ int set_tracer_flag(struct trace_array *tr, u64 mask, int enabled)
45684571
45694572 case TRACE_ITER (OVERWRITE ):
45704573 ring_buffer_change_overwrite (tr -> array_buffer .buffer , enabled );
4571- #ifdef CONFIG_TRACER_MAX_TRACE
4574+ #ifdef CONFIG_TRACER_SNAPSHOT
45724575 ring_buffer_change_overwrite (tr -> snapshot_buffer .buffer , enabled );
45734576#endif
45744577 break ;
@@ -5232,7 +5235,7 @@ static void update_buffer_entries(struct array_buffer *buf, int cpu)
52325235 }
52335236}
52345237
5235- #ifdef CONFIG_TRACER_MAX_TRACE
5238+ #ifdef CONFIG_TRACER_SNAPSHOT
52365239/* resize @tr's buffer to the size of @size_tr's entries */
52375240static int resize_buffer_duplicate_size (struct array_buffer * trace_buf ,
52385241 struct array_buffer * size_buf , int cpu_id )
@@ -5258,7 +5261,7 @@ static int resize_buffer_duplicate_size(struct array_buffer *trace_buf,
52585261
52595262 return ret ;
52605263}
5261- #endif /* CONFIG_TRACER_MAX_TRACE */
5264+ #endif /* CONFIG_TRACER_SNAPSHOT */
52625265
52635266static int __tracing_resize_ring_buffer (struct trace_array * tr ,
52645267 unsigned long size , int cpu )
@@ -5283,7 +5286,7 @@ static int __tracing_resize_ring_buffer(struct trace_array *tr,
52835286 if (ret < 0 )
52845287 goto out_start ;
52855288
5286- #ifdef CONFIG_TRACER_MAX_TRACE
5289+ #ifdef CONFIG_TRACER_SNAPSHOT
52875290 if (!tr -> allocated_snapshot )
52885291 goto out ;
52895292
@@ -5315,7 +5318,7 @@ static int __tracing_resize_ring_buffer(struct trace_array *tr,
53155318 update_buffer_entries (& tr -> snapshot_buffer , cpu );
53165319
53175320 out :
5318- #endif /* CONFIG_TRACER_MAX_TRACE */
5321+ #endif /* CONFIG_TRACER_SNAPSHOT */
53195322
53205323 update_buffer_entries (& tr -> array_buffer , cpu );
53215324 out_start :
@@ -7020,7 +7023,7 @@ int tracing_set_clock(struct trace_array *tr, const char *clockstr)
70207023 */
70217024 tracing_reset_online_cpus (& tr -> array_buffer );
70227025
7023- #ifdef CONFIG_TRACER_MAX_TRACE
7026+ #ifdef CONFIG_TRACER_SNAPSHOT
70247027 if (tr -> snapshot_buffer .buffer )
70257028 ring_buffer_set_clock (tr -> snapshot_buffer .buffer , trace_clocks [i ].func );
70267029 tracing_reset_online_cpus (& tr -> snapshot_buffer );
@@ -8167,7 +8170,7 @@ static long tracing_buffers_ioctl(struct file *file, unsigned int cmd, unsigned
81678170 return 0 ;
81688171}
81698172
8170- #ifdef CONFIG_TRACER_MAX_TRACE
8173+ #ifdef CONFIG_TRACER_SNAPSHOT
81718174static int get_snapshot_map (struct trace_array * tr )
81728175{
81738176 int err = 0 ;
@@ -9171,7 +9174,7 @@ buffer_subbuf_size_write(struct file *filp, const char __user *ubuf,
91719174 if (ret )
91729175 goto out ;
91739176
9174- #ifdef CONFIG_TRACER_MAX_TRACE
9177+ #ifdef CONFIG_TRACER_SNAPSHOT
91759178
91769179 if (!tr -> allocated_snapshot )
91779180 goto out_max ;
@@ -9392,7 +9395,7 @@ static int allocate_trace_buffers(struct trace_array *tr, int size)
93929395 if (ret )
93939396 return ret ;
93949397
9395- #ifdef CONFIG_TRACER_MAX_TRACE
9398+ #ifdef CONFIG_TRACER_SNAPSHOT
93969399 /* Fix mapped buffer trace arrays do not have snapshot buffers */
93979400 if (tr -> range_addr_start )
93989401 return 0 ;
@@ -9419,7 +9422,7 @@ static void free_trace_buffers(struct trace_array *tr)
94199422 free_trace_buffer (& tr -> array_buffer );
94209423 kfree (tr -> module_delta );
94219424
9422- #ifdef CONFIG_TRACER_MAX_TRACE
9425+ #ifdef CONFIG_TRACER_SNAPSHOT
94239426 free_trace_buffer (& tr -> snapshot_buffer );
94249427#endif
94259428}
@@ -9561,7 +9564,7 @@ trace_array_create_systems(const char *name, const char *systems,
95619564 tr -> syscall_buf_sz = global_trace .syscall_buf_sz ;
95629565
95639566 tr -> max_lock = (arch_spinlock_t )__ARCH_SPIN_LOCK_UNLOCKED ;
9564- #ifdef CONFIG_TRACER_MAX_TRACE
9567+ #ifdef CONFIG_TRACER_SNAPSHOT
95659568 spin_lock_init (& tr -> snapshot_trigger_lock );
95669569#endif
95679570 tr -> current_trace = & nop_trace ;
@@ -10515,7 +10518,7 @@ ssize_t trace_parse_run_command(struct file *file, const char __user *buffer,
1051510518 return done ;
1051610519}
1051710520
10518- #ifdef CONFIG_TRACER_MAX_TRACE
10521+ #ifdef CONFIG_TRACER_SNAPSHOT
1051910522__init static bool tr_needs_alloc_snapshot (const char * name )
1052010523{
1052110524 char * test ;
@@ -10705,7 +10708,7 @@ __init static void enable_instances(void)
1070510708 }
1070610709 } else {
1070710710 /* Only non mapped buffers have snapshot buffers */
10708- if (IS_ENABLED (CONFIG_TRACER_MAX_TRACE ))
10711+ if (IS_ENABLED (CONFIG_TRACER_SNAPSHOT ))
1070910712 do_allocate_snapshot (name );
1071010713 }
1071110714
@@ -10832,7 +10835,7 @@ __init static int tracer_alloc_buffers(void)
1083210835 global_trace .current_trace_flags = nop_trace .flags ;
1083310836
1083410837 global_trace .max_lock = (arch_spinlock_t )__ARCH_SPIN_LOCK_UNLOCKED ;
10835- #ifdef CONFIG_TRACER_MAX_TRACE
10838+ #ifdef CONFIG_TRACER_SNAPSHOT
1083610839 spin_lock_init (& global_trace .snapshot_trigger_lock );
1083710840#endif
1083810841 ftrace_init_global_array_ops (& global_trace );
@@ -10900,7 +10903,7 @@ struct trace_array *trace_get_global_array(void)
1090010903
1090110904void __init ftrace_boot_snapshot (void )
1090210905{
10903- #ifdef CONFIG_TRACER_MAX_TRACE
10906+ #ifdef CONFIG_TRACER_SNAPSHOT
1090410907 struct trace_array * tr ;
1090510908
1090610909 if (!snapshot_at_boot )
0 commit comments