From: Edward Shishkin <edward@redhat.com>
To: linux-btrace@vger.kernel.org
Subject: [patch 4/5] blktrace: disable kill option
Date: Tue, 15 Dec 2009 17:48:06 +0000 [thread overview]
Message-ID: <4B27CBD6.6060807@redhat.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 1 bytes --]
[-- Attachment #2: blktrace-fix-513950.patch --]
[-- Type: text/plain, Size: 3716 bytes --]
Fixup for 513950.
Problem:
'blktrace -d <device> -k' does not kill a running
backgound trace. Executing 'blktrace -d <device> -k'
for the second time results in "BLKTRACETEARDOWN:
Invalid argument" message and then each run of
blktrace on that machine prints the following output:
BLKTRACESETUP: No such file or directory.
The bug:
The option -k results in clobbering information
about running trace by kernel (blk_trace_remove),
while resources (files open in debugfs by the running
background blktrace) are not released.
Solution:
. Disable non-working "kill" option;
. Update documentation, advise to send SIGINT signal
via kill(1) to the running background blktrace for
its correct termination.
Signed-off-by: Edward Shishkin <edward@redhat.com>
---
blktrace.c | 14 +++++++++++++-
doc/blktrace.8 | 24 ++++--------------------
2 files changed, 17 insertions(+), 21 deletions(-)
--- blktrace.orig/blktrace.c
+++ blktrace/blktrace.c
@@ -64,6 +64,7 @@
#define DEBUGFS_TYPE (0x64626720)
#define TRACE_NET_PORT (8462)
+#define KILL_OPT_ENABLED (0)
enum {
Net_none = 0,
@@ -326,7 +327,12 @@ static int *cl_fds;
static int (*handle_pfds)(struct tracer *, int, int);
static int (*handle_list)(struct tracer_devpath_head *, struct list_head *);
+#if KILL_OPT_ENABLED
#define S_OPTS "d:a:A:r:o:kw:vVb:n:D:lh:p:sI:"
+#else
+#define S_OPTS "d:a:A:r:o:w:vVb:n:D:lh:p:sI:"
+#endif /* KILL_OPT_ENABLED */
+
static struct option l_opts[] = {
{
.name = "dev",
@@ -364,12 +370,14 @@ static struct option l_opts[] = {
.flag = NULL,
.val = 'o'
},
+#if KILL_OPT_ENABLED
{
.name = "kill",
.has_arg = no_argument,
.flag = NULL,
.val = 'k'
},
+#endif /* KILL_OPT_ENABLED */
{
.name = "stopwatch",
.has_arg = required_argument,
@@ -442,7 +450,9 @@ static char usage_str[] = \
"\t-r Path to mounted debugfs, defaults to /sys/kernel/debug\n" \
"\t-o File(s) to send output to\n" \
"\t-D Directory to prepend to output file names\n" \
- "\t-k Kill a running trace\n" \
+#if KILL_OPT_ENABLED
+ "\t-k Kill a running trace\n" \
+#endif /* KILL_OPT_ENABLED */
"\t-w Stop after defined time, in seconds\n" \
"\t-a Only trace specified actions. See documentation\n" \
"\t-A Give trace mask as a single value. See documentation\n" \
@@ -2065,9 +2075,11 @@ static int handle_args(int argc, char *a
case 'o':
output_name = optarg;
break;
+#if KILL_OPT_ENABLED
case 'k':
kill_running_trace = 1;
break;
+#endif /* KILL_OPT_ENABLED */
case 'w':
stop_watch = atoi(optarg);
if (stop_watch <= 0) {
--- blktrace.orig/doc/blktrace.8
+++ blktrace/doc/blktrace.8
@@ -66,19 +66,10 @@ blktrace may also be run concurrently wi
.TP 2
\-
The default behaviour for blktrace is to run forever until explicitly
-killed by the user (via a control-C, or kill utility invocation).
-There are two ways to modify this:
-
-.TP 5
- 1.
-You may utilise the blktrace utility itself to kill
-a running trace -- via the \fB\-k\fR option.
-
-.TP 5
- 2.
-You can specify a run-time duration for blktrace via the
-\fB\-w\fR option -- then blktrace will run for the specified number
-of seconds, and then halt.
+killed by the user (via a control-C, or sending SIGINT signal to the
+process via invocation the kill (1) utility). Also you can specify a
+run-time duration for blktrace via the \fB\-w\fR option -- then
+blktrace will run for the specified number of seconds, and then halt.
.SH OPTIONS
@@ -119,13 +110,6 @@ Adds \fIdev\fR as a device to trace
Adds the devices found in \fIfile\fR as devices to trace
.RE
-\-k
-.br
-\-\-kill
-.RS
-Kill on-going trace
-.RE
-
\-n \fInum\-sub\fR
.br
\-\-num\-sub=\fInum-sub\fR
next reply other threads:[~2009-12-15 17:48 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-12-15 17:48 Edward Shishkin [this message]
2010-04-20 7:50 ` [patch 4/5] blktrace: disable kill option Jens Axboe
2010-04-20 13:27 ` Edward 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=4B27CBD6.6060807@redhat.com \
--to=edward@redhat.com \
--cc=linux-btrace@vger.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 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.