From: Wang Long <long.wanglong@huawei.com>
To: <rostedt@goodmis.org>, <jkosina@suse.cz>, <gregkh@linuxfoundation.org>
Cc: <stable@vger.kernel.org>, <wanglong@laoqinren.net>,
<peifeiyue@huawei.com>, <linux-kernel@vger.kernel.org>,
<morgan.wang@huawei.com>, <paulmck@linux.vnet.ibm.com>,
<pmladek@suse.cz>, <dzickus@redhat.com>, <x86@kernel.org>,
<sasha.levin@oracle.com>
Subject: [RFC PATCH 11/17] seq_buf: Move the seq_buf code to lib/
Date: Thu, 14 May 2015 11:34:58 +0000 [thread overview]
Message-ID: <1431603304-162571-12-git-send-email-long.wanglong@huawei.com> (raw)
In-Reply-To: <1431603304-162571-1-git-send-email-long.wanglong@huawei.com>
From: "Steven Rostedt (Red Hat)" <rostedt@goodmis.org>
commit 8d58e99af5980d444948720977b0976455885391 upstream.
The seq_buf functions are rather useful outside of tracing. Instead
of having it be dependent on CONFIG_TRACING, move the code into lib/
and allow other users to have access to it even when tracing is not
configured.
The seq_buf utility is similar to the seq_file utility, but instead of
writing sending data back up to userland, it writes it into a buffer
defined at seq_buf_init(). This allows us to send a descriptor around
that writes printf() formatted strings into it that can be retrieved
later.
It is currently used by the tracing facility for such things like trace
events to convert its binary saved data in the ring buffer into an
ASCII human readable context to be displayed in /sys/kernel/debug/trace.
It can also be used for doing NMI prints safely from NMI context into
the seq_buf and retrieved later and dumped to printk() safely. Doing
printk() from an NMI context is dangerous because an NMI can preempt
a current printk() and deadlock on it.
Link: http://lkml.kernel.org/p/20140619213952.058255809@goodmis.org
Tested-by: Jiri Kosina <jkosina@suse.cz>
Acked-by: Jiri Kosina <jkosina@suse.cz>
Reviewed-by: Petr Mladek <pmladek@suse.cz>
[wanglong: backport to 3.10 stable
- adjust context
]
Signed-off-by: Wang Long <long.wanglong@huawei.com>
Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
kernel/trace/Makefile | 1 -
lib/Makefile | 2 +-
{kernel/trace => lib}/seq_buf.c | 0
3 files changed, 1 insertion(+), 2 deletions(-)
rename {kernel/trace => lib}/seq_buf.c (100%)
diff --git a/kernel/trace/Makefile b/kernel/trace/Makefile
index cfb86f1..d7e2068 100644
--- a/kernel/trace/Makefile
+++ b/kernel/trace/Makefile
@@ -27,7 +27,6 @@ obj-$(CONFIG_RING_BUFFER_BENCHMARK) += ring_buffer_benchmark.o
obj-$(CONFIG_TRACING) += trace.o
obj-$(CONFIG_TRACING) += trace_output.o
-obj-$(CONFIG_TRACING) += seq_buf.o
obj-$(CONFIG_TRACING) += trace_stat.o
obj-$(CONFIG_TRACING) += trace_printk.o
obj-$(CONFIG_CONTEXT_SWITCH_TRACER) += trace_sched_switch.o
diff --git a/lib/Makefile b/lib/Makefile
index 9efe480..4ecd2e4 100644
--- a/lib/Makefile
+++ b/lib/Makefile
@@ -13,7 +13,7 @@ lib-y := ctype.o string.o vsprintf.o cmdline.o \
sha1.o md5.o irq_regs.o reciprocal_div.o argv_split.o \
proportions.o flex_proportions.o prio_heap.o ratelimit.o show_mem.o \
is_single_threaded.o plist.o decompress.o kobject_uevent.o \
- earlycpio.o
+ earlycpio.o seq_buf.o
obj-$(CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS) += usercopy.o
lib-$(CONFIG_MMU) += ioremap.o
diff --git a/kernel/trace/seq_buf.c b/lib/seq_buf.c
similarity index 100%
rename from kernel/trace/seq_buf.c
rename to lib/seq_buf.c
--
1.8.3.4
next prev parent reply other threads:[~2015-05-14 11:39 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-14 11:34 [RFC PATCH 00/17][request for stable 3.10 inclusion] x86/nmi: Print all cpu stacks from NMI safely Wang Long
2015-05-14 11:34 ` [RFC PATCH 01/17] tracing: Create seq_buf layer in trace_seq Wang Long
2015-05-14 11:34 ` [RFC PATCH 02/17] tracing: Convert seq_buf_path() to be like seq_path() Wang Long
2015-05-14 11:34 ` [RFC PATCH 03/17] tracing: Convert seq_buf fields to be like seq_file fields Wang Long
2015-05-14 11:34 ` [RFC PATCH 04/17] tracing: Add a seq_buf_clear() helper and clear len and readpos in init Wang Long
2015-05-14 11:34 ` [RFC PATCH 05/17] seq_buf: Create seq_buf_used() to find out how much was written Wang Long
2015-05-14 11:34 ` [RFC PATCH 06/17] tracing: Use trace_seq_used() and seq_buf_used() instead of len Wang Long
2015-05-14 11:34 ` [RFC PATCH 07/17] seq_buf: Add seq_buf_can_fit() helper function Wang Long
2015-05-14 11:34 ` [RFC PATCH 08/17] tracing: Have seq_buf use full buffer Wang Long
2015-05-14 11:34 ` [RFC PATCH 09/17] tracing: Add seq_buf_get_buf() and seq_buf_commit() helper functions Wang Long
2015-05-14 11:34 ` [RFC PATCH 10/17] seq-buf: Make seq_buf_bprintf() conditional on CONFIG_BINARY_PRINTF Wang Long
2015-05-14 11:34 ` Wang Long [this message]
2015-05-14 11:34 ` [RFC PATCH 12/17] seq_buf: Fix seq_buf_vprintf() truncation Wang Long
2015-05-14 11:35 ` [RFC PATCH 13/17] seq_buf: Fix seq_buf_bprintf() truncation Wang Long
2015-05-14 11:35 ` [RFC PATCH 14/17] printk: Add per_cpu printk func to allow printk to be diverted Wang Long
2015-05-18 13:56 ` Petr Mladek
2015-05-14 11:35 ` [RFC PATCH 15/17] printk/percpu: Define printk_func when printk is not defined Wang Long
2015-05-14 11:35 ` [RFC PATCH 16/17] x86/nmi: Perform a safe NMI stack trace on all CPUs Wang Long
2015-05-18 14:17 ` Petr Mladek
2015-05-19 8:56 ` long.wanglong
2015-05-14 11:35 ` [RFC PATCH 17/17] x86/nmi: Fix use of unallocated cpumask_var_t Wang Long
2015-05-14 13:55 ` [RFC PATCH 00/17][request for stable 3.10 inclusion] x86/nmi: Print all cpu stacks from NMI safely Steven Rostedt
2015-05-18 3:52 ` long.wanglong
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=1431603304-162571-12-git-send-email-long.wanglong@huawei.com \
--to=long.wanglong@huawei.com \
--cc=dzickus@redhat.com \
--cc=gregkh@linuxfoundation.org \
--cc=jkosina@suse.cz \
--cc=linux-kernel@vger.kernel.org \
--cc=morgan.wang@huawei.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=peifeiyue@huawei.com \
--cc=pmladek@suse.cz \
--cc=rostedt@goodmis.org \
--cc=sasha.levin@oracle.com \
--cc=stable@vger.kernel.org \
--cc=wanglong@laoqinren.net \
--cc=x86@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®