From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751789Ab1AEPKq (ORCPT ); Wed, 5 Jan 2011 10:10:46 -0500 Received: from mx1.redhat.com ([209.132.183.28]:14125 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751686Ab1AEPKp (ORCPT ); Wed, 5 Jan 2011 10:10:45 -0500 From: Jeff Moyer To: Mathieu Desnoyers Cc: LKML , Steven Rostedt , Frederic Weisbecker , Ingo Molnar , Thomas Gleixner , Jens Axboe , Li Zefan , Alan.Brunelle@hp.com Subject: Re: [RFC patch 1/5] trace event block fix unassigned field References: <20110104231629.996422888@efficios.com> <20110104232419.097998611@efficios.com> X-PGP-KeyID: 1F78E1B4 X-PGP-CertKey: F6FE 280D 8293 F72C 65FD 5A58 1FF8 A7CA 1F78 E1B4 X-PCLoadLetter: What the f**k does that mean? Date: Wed, 05 Jan 2011 10:09:20 -0500 In-Reply-To: <20110104232419.097998611@efficios.com> (Mathieu Desnoyers's message of "Tue, 04 Jan 2011 18:16:30 -0500") Message-ID: User-Agent: Gnus/5.110011 (No Gnus v0.11) Emacs/23.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Mathieu Desnoyers writes: > The "error" field in block_bio_complete is not assigned, leaving the memory area > uninitialized (keeping garbage data). Initialize it to 0. > > We should eventually remove this field when we find out if blktrace can live > without it. Well, I'm fairly sure blkparse has the ability to print this field out, so we should probably just fill it in properly. Something like the following untested patch should do. Cheers, Jeff Signed-off-by: Jeff Moyer diff --git a/drivers/md/dm.c b/drivers/md/dm.c index 7cb1352..f4d83f2 100644 --- a/drivers/md/dm.c +++ b/drivers/md/dm.c @@ -630,7 +630,7 @@ static void dec_pending(struct dm_io *io, int error) queue_io(md, bio); } else { /* done with normal IO or empty flush */ - trace_block_bio_complete(md->queue, bio); + trace_block_bio_complete(md->queue, bio, io_error); bio_endio(bio, io_error); } } diff --git a/include/trace/events/block.h b/include/trace/events/block.h index d8ce278..8990a62 100644 --- a/include/trace/events/block.h +++ b/include/trace/events/block.h @@ -212,7 +212,7 @@ TRACE_EVENT(block_bio_bounce, */ TRACE_EVENT(block_bio_complete, - TP_PROTO(struct request_queue *q, struct bio *bio), + TP_PROTO(struct request_queue *q, struct bio *bio, int error), TP_ARGS(q, bio), @@ -228,6 +228,7 @@ TRACE_EVENT(block_bio_complete, __entry->dev = bio->bi_bdev->bd_dev; __entry->sector = bio->bi_sector; __entry->nr_sector = bio->bi_size >> 9; + __entry->error = error; blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size); ),