All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexander Shishkin <alexander.shishkin@linux.intel.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: linux-kernel@vger.kernel.org,
	Tingwei Zhang <tingwei@codeaurora.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>
Subject: [PATCH 6/8] stm class: ftrace: Use different channel accroding to CPU
Date: Mon,  5 Oct 2020 10:13:17 +0300	[thread overview]
Message-ID: <20201005071319.78508-7-alexander.shishkin@linux.intel.com> (raw)
In-Reply-To: <20201005071319.78508-1-alexander.shishkin@linux.intel.com>

From: Tingwei Zhang <tingwei@codeaurora.org>

To avoid mixup of packets from differnt ftrace packets simultaneously,
use different channel for packets from different CPU.

Signed-off-by: Tingwei Zhang <tingwei@codeaurora.org>
Reviewed-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
Signed-off-by: Alexander Shishkin <alexander.shishkin@linux.intel.com>
---
 drivers/hwtracing/stm/ftrace.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/drivers/hwtracing/stm/ftrace.c b/drivers/hwtracing/stm/ftrace.c
index c694a6e692d1..3bb606dfa634 100644
--- a/drivers/hwtracing/stm/ftrace.c
+++ b/drivers/hwtracing/stm/ftrace.c
@@ -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");
-- 
2.28.0


  parent reply	other threads:[~2020-10-05  7:13 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-05  7:13 [PATCH 0/8] stm class/intel_th: Updates for v5.10 Alexander Shishkin
2020-10-05  7:13 ` [PATCH 1/8] stm class: ftrace: Change dependency to TRACING Alexander Shishkin
2020-10-05  7:13 ` [PATCH 2/8] tracing: Add flag to control different traces Alexander Shishkin
2020-10-05  7:13 ` [PATCH 3/8] tracing: Add trace_export support for event trace Alexander Shishkin
2020-10-05  7:13 ` [PATCH 4/8] tracing: Add trace_export support for trace_marker Alexander Shishkin
2020-10-05  7:13 ` [PATCH 5/8] stm class: ftrace: Enable supported trace export flag Alexander Shishkin
2020-10-05  7:13 ` Alexander Shishkin [this message]
2020-10-05  7:13 ` [PATCH 7/8] intel_th: pci: Add Alder Lake-S support Alexander Shishkin
2020-10-05  7:13 ` [PATCH 8/8] intel_th: pci: Add Alder Lake CPU support Alexander Shishkin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201005071319.78508-7-alexander.shishkin@linux.intel.com \
    --to=alexander.shishkin@linux.intel.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rostedt@goodmis.org \
    --cc=tingwei@codeaurora.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.