diff options
| author | Shawn Du <duyuyang@gmail.com> | 2009-04-14 13:58:56 +0800 | 
|---|---|---|
| committer | Ingo Molnar <mingo@elte.hu> | 2009-04-16 10:10:57 +0200 | 
| commit | d0deef5b14af7d5bbd0003a0a2a1a32326e20a6d (patch) | |
| tree | de1d438935a4cc50dd9d7e0ccccc3cfc5c7e6c06 /include/linux/blktrace_api.h | |
| parent | 9cfe06f8cd5c8c3ad6ab323973e87dde670642b8 (diff) | |
| download | olio-linux-3.10-d0deef5b14af7d5bbd0003a0a2a1a32326e20a6d.tar.xz olio-linux-3.10-d0deef5b14af7d5bbd0003a0a2a1a32326e20a6d.zip  | |
blktrace: support per-partition tracing
Though one can specify '-d /dev/sda1' when using blktrace, it still
traces the whole sda.
To support per-partition tracing, when we start tracing, we initialize
bt->start_lba and bt->end_lba to the start and end sector of that
partition.
Note some actions are per device, thus we don't filter 0-sector events.
The original patch and discussion can be found here:
	http://marc.info/?l=linux-btrace&m=122949374214540&w=2
Signed-off-by: Shawn Du <duyuyang@gmail.com>
Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
Acked-by: "Theodore Ts'o" <tytso@mit.edu>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Jens Axboe <jens.axboe@oracle.com>
LKML-Reference: <49E42620.4050701@cn.fujitsu.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/linux/blktrace_api.h')
| -rw-r--r-- | include/linux/blktrace_api.h | 24 | 
1 files changed, 13 insertions, 11 deletions
diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h index d960889e92e..267edc4017e 100644 --- a/include/linux/blktrace_api.h +++ b/include/linux/blktrace_api.h @@ -165,8 +165,9 @@ struct blk_trace {  extern int blk_trace_ioctl(struct block_device *, unsigned, char __user *);  extern void blk_trace_shutdown(struct request_queue *); -extern int do_blk_trace_setup(struct request_queue *q, -	char *name, dev_t dev, struct blk_user_trace_setup *buts); +extern int do_blk_trace_setup(struct request_queue *q, char *name, +			      dev_t dev, struct block_device *bdev, +			      struct blk_user_trace_setup *buts);  extern void __trace_note_message(struct blk_trace *, const char *fmt, ...);  /** @@ -193,6 +194,7 @@ extern void __trace_note_message(struct blk_trace *, const char *fmt, ...);  extern void blk_add_driver_data(struct request_queue *q, struct request *rq,  				void *data, size_t len);  extern int blk_trace_setup(struct request_queue *q, char *name, dev_t dev, +			   struct block_device *bdev,  			   char __user *arg);  extern int blk_trace_startstop(struct request_queue *q, int start);  extern int blk_trace_remove(struct request_queue *q); @@ -200,15 +202,15 @@ extern int blk_trace_remove(struct request_queue *q);  extern struct attribute_group blk_trace_attr_group;  #else /* !CONFIG_BLK_DEV_IO_TRACE */ -#define blk_trace_ioctl(bdev, cmd, arg)		(-ENOTTY) -#define blk_trace_shutdown(q)			do { } while (0) -#define do_blk_trace_setup(q, name, dev, buts)	(-ENOTTY) -#define blk_add_driver_data(q, rq, data, len)	do {} while (0) -#define blk_trace_setup(q, name, dev, arg)	(-ENOTTY) -#define blk_trace_startstop(q, start)		(-ENOTTY) -#define blk_trace_remove(q)			(-ENOTTY) -#define blk_add_trace_msg(q, fmt, ...)		do { } while (0) - +# define blk_trace_ioctl(bdev, cmd, arg)		(-ENOTTY) +# define blk_trace_shutdown(q)				do { } while (0) +# define do_blk_trace_setup(q, name, dev, bdev, buts)	(-ENOTTY) +# define blk_add_driver_data(q, rq, data, len)		do {} while (0) +# define blk_trace_setup(q, name, dev, bdev, arg)	(-ENOTTY) +# define blk_trace_startstop(q, start)			(-ENOTTY) +# define blk_trace_remove(q)				(-ENOTTY) +# define blk_add_trace_msg(q, fmt, ...)			do { } while (0)  #endif /* CONFIG_BLK_DEV_IO_TRACE */ +  #endif /* __KERNEL__ */  #endif  |