From mboxrd@z Thu Jan 1 00:00:00 1970 From: Namhyung Kim Subject: [PATCH -block/for-next 0/2] blktrace: bio-based device tracing improvement v3 Date: Tue, 27 Dec 2011 23:28:31 +0900 Message-ID: <1324996113-1837-1-git-send-email-namhyung@gmail.com> Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org To: Jens Axboe Return-path: Sender: linux-kernel-owner@vger.kernel.org List-Id: linux-fsdevel.vger.kernel.org Hello, The blktrace is used to report block device activities to user space using kernel tracepoint but it was focused to block I/O request struct. Thus bio-based devices (i.e. loop, ram, md, ...) which don't make use of the request structure could not be supported well - the tool only can detect a limited number of events such as queuing, cloning and remapping but it cannot know when the I/O activity is completed. bio_endio(), the I/O completion callback, can be used to fix this problem by adding appropriate tracepoint in it. However it was called from other paths too (normal request-based block devices and some of nested block I/O handling routines) so that we should recognize such cases to prevent duplicated reports. In this series, BIO_IN_FLIGHT flag is introduced and used for that purpose. Note that (bio-based) dm already supported completion report by adding the tracepoint into the path manually. With this patches, it will be converted to use generic mechanism. Changes from v2: * rebased on current block/for-next Changes from v1: * kill __bio_endio() * use BIO_IN_FLIGHT flag Any feedbacks are welcome. Thanks. Namhyung Kim (2): block: introduce BIO_IN_FLIGHT flag block: don't export block_bio_complete tracepoint block/blk-core.c | 6 +++++- drivers/md/dm.c | 1 - fs/bio.c | 7 +++++++ include/linux/blk_types.h | 1 + 4 files changed, 13 insertions(+), 2 deletions(-) -- 1.7.6