mirror of https://gitee.com/openkylin/linux.git
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