Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1178308 > unrolled thread
| Started by | Chunyan Zhang <zhang.chunyan@linaro.org> |
|---|---|
| First post | 2015-07-07 12:20 +0200 |
| Last post | 2015-07-08 16:20 +0200 |
| Articles | 3 — 3 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[RFC PATCH v3 1/4] STM trace event: Adding generic buffer interface driver Chunyan Zhang <zhang.chunyan@linaro.org> - 2015-07-07 12:20 +0200
Re: [RFC PATCH v3 1/4] STM trace event: Adding generic buffer interface driver Alexander Shishkin <alexander.shishkin@linux.intel.com> - 2015-07-08 15:10 +0200
Re: [RFC PATCH v3 1/4] STM trace event: Adding generic buffer interface driver Mathieu Poirier <mathieu.poirier@linaro.org> - 2015-07-08 16:20 +0200
| From | Chunyan Zhang <zhang.chunyan@linaro.org> |
|---|---|
| Date | 2015-07-07 12:20 +0200 |
| Subject | [RFC PATCH v3 1/4] STM trace event: Adding generic buffer interface driver |
| Message-ID | <pJy8O-4of-15@gated-at.bofh.it> |
From: Mathieu Poirier <mathieu.poirier@linaro.org>
This patch adds a driver that models itself as an stm_source and
who's sole purpose is to export an interface to the rest of the
kernel. Once the stm and stm_source have been linked via sysfs,
everything that is passed to the interface will endup in the STM
trace engine.
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Signed-off-by: Chunyan Zhang <zhang.chunyan@linaro.org>
---
drivers/stm/Kconfig | 11 +++++++++++
drivers/stm/Makefile | 2 ++
drivers/stm/stm_trace_event.c | 46 +++++++++++++++++++++++++++++++++++++++++++
3 files changed, 59 insertions(+)
create mode 100644 drivers/stm/stm_trace_event.c
diff --git a/drivers/stm/Kconfig b/drivers/stm/Kconfig
index 6f2db70..8ead418 100644
--- a/drivers/stm/Kconfig
+++ b/drivers/stm/Kconfig
@@ -25,3 +25,14 @@ config STM_SOURCE_CONSOLE
If you want to send kernel console messages over STM devices,
say Y.
+
+config STM_TRACE_EVENT
+ tristate "Redirect/copy the output from kernel trace event to STM engine"
+ depends on STM
+ help
+ This option can be used to redirect or copy the output from kernel trace
+ event to STM engine. Enabling this option will introduce a slight
+ timing effect.
+
+ If you want to send kernel trace event messages over STM devices,
+ say Y.
diff --git a/drivers/stm/Makefile b/drivers/stm/Makefile
index 74baf59..55b152c 100644
--- a/drivers/stm/Makefile
+++ b/drivers/stm/Makefile
@@ -5,3 +5,5 @@ stm_core-y := core.o policy.o
obj-$(CONFIG_STM_DUMMY) += dummy_stm.o
obj-$(CONFIG_STM_SOURCE_CONSOLE) += console.o
+
+obj-$(CONFIG_STM_TRACE_EVENT) += stm_trace_event.o
diff --git a/drivers/stm/stm_trace_event.c b/drivers/stm/stm_trace_event.c
new file mode 100644
index 0000000..bc77dae
--- /dev/null
+++ b/drivers/stm/stm_trace_event.c
@@ -0,0 +1,46 @@
+/*
+ * Simple kernel driver to link kernel trace event and an STM device
+ * Copyright (c) 2015, Linaro Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms and conditions of the GNU General Public License,
+ * version 2, as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+ * more details.
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/slab.h>
+#include <linux/console.h>
+#include <linux/stm.h>
+
+static struct stm_source_data stm_trace_event_data = {
+ .name = "stm_trace_event",
+ .nr_chans = 1,
+};
+
+void stm_trace_event_write(const char *buf, unsigned len)
+{
+ stm_source_write(&stm_trace_event_data, 0, buf, len);
+}
+
+static int __init stm_trace_event_init(void)
+{
+ return stm_source_register_device(NULL, &stm_trace_event_data);
+}
+
+static void __exit stm_trace_event_exit(void)
+{
+ stm_source_unregister_device(&stm_trace_event_data);
+}
+
+module_init(stm_trace_event_init);
+module_exit(stm_trace_event_exit);
+
+MODULE_LICENSE("GPL v2");
+MODULE_DESCRIPTION("stm_trace_event driver");
+MODULE_AUTHOR("Mathieu Poirier <mathieu.poirier@linaro.org>");
--
1.9.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Alexander Shishkin <alexander.shishkin@linux.intel.com> |
|---|---|
| Date | 2015-07-08 15:10 +0200 |
| Message-ID | <pJXgU-38d-61@gated-at.bofh.it> |
| In reply to | #1178308 |
Peter Zijlstra <peterz@infradead.org> writes: > On Tue, Jul 07, 2015 at 06:10:40PM +0800, Chunyan Zhang wrote: >> +config STM_TRACE_EVENT >> + tristate "Redirect/copy the output from kernel trace event to STM engine" > > How does tristate make sense here? You're using it unconditionally for > in-kernel tracepoints. This must be bool, which in turn makes the whole > STM thing bool afaiu. That would make the whole STM thing a bool. I'd rather we used stm output *conditionally* by somehow plugging into tracepoint output, say with a jump label or something. Haven't had time to think about it yet. Regards, -- Alex -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Mathieu Poirier <mathieu.poirier@linaro.org> |
|---|---|
| Date | 2015-07-08 16:20 +0200 |
| Subject | Re: [RFC PATCH v3 1/4] STM trace event: Adding generic buffer interface driver |
| Message-ID | <pJYmC-3LX-15@gated-at.bofh.it> |
| In reply to | #1178308 |
On 8 July 2015 at 04:23, Alexander Shishkin
<alexander.shishkin@linux.intel.com> wrote:
> Chunyan Zhang <zhang.chunyan@linaro.org> writes:
>
>> From: Mathieu Poirier <mathieu.poirier@linaro.org>
>>
>> This patch adds a driver that models itself as an stm_source and
>> who's sole purpose is to export an interface to the rest of the
>> kernel. Once the stm and stm_source have been linked via sysfs,
>> everything that is passed to the interface will endup in the STM
>> trace engine.
>>
>> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
>> Signed-off-by: Chunyan Zhang <zhang.chunyan@linaro.org>
>> ---
>> drivers/stm/Kconfig | 11 +++++++++++
>> drivers/stm/Makefile | 2 ++
>> drivers/stm/stm_trace_event.c | 46 +++++++++++++++++++++++++++++++++++++++++++
>> 3 files changed, 59 insertions(+)
>> create mode 100644 drivers/stm/stm_trace_event.c
>>
>> diff --git a/drivers/stm/Kconfig b/drivers/stm/Kconfig
>> index 6f2db70..8ead418 100644
>> --- a/drivers/stm/Kconfig
>> +++ b/drivers/stm/Kconfig
>> @@ -25,3 +25,14 @@ config STM_SOURCE_CONSOLE
>>
>> If you want to send kernel console messages over STM devices,
>> say Y.
>> +
>> +config STM_TRACE_EVENT
>> + tristate "Redirect/copy the output from kernel trace event to STM engine"
>> + depends on STM
>> + help
>> + This option can be used to redirect or copy the output from kernel trace
>> + event to STM engine. Enabling this option will introduce a slight
>> + timing effect.
>> +
>> + If you want to send kernel trace event messages over STM devices,
>> + say Y.
>> diff --git a/drivers/stm/Makefile b/drivers/stm/Makefile
>> index 74baf59..55b152c 100644
>> --- a/drivers/stm/Makefile
>> +++ b/drivers/stm/Makefile
>> @@ -5,3 +5,5 @@ stm_core-y := core.o policy.o
>> obj-$(CONFIG_STM_DUMMY) += dummy_stm.o
>>
>> obj-$(CONFIG_STM_SOURCE_CONSOLE) += console.o
>> +
>> +obj-$(CONFIG_STM_TRACE_EVENT) += stm_trace_event.o
>> diff --git a/drivers/stm/stm_trace_event.c b/drivers/stm/stm_trace_event.c
>> new file mode 100644
>> index 0000000..bc77dae
>> --- /dev/null
>> +++ b/drivers/stm/stm_trace_event.c
>> @@ -0,0 +1,46 @@
>> +/*
>> + * Simple kernel driver to link kernel trace event and an STM device
>> + * Copyright (c) 2015, Linaro Ltd.
>> + *
>> + * This program is free software; you can redistribute it and/or modify it
>> + * under the terms and conditions of the GNU General Public License,
>> + * version 2, as published by the Free Software Foundation.
>> + *
>> + * This program is distributed in the hope it will be useful, but WITHOUT
>> + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
>> + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
>> + * more details.
>> + */
>> +
>> +#include <linux/kernel.h>
>> +#include <linux/module.h>
>> +#include <linux/slab.h>
>> +#include <linux/console.h>
>> +#include <linux/stm.h>
>> +
>> +static struct stm_source_data stm_trace_event_data = {
>> + .name = "stm_trace_event",
>> + .nr_chans = 1,
>
> One question is: do we want to cram ftrace data from all cpus into one
> channel or use a channel per cpu?
That's the perennial question. Even one channel per cpu may not be
sufficient... Some configuration may want to use one channel per
application. We should favour the solution that offers the most
flexibility - the above was for the RFC only.
>
> Regards,
> --
> Alex
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web