All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/3] blktrace: fix timestamp in binary output
@ 2009-03-25  9:18 Li Zefan
  2009-03-25  9:19 ` [PATCH 2/3] blktrace: fix a race when creating blk_tree_root in debugfs Li Zefan
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Li Zefan @ 2009-03-25  9:18 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Jens Axboe, Arnaldo Carvalho de Melo, Steven Rostedt,
	Frederic Weisbecker, LKML

I found the timestamp is wrong:

 # echo bin > trace_option
 # echo blk > current_tracer
 # cat trace_pipe | blkparse -i -
 8,0    0        0     0.000000000   504  A   W ...
 ...
 8,7    1        0     0.008534097     0  C   R ...
            (should be 8.534097xxx)

user-space blkparse expects the timestamp to be nanosecond.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
---
 kernel/trace/blktrace.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
index 6fb274f..ee7a8bb 100644
--- a/kernel/trace/blktrace.c
+++ b/kernel/trace/blktrace.c
@@ -1168,7 +1168,7 @@ static int blk_trace_synthesize_old_trace(struct trace_iterator *iter)
 	const int offset = offsetof(struct blk_io_trace, sector);
 	struct blk_io_trace old = {
 		.magic	  = BLK_IO_TRACE_MAGIC | BLK_IO_TRACE_VERSION,
-		.time     = ns2usecs(iter->ts),
+		.time     = iter->ts,
 	};
 
 	if (!trace_seq_putmem(s, &old, offset))
-- 
1.5.4.rc3



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 2/3] blktrace: fix a race when creating blk_tree_root in debugfs
  2009-03-25  9:18 [PATCH 1/3] blktrace: fix timestamp in binary output Li Zefan
@ 2009-03-25  9:19 ` Li Zefan
  2009-03-25 11:54   ` [tip:tracing/blktrace] " Li Zefan
  2009-03-25  9:21 ` [PATCH 3/3] blktrace: fix the original blktrace Li Zefan
  2009-03-25 11:54 ` [tip:tracing/blktrace] blktrace: fix timestamp in binary output Li Zefan
  2 siblings, 1 reply; 19+ messages in thread
From: Li Zefan @ 2009-03-25  9:19 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Jens Axboe, Arnaldo Carvalho de Melo, Steven Rostedt,
	Frederic Weisbecker, LKML

t1                                t2
------                            ------
do_blk_trace_setup()              do_blk_trace_setup()
  if (!blk_tree_root) {
                                    if (!blk_tree_root)
    blk_tree_root = create_dir()
                                      blk_tree_root = create_dir();
                                      (now blk_tree_root == NULL)
  ...
  dir = create_dir(name, blk_tree_root);

Due to this race, t1 will create 'dir' in /debugfs but not /debugfs/block.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
---
 kernel/trace/blktrace.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
index ee7a8bb..95f89fa 100644
--- a/kernel/trace/blktrace.c
+++ b/kernel/trace/blktrace.c
@@ -426,11 +426,15 @@ int do_blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
 
 	ret = -ENOENT;
 
+	mutex_lock(&blk_tree_mutex);
 	if (!blk_tree_root) {
 		blk_tree_root = debugfs_create_dir("block", NULL);
-		if (!blk_tree_root)
+		if (!blk_tree_root) {
+			mutex_unlock(&blk_tree_mutex);
 			goto err;
+		}
 	}
+	mutex_unlock(&blk_tree_mutex);
 
 	dir = debugfs_create_dir(buts->name, blk_tree_root);
 
-- 
1.5.4.rc3



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [PATCH 3/3] blktrace: fix the original blktrace
  2009-03-25  9:18 [PATCH 1/3] blktrace: fix timestamp in binary output Li Zefan
  2009-03-25  9:19 ` [PATCH 2/3] blktrace: fix a race when creating blk_tree_root in debugfs Li Zefan
@ 2009-03-25  9:21 ` Li Zefan
  2009-03-25 10:14   ` Ingo Molnar
  2009-03-25 11:54   ` [tip:tracing/blktrace] " Li Zefan
  2009-03-25 11:54 ` [tip:tracing/blktrace] blktrace: fix timestamp in binary output Li Zefan
  2 siblings, 2 replies; 19+ messages in thread
From: Li Zefan @ 2009-03-25  9:21 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Jens Axboe, Arnaldo Carvalho de Melo, Steven Rostedt,
	Frederic Weisbecker, LKML

Currently the original blktrace, which is using relay and is used via
ioctl, is broken. You can use ftrace to see the output of blktrace,
but user-space blktrace is unusable.

It's broken by "blktrace: add ftrace plugin"
(c71a896154119f4ca9e89d6078f5f63ad60ef199)

========
@@ -131,13 +162,14 @@ static void __blk_add_trace()
- 	if (unlikely(bt->trace_state != Blktrace_running))
+ 	if (unlikely(bt->trace_state != Blktrace_running || !blk_tracer_enabled))
 		return;
=========

With this patch, both ioctl and ftrace can be used, but of course you
can't use both of them at the same time.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
---
 kernel/trace/blktrace.c |   12 +++++-------
 1 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
index 95f89fa..a7f7ff5 100644
--- a/kernel/trace/blktrace.c
+++ b/kernel/trace/blktrace.c
@@ -110,7 +110,7 @@ void __trace_note_message(struct blk_trace *bt, const char *fmt, ...)
 	unsigned long flags;
 	char *buf;
 
-	if (blk_tr) {
+	if (blk_tracer_enabled) {
 		va_start(args, fmt);
 		ftrace_vprintk(fmt, args);
 		va_end(args);
@@ -169,7 +169,7 @@ static void __blk_add_trace(struct blk_trace *bt, sector_t sector, int bytes,
 	pid_t pid;
 	int cpu, pc = 0;
 
-	if (unlikely(bt->trace_state != Blktrace_running ||
+	if (unlikely(bt->trace_state != Blktrace_running &&
 		     !blk_tracer_enabled))
 		return;
 
@@ -185,7 +185,7 @@ static void __blk_add_trace(struct blk_trace *bt, sector_t sector, int bytes,
 		return;
 	cpu = raw_smp_processor_id();
 
-	if (blk_tr) {
+	if (blk_tracer_enabled) {
 		tracing_record_cmdline(current);
 
 		pc = preempt_count();
@@ -235,7 +235,7 @@ record_it:
 		if (pdu_len)
 			memcpy((void *) t + sizeof(*t), pdu_data, pdu_len);
 
-		if (blk_tr) {
+		if (blk_tracer_enabled) {
 			trace_buffer_unlock_commit(blk_tr, event, 0, pc);
 			return;
 		}
@@ -267,8 +267,7 @@ int blk_trace_remove(struct request_queue *q)
 	if (!bt)
 		return -EINVAL;
 
-	if (bt->trace_state == Blktrace_setup ||
-	    bt->trace_state == Blktrace_stopped)
+	if (bt->trace_state != Blktrace_running)
 		blk_trace_cleanup(bt);
 
 	return 0;
@@ -1273,7 +1272,6 @@ static int blk_trace_setup_queue(struct request_queue *q, dev_t dev)
 	bt->dev = dev;
 	bt->act_mask = (u16)-1;
 	bt->end_lba = -1ULL;
-	bt->trace_state = Blktrace_running;
 
 	old_bt = xchg(&q->blk_trace, bt);
 	if (old_bt != NULL) {
-- 
1.5.4.rc3



^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/3] blktrace: fix the original blktrace
  2009-03-25  9:21 ` [PATCH 3/3] blktrace: fix the original blktrace Li Zefan
@ 2009-03-25 10:14   ` Ingo Molnar
  2009-03-25 10:17     ` Jens Axboe
  2009-03-25 11:54   ` [tip:tracing/blktrace] " Li Zefan
  1 sibling, 1 reply; 19+ messages in thread
From: Ingo Molnar @ 2009-03-25 10:14 UTC (permalink / raw)
  To: Li Zefan
  Cc: Jens Axboe, Arnaldo Carvalho de Melo, Steven Rostedt,
	Frederic Weisbecker, LKML


* Li Zefan <lizf@cn.fujitsu.com> wrote:

> Currently the original blktrace, which is using relay and is used 
> via ioctl, is broken. You can use ftrace to see the output of 
> blktrace, but user-space blktrace is unusable.

good catch, thanks Li!

Jens, Arnaldo, do these fixes look good to you too?

	Ingo

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/3] blktrace: fix the original blktrace
  2009-03-25 10:14   ` Ingo Molnar
@ 2009-03-25 10:17     ` Jens Axboe
  2009-03-25 11:47       ` Ingo Molnar
  2009-03-26  2:13       ` Li Zefan
  0 siblings, 2 replies; 19+ messages in thread
From: Jens Axboe @ 2009-03-25 10:17 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Li Zefan, Arnaldo Carvalho de Melo, Steven Rostedt,
	Frederic Weisbecker, LKML

On Wed, Mar 25 2009, Ingo Molnar wrote:
> 
> * Li Zefan <lizf@cn.fujitsu.com> wrote:
> 
> > Currently the original blktrace, which is using relay and is used 
> > via ioctl, is broken. You can use ftrace to see the output of 
> > blktrace, but user-space blktrace is unusable.
> 
> good catch, thanks Li!
> 
> Jens, Arnaldo, do these fixes look good to you too?

Look fine, but I'm very worried about the state of the current code. I
mean, this last round of fixes got the timestamp correct and made
blktrace work again. Those are something that should have been caught
even before the whole thing was posted, let alone merged. When do you
plan on pushing this upstream? Looks like 2.6.31 to me, it's clearly not
ready for 2.6.30 by any stretch.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/3] blktrace: fix the original blktrace
  2009-03-25 10:17     ` Jens Axboe
@ 2009-03-25 11:47       ` Ingo Molnar
  2009-03-25 13:51         ` Arnaldo Carvalho de Melo
  2009-03-26  2:13       ` Li Zefan
  1 sibling, 1 reply; 19+ messages in thread
From: Ingo Molnar @ 2009-03-25 11:47 UTC (permalink / raw)
  To: Jens Axboe
  Cc: Li Zefan, Arnaldo Carvalho de Melo, Steven Rostedt,
	Frederic Weisbecker, LKML


* Jens Axboe <jens.axboe@oracle.com> wrote:

> On Wed, Mar 25 2009, Ingo Molnar wrote:
> > 
> > * Li Zefan <lizf@cn.fujitsu.com> wrote:
> > 
> > > Currently the original blktrace, which is using relay and is used 
> > > via ioctl, is broken. You can use ftrace to see the output of 
> > > blktrace, but user-space blktrace is unusable.
> > 
> > good catch, thanks Li!
> > 
> > Jens, Arnaldo, do these fixes look good to you too?
> 
> Look fine, but I'm very worried about the state of the current 
> code. I mean, this last round of fixes got the timestamp correct 
> and made blktrace work again. [...]

Correct. I tested it on a 16way box (see the blkparse output below). 
If you can see any sort of anomaly please let us know so we can fix 
it.

> [...] Those are something that should have been caught even before 
> the whole thing was posted, let alone merged. When do you plan on 
> pushing this upstream? Looks like 2.6.31 to me, it's clearly not 
> ready for 2.6.30 by any stretch.

Well, apparently nobody tried ioctl based blktrace+blkparse on -tip 
or linux-next in the past ~1 month. The relayfs portion was (meant 
to be) kept largely untouched but this bug still crept in.

Li started looking into it and found the bug. I tested the ftrace 
plugin side regularly, but you are right that this bug took too long 
to find (over a month) - from now on i'll check the ioctl side more 
regularly too, for all tracing and relayfs changes as well.

	Ingo

---------------->
  8,0   13        1     0.000000000  6219  A   R 20475199 + 128 <- (8,1) 20475136
  8,0   13        2     0.000000721  6219  Q   R 20475199 + 128 [cc1]
  8,0   13        3     0.000008680  6219  G   R 20475199 + 128 [cc1]
  8,0   13        4     0.000010792  6219  P   N [cc1]
  8,0   13        5     0.000012401  6219  I   R 20475199 + 128 [cc1]
  8,0   13        6     0.000016097  6219  U   N [cc1] 1
  8,0   13        7     0.000023499  6219  D   R 20475199 + 128 [cc1]
  8,0   10        1     0.018127785     0  C   R 20475199 + 128 [0]
  8,0   10        2     0.347266011  1059  A   W 20423 + 8 <- (8,1) 20360
  8,0   10        3     0.347266724  1059  Q   W 20423 + 8 [kjournald]
  8,0   10        4     0.347271298  1059  G   W 20423 + 8 [kjournald]
  8,0   10        5     0.347273197  1059  P   N [kjournald]
  8,0   10        6     0.347274678  1059  I   W 20423 + 8 [kjournald]
  8,0   10        7     0.347315501  1059  A   W 20431 + 8 <- (8,1) 20368
  8,0   10        8     0.347315665  1059  Q   W 20431 + 8 [kjournald]
  [...]
  8,0   10    17481    16.338721149  1059  M   W 22047 + 8 [kjournald]
  8,0   10    17482    16.338721545  1059  A   W 22055 + 8 <- (8,1) 21992
  8,0   10    17483    16.338721701  1059  Q   W 22055 + 8 [kjournald]
  8,0   10    17484    16.338721887  1059  M   W 22055 + 8 [kjournald]
  8,0   10    17485    16.338722389  1059  A   W 22063 + 8 <- (8,1) 22000
  8,0   10    17486    16.338722551  1059  Q   W 22063 + 8 [kjournald]
  8,0   10    17487    16.338722810  1059  M   W 22063 + 8 [kjournald]
  8,0   10    17488    16.338723586  1059  A   W 22071 + 8 <- (8,1) 22008
  8,0   10    17489    16.338723764  1059  Q   W 22071 + 8 [kjournald]
  8,0   10    17490    16.338723989  1059  M   W 22071 + 8 [kjournald]
  8,0   10    17491    16.338724547  1059  A   W 22079 + 8 <- (8,1) 22016
  8,0   10    17492    16.338724724  1059  Q   W 22079 + 8 [kjournald]
  8,0   10    17493    16.338724989  1059  M   W 22079 + 8 [kjournald]
  8,0   10    17494    16.338725489  1059  A   W 22087 + 8 <- (8,1) 22024
  8,0   10    17495    16.338725656  1059  Q   W 22087 + 8 [kjournald]
  8,0   10    17496    16.338725863  1059  M   W 22087 + 8 [kjournald]
  8,0   10    17497    16.338726383  1059  A   W 22095 + 8 <- (8,1) 22032
  8,0   10    17498    16.338726540  1059  Q   W 22095 + 8 [kjournald]
  8,0   10    17499    16.338726819  1059  M   W 22095 + 8 [kjournald]
  8,0   10    17500    16.338727300  1059  A   W 22103 + 8 <- (8,1) 22040
  8,0   10    17501    16.338727448  1059  Q   W 22103 + 8 [kjournald]
  8,0   10    17502    16.338727651  1059  M   W 22103 + 8 [kjournald]
  8,0   10    17503    16.338728145  1059  A   W 22111 + 8 <- (8,1) 22048
  8,0   10    17504    16.338728304  1059  Q   W 22111 + 8 [kjournald]
  8,0   10    17505    16.338728568  1059  M   W 22111 + 8 [kjournald]
  8,0   10    17506    16.338729100  1059  A   W 22119 + 8 <- (8,1) 22056
  8,0   10    17507    16.338729251  1059  Q   W 22119 + 8 [kjournald]
  8,0   10    17508    16.338729469  1059  M   W 22119 + 8 [kjournald]
  8,0   10    17509    16.338729980  1059  A   W 22127 + 8 <- (8,1) 22064
  8,0   10    17510    16.338730133  1059  Q   W 22127 + 8 [kjournald]
  8,0   10    17511    16.338730381  1059  M   W 22127 + 8 [kjournald]
  8,0   10    17512    16.338731606  1059  U   N [kjournald] 1
  8,0   10    17513    16.338740396  1059  D   W 21679 + 456 [kjournald]
  8,0   10    17514    16.341011279  7516  C   W 21679 + 456 [0]
  8,0   10    17515    16.341075110  1059  A   W 22135 + 8 <- (8,1) 22072
  8,0   10    17516    16.341075415  1059  Q   W 22135 + 8 [kjournald]
  8,0   10    17517    16.341077704  1059  G   W 22135 + 8 [kjournald]
  8,0   10    17518    16.341079074  1059  P   N [kjournald]
  8,0   10    17519    16.341079897  1059  I   W 22135 + 8 [kjournald]
  8,0   10    17520    16.341082865  1059  U   N [kjournald] 1
  8,0   10    17521    16.341088012  1059  D   W 22135 + 8 [kjournald]
  8,0   10    17522    16.341507489  7516  C   W 22135 + 8 [0]
  8,0    0        1    16.849527724  6225  U   N [distccd] 0
CPU0 (sda):
 Reads Queued:           0,        0KiB	 Writes Queued:           0,        0KiB
 Read Dispatches:        0,        0KiB	 Write Dispatches:        0,        0KiB
 Reads Requeued:         0		 Writes Requeued:         0
 Reads Completed:        0,        0KiB	 Writes Completed:        0,        0KiB
 Read Merges:            0,        0KiB	 Write Merges:            0,        0KiB
 Read depth:             1        	 Write depth:            32
 IO unplugs:             1        	 Timer unplugs:           0
CPU1 (sda):
 Reads Queued:           0,        0KiB	 Writes Queued:           0,        0KiB
 Read Dispatches:        0,        0KiB	 Write Dispatches:        0,        0KiB
 Reads Requeued:         0		 Writes Requeued:         0
 Reads Completed:        0,        0KiB	 Writes Completed:        0,        0KiB
 Read Merges:            0,        0KiB	 Write Merges:            0,        0KiB
 Read depth:             1        	 Write depth:            32
 IO unplugs:             2        	 Timer unplugs:           0
CPU5 (sda):
 Reads Queued:           0,        0KiB	 Writes Queued:           0,        0KiB
 Read Dispatches:        0,        0KiB	 Write Dispatches:        0,        0KiB
 Reads Requeued:         0		 Writes Requeued:         0
 Reads Completed:        0,        0KiB	 Writes Completed:        0,        0KiB
 Read Merges:            0,        0KiB	 Write Merges:            0,        0KiB
 Read depth:             1        	 Write depth:            32
 IO unplugs:             1        	 Timer unplugs:           0
CPU6 (sda):
 Reads Queued:           0,        0KiB	 Writes Queued:           0,        0KiB
 Read Dispatches:        0,        0KiB	 Write Dispatches:        0,        0KiB
 Reads Requeued:         0		 Writes Requeued:         0
 Reads Completed:        0,        0KiB	 Writes Completed:        0,        0KiB
 Read Merges:            0,        0KiB	 Write Merges:            0,        0KiB
 Read depth:             1        	 Write depth:            32
 IO unplugs:             3        	 Timer unplugs:           0
CPU8 (sda):
 Reads Queued:           0,        0KiB	 Writes Queued:           0,        0KiB
 Read Dispatches:        0,        0KiB	 Write Dispatches:        0,        0KiB
 Reads Requeued:         0		 Writes Requeued:         0
 Reads Completed:        0,        0KiB	 Writes Completed:        0,        0KiB
 Read Merges:            0,        0KiB	 Write Merges:            0,        0KiB
 Read depth:             1        	 Write depth:            32
 IO unplugs:             8        	 Timer unplugs:           0
CPU9 (sda):
 Reads Queued:           1,        4KiB	 Writes Queued:           0,        0KiB
 Read Dispatches:        1,        4KiB	 Write Dispatches:        0,        0KiB
 Reads Requeued:         0		 Writes Requeued:         0
 Reads Completed:        0,        0KiB	 Writes Completed:        0,        0KiB
 Read Merges:            0,        0KiB	 Write Merges:            0,        0KiB
 Read depth:             1        	 Write depth:            32
 IO unplugs:            20        	 Timer unplugs:           0
CPU10 (sda):
 Reads Queued:           1,       24KiB	 Writes Queued:       5,647,   22,588KiB
 Read Dispatches:        1,       24KiB	 Write Dispatches:      160,   22,588KiB
 Reads Requeued:         0		 Writes Requeued:         0
 Reads Completed:        4,      108KiB	 Writes Completed:      184,   22,684KiB
 Read Merges:            0,        0KiB	 Write Merges:        5,487,   21,948KiB
 Read depth:             1        	 Write depth:            32
 IO unplugs:            35        	 Timer unplugs:           0
CPU11 (sda):
 Reads Queued:           0,        0KiB	 Writes Queued:          24,       96KiB
 Read Dispatches:        0,        0KiB	 Write Dispatches:       24,       96KiB
 Reads Requeued:         0		 Writes Requeued:         0
 Reads Completed:        0,        0KiB	 Writes Completed:        0,        0KiB
 Read Merges:            0,        0KiB	 Write Merges:            0,        0KiB
 Read depth:             1        	 Write depth:            32
 IO unplugs:             1        	 Timer unplugs:           0
CPU12 (sda):
 Reads Queued:           0,        0KiB	 Writes Queued:           0,        0KiB
 Read Dispatches:        0,        0KiB	 Write Dispatches:        0,        0KiB
 Reads Requeued:         0		 Writes Requeued:         0
 Reads Completed:        0,        0KiB	 Writes Completed:        0,        0KiB
 Read Merges:            0,        0KiB	 Write Merges:            0,        0KiB
 Read depth:             1        	 Write depth:            32
 IO unplugs:             3        	 Timer unplugs:           0
CPU13 (sda):
 Reads Queued:           2,       80KiB	 Writes Queued:           0,        0KiB
 Read Dispatches:        2,       80KiB	 Write Dispatches:        0,        0KiB
 Reads Requeued:         0		 Writes Requeued:         0
 Reads Completed:        0,        0KiB	 Writes Completed:        0,        0KiB
 Read Merges:            0,        0KiB	 Write Merges:            0,        0KiB
 Read depth:             1        	 Write depth:            32
 IO unplugs:            15        	 Timer unplugs:           0
CPU15 (sda):
 Reads Queued:           0,        0KiB	 Writes Queued:           0,        0KiB
 Read Dispatches:        0,        0KiB	 Write Dispatches:        0,        0KiB
 Reads Requeued:         0		 Writes Requeued:         0
 Reads Completed:        0,        0KiB	 Writes Completed:        0,        0KiB
 Read Merges:            0,        0KiB	 Write Merges:            0,        0KiB
 Read depth:             1        	 Write depth:            32
 IO unplugs:             3        	 Timer unplugs:           0

Total (sda):
 Reads Queued:           4,      108KiB	 Writes Queued:       5,671,   22,684KiB
 Read Dispatches:        4,      108KiB	 Write Dispatches:      184,   22,684KiB
 Reads Requeued:         0		 Writes Requeued:         0
 Reads Completed:        4,      108KiB	 Writes Completed:      184,   22,684KiB
 Read Merges:            0,        0KiB	 Write Merges:        5,487,   21,948KiB
 IO unplugs:            92        	 Timer unplugs:           0

Throughput (R/W): 6KiB/s / 1,346KiB/s
Events (sda): 17,723 entries
Skips: 0 forward (0 -   0.0%)
Input file sda.blktrace.0 added
Input file sda.blktrace.1 added
Input file sda.blktrace.5 added
Input file sda.blktrace.6 added
Input file sda.blktrace.8 added
Input file sda.blktrace.9 added
Input file sda.blktrace.10 added
Input file sda.blktrace.11 added
Input file sda.blktrace.12 added
Input file sda.blktrace.13 added
Input file sda.blktrace.15 added

^ permalink raw reply	[flat|nested] 19+ messages in thread

* [tip:tracing/blktrace] blktrace: fix timestamp in binary output
  2009-03-25  9:18 [PATCH 1/3] blktrace: fix timestamp in binary output Li Zefan
  2009-03-25  9:19 ` [PATCH 2/3] blktrace: fix a race when creating blk_tree_root in debugfs Li Zefan
  2009-03-25  9:21 ` [PATCH 3/3] blktrace: fix the original blktrace Li Zefan
@ 2009-03-25 11:54 ` Li Zefan
  2 siblings, 0 replies; 19+ messages in thread
From: Li Zefan @ 2009-03-25 11:54 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, acme, hpa, mingo, lizf, jens.axboe, fweisbec,
	rostedt, tglx, mingo

Commit-ID:  d8708d61b1d4e70f2dd2ff0896bded28a7ca0ea4
Gitweb:     http://git.kernel.org/tip/d8708d61b1d4e70f2dd2ff0896bded28a7ca0ea4
Author:     Li Zefan <lizf@cn.fujitsu.com>
AuthorDate: Wed, 25 Mar 2009 17:18:56 +0800
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Wed, 25 Mar 2009 12:05:38 +0100

blktrace: fix timestamp in binary output

I found the timestamp is wrong:

 # echo bin > trace_option
 # echo blk > current_tracer
 # cat trace_pipe | blkparse -i -
 8,0    0        0     0.000000000   504  A   W ...
 ...
 8,7    1        0     0.008534097     0  C   R ...
            (should be 8.534097xxx)

user-space blkparse expects the timestamp to be nanosecond.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Acked-by: Jens Axboe <jens.axboe@oracle.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <49C9F700.9070609@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>


---
 kernel/trace/blktrace.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
index 6fb274f..ee7a8bb 100644
--- a/kernel/trace/blktrace.c
+++ b/kernel/trace/blktrace.c
@@ -1168,7 +1168,7 @@ static int blk_trace_synthesize_old_trace(struct trace_iterator *iter)
 	const int offset = offsetof(struct blk_io_trace, sector);
 	struct blk_io_trace old = {
 		.magic	  = BLK_IO_TRACE_MAGIC | BLK_IO_TRACE_VERSION,
-		.time     = ns2usecs(iter->ts),
+		.time     = iter->ts,
 	};
 
 	if (!trace_seq_putmem(s, &old, offset))

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [tip:tracing/blktrace] blktrace: fix a race when creating blk_tree_root in debugfs
  2009-03-25  9:19 ` [PATCH 2/3] blktrace: fix a race when creating blk_tree_root in debugfs Li Zefan
@ 2009-03-25 11:54   ` Li Zefan
  0 siblings, 0 replies; 19+ messages in thread
From: Li Zefan @ 2009-03-25 11:54 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, acme, hpa, mingo, lizf, jens.axboe, fweisbec,
	rostedt, tglx, mingo

Commit-ID:  a216c4acfafb28d697fe07b4137ab780131e4d60
Gitweb:     http://git.kernel.org/tip/a216c4acfafb28d697fe07b4137ab780131e4d60
Author:     Li Zefan <lizf@cn.fujitsu.com>
AuthorDate: Wed, 25 Mar 2009 17:19:33 +0800
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Wed, 25 Mar 2009 12:05:39 +0100

blktrace: fix a race when creating blk_tree_root in debugfs

t1                                t2
------                            ------
do_blk_trace_setup()              do_blk_trace_setup()
  if (!blk_tree_root) {
                                    if (!blk_tree_root)
    blk_tree_root = create_dir()
                                      blk_tree_root = create_dir();
                                      (now blk_tree_root == NULL)
  ...
  dir = create_dir(name, blk_tree_root);

Due to this race, t1 will create 'dir' in /debugfs but not /debugfs/block.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Acked-by: Jens Axboe <jens.axboe@oracle.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <49C9F725.9080409@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>


---
 kernel/trace/blktrace.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
index ee7a8bb..95f89fa 100644
--- a/kernel/trace/blktrace.c
+++ b/kernel/trace/blktrace.c
@@ -426,11 +426,15 @@ int do_blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
 
 	ret = -ENOENT;
 
+	mutex_lock(&blk_tree_mutex);
 	if (!blk_tree_root) {
 		blk_tree_root = debugfs_create_dir("block", NULL);
-		if (!blk_tree_root)
+		if (!blk_tree_root) {
+			mutex_unlock(&blk_tree_mutex);
 			goto err;
+		}
 	}
+	mutex_unlock(&blk_tree_mutex);
 
 	dir = debugfs_create_dir(buts->name, blk_tree_root);
 

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* [tip:tracing/blktrace] blktrace: fix the original blktrace
  2009-03-25  9:21 ` [PATCH 3/3] blktrace: fix the original blktrace Li Zefan
  2009-03-25 10:14   ` Ingo Molnar
@ 2009-03-25 11:54   ` Li Zefan
  1 sibling, 0 replies; 19+ messages in thread
From: Li Zefan @ 2009-03-25 11:54 UTC (permalink / raw)
  To: linux-tip-commits
  Cc: linux-kernel, acme, hpa, mingo, lizf, jens.axboe, fweisbec,
	rostedt, tglx, mingo

Commit-ID:  29d661309424188942aeea9edcd362c1bd7414ab
Gitweb:     http://git.kernel.org/tip/29d661309424188942aeea9edcd362c1bd7414ab
Author:     Li Zefan <lizf@cn.fujitsu.com>
AuthorDate: Wed, 25 Mar 2009 17:21:26 +0800
Committer:  Ingo Molnar <mingo@elte.hu>
CommitDate: Wed, 25 Mar 2009 12:05:39 +0100

blktrace: fix the original blktrace

Currently the original blktrace, which is using relay and is used via
ioctl, is broken. You can use ftrace to see the output of blktrace,
but user-space blktrace is unusable.

It's broken by "blktrace: add ftrace plugin"
(c71a896154119f4ca9e89d6078f5f63ad60ef199)

 -	if (unlikely(bt->trace_state != Blktrace_running))
 +	if (unlikely(bt->trace_state != Blktrace_running || !blk_tracer_enabled))
		return;

With this patch, both ioctl and ftrace can be used, but of course you
can't use both of them at the same time.

Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Acked-by: Jens Axboe <jens.axboe@oracle.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
LKML-Reference: <49C9F796.9040503@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>


---
 kernel/trace/blktrace.c |   12 +++++-------
 1 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
index 95f89fa..a7f7ff5 100644
--- a/kernel/trace/blktrace.c
+++ b/kernel/trace/blktrace.c
@@ -110,7 +110,7 @@ void __trace_note_message(struct blk_trace *bt, const char *fmt, ...)
 	unsigned long flags;
 	char *buf;
 
-	if (blk_tr) {
+	if (blk_tracer_enabled) {
 		va_start(args, fmt);
 		ftrace_vprintk(fmt, args);
 		va_end(args);
@@ -169,7 +169,7 @@ static void __blk_add_trace(struct blk_trace *bt, sector_t sector, int bytes,
 	pid_t pid;
 	int cpu, pc = 0;
 
-	if (unlikely(bt->trace_state != Blktrace_running ||
+	if (unlikely(bt->trace_state != Blktrace_running &&
 		     !blk_tracer_enabled))
 		return;
 
@@ -185,7 +185,7 @@ static void __blk_add_trace(struct blk_trace *bt, sector_t sector, int bytes,
 		return;
 	cpu = raw_smp_processor_id();
 
-	if (blk_tr) {
+	if (blk_tracer_enabled) {
 		tracing_record_cmdline(current);
 
 		pc = preempt_count();
@@ -235,7 +235,7 @@ record_it:
 		if (pdu_len)
 			memcpy((void *) t + sizeof(*t), pdu_data, pdu_len);
 
-		if (blk_tr) {
+		if (blk_tracer_enabled) {
 			trace_buffer_unlock_commit(blk_tr, event, 0, pc);
 			return;
 		}
@@ -267,8 +267,7 @@ int blk_trace_remove(struct request_queue *q)
 	if (!bt)
 		return -EINVAL;
 
-	if (bt->trace_state == Blktrace_setup ||
-	    bt->trace_state == Blktrace_stopped)
+	if (bt->trace_state != Blktrace_running)
 		blk_trace_cleanup(bt);
 
 	return 0;
@@ -1273,7 +1272,6 @@ static int blk_trace_setup_queue(struct request_queue *q, dev_t dev)
 	bt->dev = dev;
 	bt->act_mask = (u16)-1;
 	bt->end_lba = -1ULL;
-	bt->trace_state = Blktrace_running;
 
 	old_bt = xchg(&q->blk_trace, bt);
 	if (old_bt != NULL) {

^ permalink raw reply related	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/3] blktrace: fix the original blktrace
  2009-03-25 11:47       ` Ingo Molnar
@ 2009-03-25 13:51         ` Arnaldo Carvalho de Melo
  2009-03-25 13:56           ` Jens Axboe
  0 siblings, 1 reply; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2009-03-25 13:51 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Jens Axboe, Li Zefan, Steven Rostedt, Frederic Weisbecker, LKML

Em Wed, Mar 25, 2009 at 12:47:20PM +0100, Ingo Molnar escreveu:
> 
> * Jens Axboe <jens.axboe@oracle.com> wrote:
> 
> > On Wed, Mar 25 2009, Ingo Molnar wrote:
> > > 
> > > * Li Zefan <lizf@cn.fujitsu.com> wrote:
> > > 
> > > > Currently the original blktrace, which is using relay and is used 
> > > > via ioctl, is broken. You can use ftrace to see the output of 
> > > > blktrace, but user-space blktrace is unusable.
> > > 
> > > good catch, thanks Li!
> > > 
> > > Jens, Arnaldo, do these fixes look good to you too?
> > 
> > Look fine, but I'm very worried about the state of the current 
> > code. I mean, this last round of fixes got the timestamp correct 
> > and made blktrace work again. [...]
> 
> Correct. I tested it on a 16way box (see the blkparse output below). 
> If you can see any sort of anomaly please let us know so we can fix 
> it.
> 
> > [...] Those are something that should have been caught even before 
> > the whole thing was posted, let alone merged. When do you plan on 
> > pushing this upstream? Looks like 2.6.31 to me, it's clearly not 
> > ready for 2.6.30 by any stretch.
> 
> Well, apparently nobody tried ioctl based blktrace+blkparse on -tip 
> or linux-next in the past ~1 month. The relayfs portion was (meant 
> to be) kept largely untouched but this bug still crept in.
> 
> Li started looking into it and found the bug. I tested the ftrace 
> plugin side regularly, but you are right that this bug took too long 
> to find (over a month) - from now on i'll check the ioctl side more 
> regularly too, for all tracing and relayfs changes as well.

I got sidetracked by other stuff and didn't managed to continue working
on it, but at the same time testing by somebody else is needed. There is
no bug-free code, let alone in the first iteration, even less for
something I wasn't familiar with and depended on people like Li to do a
careful review.

Li fixed bugs and continued the work, getting things I wanted working
and made the initial steps to get done, like being able to just fed
trace_pipe into blkparse and get the same result as btrace.

So I apologise for not having continued working on it more often to
catch myself the bugs I introduced, and give a big thank you to Li for
the thorough review, bugfixes and improvements.

- Arnaldo

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/3] blktrace: fix the original blktrace
  2009-03-25 13:51         ` Arnaldo Carvalho de Melo
@ 2009-03-25 13:56           ` Jens Axboe
  2009-03-25 14:07             ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 19+ messages in thread
From: Jens Axboe @ 2009-03-25 13:56 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Ingo Molnar, Li Zefan, Steven Rostedt, Frederic Weisbecker, LKML

On Wed, Mar 25 2009, Arnaldo Carvalho de Melo wrote:
> Em Wed, Mar 25, 2009 at 12:47:20PM +0100, Ingo Molnar escreveu:
> > 
> > * Jens Axboe <jens.axboe@oracle.com> wrote:
> > 
> > > On Wed, Mar 25 2009, Ingo Molnar wrote:
> > > > 
> > > > * Li Zefan <lizf@cn.fujitsu.com> wrote:
> > > > 
> > > > > Currently the original blktrace, which is using relay and is used 
> > > > > via ioctl, is broken. You can use ftrace to see the output of 
> > > > > blktrace, but user-space blktrace is unusable.
> > > > 
> > > > good catch, thanks Li!
> > > > 
> > > > Jens, Arnaldo, do these fixes look good to you too?
> > > 
> > > Look fine, but I'm very worried about the state of the current 
> > > code. I mean, this last round of fixes got the timestamp correct 
> > > and made blktrace work again. [...]
> > 
> > Correct. I tested it on a 16way box (see the blkparse output below). 
> > If you can see any sort of anomaly please let us know so we can fix 
> > it.
> > 
> > > [...] Those are something that should have been caught even before 
> > > the whole thing was posted, let alone merged. When do you plan on 
> > > pushing this upstream? Looks like 2.6.31 to me, it's clearly not 
> > > ready for 2.6.30 by any stretch.
> > 
> > Well, apparently nobody tried ioctl based blktrace+blkparse on -tip 
> > or linux-next in the past ~1 month. The relayfs portion was (meant 
> > to be) kept largely untouched but this bug still crept in.
> > 
> > Li started looking into it and found the bug. I tested the ftrace 
> > plugin side regularly, but you are right that this bug took too long 
> > to find (over a month) - from now on i'll check the ioctl side more 
> > regularly too, for all tracing and relayfs changes as well.
> 
> I got sidetracked by other stuff and didn't managed to continue working
> on it, but at the same time testing by somebody else is needed. There is
> no bug-free code, let alone in the first iteration, even less for
> something I wasn't familiar with and depended on people like Li to do a
> careful review.
> 
> Li fixed bugs and continued the work, getting things I wanted working
> and made the initial steps to get done, like being able to just fed
> trace_pipe into blkparse and get the same result as btrace.
> 
> So I apologise for not having continued working on it more often to
> catch myself the bugs I introduced, and give a big thank you to Li for
> the thorough review, bugfixes and improvements.

Dont apologise, there's nothing wrong with that. The only thing wrong
would be for the unfinished code to get merged, when it clearly wasn't
ready.

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/3] blktrace: fix the original blktrace
  2009-03-25 13:56           ` Jens Axboe
@ 2009-03-25 14:07             ` Arnaldo Carvalho de Melo
  0 siblings, 0 replies; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2009-03-25 14:07 UTC (permalink / raw)
  To: Jens Axboe
  Cc: Ingo Molnar, Li Zefan, Steven Rostedt, Frederic Weisbecker, LKML

Em Wed, Mar 25, 2009 at 02:56:39PM +0100, Jens Axboe escreveu:
> On Wed, Mar 25 2009, Arnaldo Carvalho de Melo wrote:
> > Em Wed, Mar 25, 2009 at 12:47:20PM +0100, Ingo Molnar escreveu:
> > > 
> > > * Jens Axboe <jens.axboe@oracle.com> wrote:
> > > 
> > > > On Wed, Mar 25 2009, Ingo Molnar wrote:
> > > > > 
> > > > > * Li Zefan <lizf@cn.fujitsu.com> wrote:
> > > > > 
> > > > > > Currently the original blktrace, which is using relay and is used 
> > > > > > via ioctl, is broken. You can use ftrace to see the output of 
> > > > > > blktrace, but user-space blktrace is unusable.
> > > > > 
> > > > > good catch, thanks Li!
> > > > > 
> > > > > Jens, Arnaldo, do these fixes look good to you too?
> > > > 
> > > > Look fine, but I'm very worried about the state of the current 
> > > > code. I mean, this last round of fixes got the timestamp correct 
> > > > and made blktrace work again. [...]
> > > 
> > > Correct. I tested it on a 16way box (see the blkparse output below). 
> > > If you can see any sort of anomaly please let us know so we can fix 
> > > it.
> > > 
> > > > [...] Those are something that should have been caught even before 
> > > > the whole thing was posted, let alone merged. When do you plan on 
> > > > pushing this upstream? Looks like 2.6.31 to me, it's clearly not 
> > > > ready for 2.6.30 by any stretch.
> > > 
> > > Well, apparently nobody tried ioctl based blktrace+blkparse on -tip 
> > > or linux-next in the past ~1 month. The relayfs portion was (meant 
> > > to be) kept largely untouched but this bug still crept in.
> > > 
> > > Li started looking into it and found the bug. I tested the ftrace 
> > > plugin side regularly, but you are right that this bug took too long 
> > > to find (over a month) - from now on i'll check the ioctl side more 
> > > regularly too, for all tracing and relayfs changes as well.
> > 
> > I got sidetracked by other stuff and didn't managed to continue working
> > on it, but at the same time testing by somebody else is needed. There is
> > no bug-free code, let alone in the first iteration, even less for
> > something I wasn't familiar with and depended on people like Li to do a
> > careful review.
> > 
> > Li fixed bugs and continued the work, getting things I wanted working
> > and made the initial steps to get done, like being able to just fed
> > trace_pipe into blkparse and get the same result as btrace.
> > 
> > So I apologise for not having continued working on it more often to
> > catch myself the bugs I introduced, and give a big thank you to Li for
> > the thorough review, bugfixes and improvements.
> 
> Dont apologise, there's nothing wrong with that. The only thing wrong
> would be for the unfinished code to get merged, when it clearly wasn't
> ready.

So in this case I guess the right approach is to keep this on a -tip
branch and delay it getting merged to .31?

- Arnaldo

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/3] blktrace: fix the original blktrace
  2009-03-25 10:17     ` Jens Axboe
  2009-03-25 11:47       ` Ingo Molnar
@ 2009-03-26  2:13       ` Li Zefan
  2009-03-26  8:29         ` Jens Axboe
  1 sibling, 1 reply; 19+ messages in thread
From: Li Zefan @ 2009-03-26  2:13 UTC (permalink / raw)
  To: Jens Axboe, Ingo Molnar
  Cc: Arnaldo Carvalho de Melo, Steven Rostedt, Frederic Weisbecker, LKML

Jens Axboe wrote:
> On Wed, Mar 25 2009, Ingo Molnar wrote:
>> * Li Zefan <lizf@cn.fujitsu.com> wrote:
>>
>>> Currently the original blktrace, which is using relay and is used 
>>> via ioctl, is broken. You can use ftrace to see the output of 
>>> blktrace, but user-space blktrace is unusable.
>> good catch, thanks Li!
>>
>> Jens, Arnaldo, do these fixes look good to you too?
> 
> Look fine, but I'm very worried about the state of the current code. I
> mean, this last round of fixes got the timestamp correct and made
> blktrace work again. Those are something that should have been caught
> even before the whole thing was posted, let alone merged. When do you
> plan on pushing this upstream? Looks like 2.6.31 to me, it's clearly not
> ready for 2.6.30 by any stretch.
> 

Actually not all the bugs I found are introduced by "blktrace: ftrace plugin"
in -tip tree.

One is introduced by "block: get rid of the manual directory counting in blktrace"
(f48fc4d32e24c0b6a18aad30305d819bcc68c049). Two are "blktrace: port to tracepoints"
(5f3ea37c7716db4e894a480e0c18b24399595b6b). Both commits are in mainline.

Since 2 of the bugs will rarely happen in real-life, and the 3rd one is a small
issue, and we were so close to the release of .29, so I sent the fixes for -tip
tree but not mainline. But if we are going merge tip/blktrace to .31, I guess
it's better to merge that 3 fixes to .30?

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/3] blktrace: fix the original blktrace
  2009-03-26  2:13       ` Li Zefan
@ 2009-03-26  8:29         ` Jens Axboe
  2009-03-26 13:37           ` Ingo Molnar
  0 siblings, 1 reply; 19+ messages in thread
From: Jens Axboe @ 2009-03-26  8:29 UTC (permalink / raw)
  To: Li Zefan
  Cc: Ingo Molnar, Arnaldo Carvalho de Melo, Steven Rostedt,
	Frederic Weisbecker, LKML

On Thu, Mar 26 2009, Li Zefan wrote:
> Jens Axboe wrote:
> > On Wed, Mar 25 2009, Ingo Molnar wrote:
> >> * Li Zefan <lizf@cn.fujitsu.com> wrote:
> >>
> >>> Currently the original blktrace, which is using relay and is used 
> >>> via ioctl, is broken. You can use ftrace to see the output of 
> >>> blktrace, but user-space blktrace is unusable.
> >> good catch, thanks Li!
> >>
> >> Jens, Arnaldo, do these fixes look good to you too?
> > 
> > Look fine, but I'm very worried about the state of the current code. I
> > mean, this last round of fixes got the timestamp correct and made
> > blktrace work again. Those are something that should have been caught
> > even before the whole thing was posted, let alone merged. When do you
> > plan on pushing this upstream? Looks like 2.6.31 to me, it's clearly not
> > ready for 2.6.30 by any stretch.
> > 
> 
> Actually not all the bugs I found are introduced by "blktrace: ftrace plugin"
> in -tip tree.

Oh sure, I did see that! And the fixes are appreciated of course.

> One is introduced by "block: get rid of the manual directory counting in blktrace"
> (f48fc4d32e24c0b6a18aad30305d819bcc68c049). Two are "blktrace: port to tracepoints"
> (5f3ea37c7716db4e894a480e0c18b24399595b6b). Both commits are in mainline.
> 
> Since 2 of the bugs will rarely happen in real-life, and the 3rd one
> is a small issue, and we were so close to the release of .29, so I
> sent the fixes for -tip tree but not mainline. But if we are going
> merge tip/blktrace to .31, I guess it's better to merge that 3 fixes
> to .30?

Since you are the person that worked on it most lately, your opinion
matters the most. What do you think, is it ready for 2.6.30 or should it
wait for .31?

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/3] blktrace: fix the original blktrace
  2009-03-26  8:29         ` Jens Axboe
@ 2009-03-26 13:37           ` Ingo Molnar
  2009-03-26 15:14             ` Arnaldo Carvalho de Melo
  0 siblings, 1 reply; 19+ messages in thread
From: Ingo Molnar @ 2009-03-26 13:37 UTC (permalink / raw)
  To: Jens Axboe
  Cc: Li Zefan, Arnaldo Carvalho de Melo, Steven Rostedt,
	Frederic Weisbecker, LKML


* Jens Axboe <jens.axboe@oracle.com> wrote:

> > One is introduced by "block: get rid of the manual directory counting in blktrace"
> > (f48fc4d32e24c0b6a18aad30305d819bcc68c049). Two are "blktrace: port to tracepoints"
> > (5f3ea37c7716db4e894a480e0c18b24399595b6b). Both commits are in mainline.
> > 
> > Since 2 of the bugs will rarely happen in real-life, and the 3rd 
> > one is a small issue, and we were so close to the release of 
> > .29, so I sent the fixes for -tip tree but not mainline. But if 
> > we are going merge tip/blktrace to .31, I guess it's better to 
> > merge that 3 fixes to .30?
> 
> Since you are the person that worked on it most lately, your 
> opinion matters the most. What do you think, is it ready for 
> 2.6.30 or should it wait for .31?

Yeah. Li, Arnaldo, what do you think?

Delaying them would be quite painful at this stage though - the 
blktrace plugin conversion was done with (ahem) your initial support 
so the commits got (foolishly, in hindsight ;-) interwoven into 300 
commits of the 2.6.30 tracing tree.

Delaying them would also be technically baseless - there are no 
known regressions or bugs in this code. (If you know about bugs then 
please speak up so we can fix them! ;-)

At this last minute stage we can do two things: merge it now or if 
you NAK it then we'll rebase the last ~2 months of the tracing tree 
with hundreds of commits (sigh), destroy its true history in the 
process and eradicate the blktrace bits.

I'd like to avoid the second option if possible as it destroys real 
value (these changes are really nice improvements, a lot of work 
went into them and there's no open regressions so i can see no 
objective reason why they couldnt go upstream now) but it's your 
choice really, you maintain block/* :-)

	Ingo

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/3] blktrace: fix the original blktrace
  2009-03-26 13:37           ` Ingo Molnar
@ 2009-03-26 15:14             ` Arnaldo Carvalho de Melo
  2009-03-26 15:44               ` Jens Axboe
  0 siblings, 1 reply; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2009-03-26 15:14 UTC (permalink / raw)
  To: Ingo Molnar
  Cc: Jens Axboe, Li Zefan, Steven Rostedt, Frederic Weisbecker, LKML

Em Thu, Mar 26, 2009 at 02:37:32PM +0100, Ingo Molnar escreveu:
> 
> * Jens Axboe <jens.axboe@oracle.com> wrote:
> 
> > > One is introduced by "block: get rid of the manual directory counting in blktrace"
> > > (f48fc4d32e24c0b6a18aad30305d819bcc68c049). Two are "blktrace: port to tracepoints"
> > > (5f3ea37c7716db4e894a480e0c18b24399595b6b). Both commits are in mainline.
> > > 
> > > Since 2 of the bugs will rarely happen in real-life, and the 3rd 
> > > one is a small issue, and we were so close to the release of 
> > > .29, so I sent the fixes for -tip tree but not mainline. But if 
> > > we are going merge tip/blktrace to .31, I guess it's better to 
> > > merge that 3 fixes to .30?
> > 
> > Since you are the person that worked on it most lately, your 
> > opinion matters the most. What do you think, is it ready for 
> > 2.6.30 or should it wait for .31?
> 
> Yeah. Li, Arnaldo, what do you think?
> 
> Delaying them would be quite painful at this stage though - the 
> blktrace plugin conversion was done with (ahem) your initial support 
> so the commits got (foolishly, in hindsight ;-) interwoven into 300 
> commits of the 2.6.30 tracing tree.
> 
> Delaying them would also be technically baseless - there are no 
> known regressions or bugs in this code. (If you know about bugs then 
> please speak up so we can fix them! ;-)
> 
> At this last minute stage we can do two things: merge it now or if 
> you NAK it then we'll rebase the last ~2 months of the tracing tree 
> with hundreds of commits (sigh), destroy its true history in the 
> process and eradicate the blktrace bits.
> 
> I'd like to avoid the second option if possible as it destroys real 
> value (these changes are really nice improvements, a lot of work 
> went into them and there's no open regressions so i can see no 
> objective reason why they couldnt go upstream now) but it's your 
> choice really, you maintain block/* :-)

Well, after this set of fixes by Li the only problem I'm aware of is the
__trace_note_message, that is using ftrace_vprintk, that I didn't notice
because I wasn't using CFQ when developing it, and that gets the output
of the _ftrace_ plugin wedged, but that doesn't affect normal blktrace
operation.

I'll try to get that fixed somehow today, other than that I'm not aware
of any other problem, so I think it could get into 2.6.30 on the premise
that normal blktrace operation is as stable as before and that the
ftrace plugin is recent work and may still need some fixes.

- Arnaldo

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/3] blktrace: fix the original blktrace
  2009-03-26 15:14             ` Arnaldo Carvalho de Melo
@ 2009-03-26 15:44               ` Jens Axboe
  2009-03-26 17:07                 ` Arnaldo Carvalho de Melo
  2009-03-27  0:21                 ` Li Zefan
  0 siblings, 2 replies; 19+ messages in thread
From: Jens Axboe @ 2009-03-26 15:44 UTC (permalink / raw)
  To: Arnaldo Carvalho de Melo
  Cc: Ingo Molnar, Li Zefan, Steven Rostedt, Frederic Weisbecker, LKML

On Thu, Mar 26 2009, Arnaldo Carvalho de Melo wrote:
> Em Thu, Mar 26, 2009 at 02:37:32PM +0100, Ingo Molnar escreveu:
> > 
> > * Jens Axboe <jens.axboe@oracle.com> wrote:
> > 
> > > > One is introduced by "block: get rid of the manual directory counting in blktrace"
> > > > (f48fc4d32e24c0b6a18aad30305d819bcc68c049). Two are "blktrace: port to tracepoints"
> > > > (5f3ea37c7716db4e894a480e0c18b24399595b6b). Both commits are in mainline.
> > > > 
> > > > Since 2 of the bugs will rarely happen in real-life, and the 3rd 
> > > > one is a small issue, and we were so close to the release of 
> > > > .29, so I sent the fixes for -tip tree but not mainline. But if 
> > > > we are going merge tip/blktrace to .31, I guess it's better to 
> > > > merge that 3 fixes to .30?
> > > 
> > > Since you are the person that worked on it most lately, your 
> > > opinion matters the most. What do you think, is it ready for 
> > > 2.6.30 or should it wait for .31?
> > 
> > Yeah. Li, Arnaldo, what do you think?
> > 
> > Delaying them would be quite painful at this stage though - the 
> > blktrace plugin conversion was done with (ahem) your initial support 
> > so the commits got (foolishly, in hindsight ;-) interwoven into 300 
> > commits of the 2.6.30 tracing tree.
> > 
> > Delaying them would also be technically baseless - there are no 
> > known regressions or bugs in this code. (If you know about bugs then 
> > please speak up so we can fix them! ;-)
> > 
> > At this last minute stage we can do two things: merge it now or if 
> > you NAK it then we'll rebase the last ~2 months of the tracing tree 
> > with hundreds of commits (sigh), destroy its true history in the 
> > process and eradicate the blktrace bits.
> > 
> > I'd like to avoid the second option if possible as it destroys real 
> > value (these changes are really nice improvements, a lot of work 
> > went into them and there's no open regressions so i can see no 
> > objective reason why they couldnt go upstream now) but it's your 
> > choice really, you maintain block/* :-)
> 
> Well, after this set of fixes by Li the only problem I'm aware of is the
> __trace_note_message, that is using ftrace_vprintk, that I didn't notice
> because I wasn't using CFQ when developing it, and that gets the output
> of the _ftrace_ plugin wedged, but that doesn't affect normal blktrace
> operation.
> 
> I'll try to get that fixed somehow today, other than that I'm not aware
> of any other problem, so I think it could get into 2.6.30 on the premise
> that normal blktrace operation is as stable as before and that the
> ftrace plugin is recent work and may still need some fixes.

Well, judging whether it is as stable as before is exactly what is asked
of you and Li :-). So which is it?

-- 
Jens Axboe


^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/3] blktrace: fix the original blktrace
  2009-03-26 15:44               ` Jens Axboe
@ 2009-03-26 17:07                 ` Arnaldo Carvalho de Melo
  2009-03-27  0:21                 ` Li Zefan
  1 sibling, 0 replies; 19+ messages in thread
From: Arnaldo Carvalho de Melo @ 2009-03-26 17:07 UTC (permalink / raw)
  To: Jens Axboe
  Cc: Ingo Molnar, Li Zefan, Steven Rostedt, Frederic Weisbecker, LKML

Em Thu, Mar 26, 2009 at 04:44:31PM +0100, Jens Axboe escreveu:
> On Thu, Mar 26 2009, Arnaldo Carvalho de Melo wrote:
> > Em Thu, Mar 26, 2009 at 02:37:32PM +0100, Ingo Molnar escreveu:
> > > 
> > > * Jens Axboe <jens.axboe@oracle.com> wrote:
> > > 
> > > > > One is introduced by "block: get rid of the manual directory counting in blktrace"
> > > > > (f48fc4d32e24c0b6a18aad30305d819bcc68c049). Two are "blktrace: port to tracepoints"
> > > > > (5f3ea37c7716db4e894a480e0c18b24399595b6b). Both commits are in mainline.
> > > > > 
> > > > > Since 2 of the bugs will rarely happen in real-life, and the 3rd 
> > > > > one is a small issue, and we were so close to the release of 
> > > > > .29, so I sent the fixes for -tip tree but not mainline. But if 
> > > > > we are going merge tip/blktrace to .31, I guess it's better to 
> > > > > merge that 3 fixes to .30?
> > > > 
> > > > Since you are the person that worked on it most lately, your 
> > > > opinion matters the most. What do you think, is it ready for 
> > > > 2.6.30 or should it wait for .31?
> > > 
> > > Yeah. Li, Arnaldo, what do you think?
> > > 
> > > Delaying them would be quite painful at this stage though - the 
> > > blktrace plugin conversion was done with (ahem) your initial support 
> > > so the commits got (foolishly, in hindsight ;-) interwoven into 300 
> > > commits of the 2.6.30 tracing tree.
> > > 
> > > Delaying them would also be technically baseless - there are no 
> > > known regressions or bugs in this code. (If you know about bugs then 
> > > please speak up so we can fix them! ;-)
> > > 
> > > At this last minute stage we can do two things: merge it now or if 
> > > you NAK it then we'll rebase the last ~2 months of the tracing tree 
> > > with hundreds of commits (sigh), destroy its true history in the 
> > > process and eradicate the blktrace bits.
> > > 
> > > I'd like to avoid the second option if possible as it destroys real 
> > > value (these changes are really nice improvements, a lot of work 
> > > went into them and there's no open regressions so i can see no 
> > > objective reason why they couldnt go upstream now) but it's your 
> > > choice really, you maintain block/* :-)
> > 
> > Well, after this set of fixes by Li the only problem I'm aware of is the
> > __trace_note_message, that is using ftrace_vprintk, that I didn't notice
> > because I wasn't using CFQ when developing it, and that gets the output
> > of the _ftrace_ plugin wedged, but that doesn't affect normal blktrace
> > operation.
> > 
> > I'll try to get that fixed somehow today, other than that I'm not aware
> > of any other problem, so I think it could get into 2.6.30 on the premise
> > that normal blktrace operation is as stable as before and that the
> > ftrace plugin is recent work and may still need some fixes.
> 
> Well, judging whether it is as stable as before is exactly what is asked
> of you and Li :-). So which is it?

I just checked out the latest linux-tip tree and will do some tests,
checking the work that Li did and will try various sequences such as
first using ftrace then blktrace, the reverse, trying to do both, trying
to parse the trace_pipe with blkparse -, etc on a 4way Xeon machine and
will report here the results.

- Arnaldo

^ permalink raw reply	[flat|nested] 19+ messages in thread

* Re: [PATCH 3/3] blktrace: fix the original blktrace
  2009-03-26 15:44               ` Jens Axboe
  2009-03-26 17:07                 ` Arnaldo Carvalho de Melo
@ 2009-03-27  0:21                 ` Li Zefan
  1 sibling, 0 replies; 19+ messages in thread
From: Li Zefan @ 2009-03-27  0:21 UTC (permalink / raw)
  To: Jens Axboe
  Cc: Arnaldo Carvalho de Melo, Ingo Molnar, Steven Rostedt,
	Frederic Weisbecker, LKML

>>> Yeah. Li, Arnaldo, what do you think?
>>>
>>> Delaying them would be quite painful at this stage though - the 
>>> blktrace plugin conversion was done with (ahem) your initial support 
>>> so the commits got (foolishly, in hindsight ;-) interwoven into 300 
>>> commits of the 2.6.30 tracing tree.
>>>
>>> Delaying them would also be technically baseless - there are no 
>>> known regressions or bugs in this code. (If you know about bugs then 
>>> please speak up so we can fix them! ;-)
>>>

I do know some bugs. ;)

>>> At this last minute stage we can do two things: merge it now or if 
>>> you NAK it then we'll rebase the last ~2 months of the tracing tree 
>>> with hundreds of commits (sigh), destroy its true history in the 
>>> process and eradicate the blktrace bits.
>>>
>>> I'd like to avoid the second option if possible as it destroys real 
>>> value (these changes are really nice improvements, a lot of work 
>>> went into them and there's no open regressions so i can see no 
>>> objective reason why they couldnt go upstream now) but it's your 
>>> choice really, you maintain block/* :-)
>> Well, after this set of fixes by Li the only problem I'm aware of is the
>> __trace_note_message, that is using ftrace_vprintk, that I didn't notice

This was the first issue I saw when I started to use blktrace in -tip tree,
and I made a fix yesterday. I'll post it soon, with some other fixes.

>> because I wasn't using CFQ when developing it, and that gets the output
>> of the _ftrace_ plugin wedged, but that doesn't affect normal blktrace
>> operation.
>>
>> I'll try to get that fixed somehow today, other than that I'm not aware
>> of any other problem, so I think it could get into 2.6.30 on the premise
>> that normal blktrace operation is as stable as before and that the
>> ftrace plugin is recent work and may still need some fixes.
> 
> Well, judging whether it is as stable as before is exactly what is asked
> of you and Li :-). So which is it?
> 

With the fixes I posted and will post, both ioctl-based blktrace and ftrace
-based blktrace should be working fine, and I'll continue to use and test
it.

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2009-03-27  0:21 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-03-25  9:18 [PATCH 1/3] blktrace: fix timestamp in binary output Li Zefan
2009-03-25  9:19 ` [PATCH 2/3] blktrace: fix a race when creating blk_tree_root in debugfs Li Zefan
2009-03-25 11:54   ` [tip:tracing/blktrace] " Li Zefan
2009-03-25  9:21 ` [PATCH 3/3] blktrace: fix the original blktrace Li Zefan
2009-03-25 10:14   ` Ingo Molnar
2009-03-25 10:17     ` Jens Axboe
2009-03-25 11:47       ` Ingo Molnar
2009-03-25 13:51         ` Arnaldo Carvalho de Melo
2009-03-25 13:56           ` Jens Axboe
2009-03-25 14:07             ` Arnaldo Carvalho de Melo
2009-03-26  2:13       ` Li Zefan
2009-03-26  8:29         ` Jens Axboe
2009-03-26 13:37           ` Ingo Molnar
2009-03-26 15:14             ` Arnaldo Carvalho de Melo
2009-03-26 15:44               ` Jens Axboe
2009-03-26 17:07                 ` Arnaldo Carvalho de Melo
2009-03-27  0:21                 ` Li Zefan
2009-03-25 11:54   ` [tip:tracing/blktrace] " Li Zefan
2009-03-25 11:54 ` [tip:tracing/blktrace] blktrace: fix timestamp in binary output Li Zefan

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.