stm class: ftrace: Use different channel accroding to CPU
To avoid mixup of packets from differnt ftrace packets simultaneously, use different channel for packets from different CPU. Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org> Signed-off-by: Tingwei Zhang <tingwei@codeaurora.org> Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com> Link: https://lore.kernel.org/r/20201005071319.78508-7-alexander.shishkin@linux.intel.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
		
							parent
							
								
									e8ecea3017
								
							
						
					
					
						commit
						b8f8534b10
					
				| @ -37,8 +37,10 @@ static void notrace | ||||
| stm_ftrace_write(struct trace_export *export, const void *buf, unsigned int len) | ||||
| { | ||||
| 	struct stm_ftrace *stm = container_of(export, struct stm_ftrace, ftrace); | ||||
| 	/* This is called from trace system with preemption disabled */ | ||||
| 	unsigned int cpu = smp_processor_id(); | ||||
| 
 | ||||
| 	stm_source_write(&stm->data, STM_FTRACE_CHAN, buf, len); | ||||
| 	stm_source_write(&stm->data, STM_FTRACE_CHAN + cpu, buf, len); | ||||
| } | ||||
| 
 | ||||
| static int stm_ftrace_link(struct stm_source_data *data) | ||||
| @ -63,6 +65,7 @@ static int __init stm_ftrace_init(void) | ||||
| { | ||||
| 	int ret; | ||||
| 
 | ||||
| 	stm_ftrace.data.nr_chans = roundup_pow_of_two(num_possible_cpus()); | ||||
| 	ret = stm_source_register_device(NULL, &stm_ftrace.data); | ||||
| 	if (ret) | ||||
| 		pr_err("Failed to register stm_source - ftrace.\n"); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user