Commit 0bfc2455 authored by Ingo Molnar's avatar Ingo Molnar

blktrace: port to tracepoints, update

Port to the new tracepoints API: split DEFINE_TRACE() and DECLARE_TRACE()
sites. Spread them out to the usage sites, as suggested by
Mathieu Desnoyers.
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Acked-by: default avatarMathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
parent 5f3ea37c
...@@ -32,6 +32,19 @@ ...@@ -32,6 +32,19 @@
#include "blk.h" #include "blk.h"
DEFINE_TRACE(block_plug);
DEFINE_TRACE(block_unplug_io);
DEFINE_TRACE(block_unplug_timer);
DEFINE_TRACE(block_getrq);
DEFINE_TRACE(block_sleeprq);
DEFINE_TRACE(block_rq_requeue);
DEFINE_TRACE(block_bio_backmerge);
DEFINE_TRACE(block_bio_frontmerge);
DEFINE_TRACE(block_bio_queue);
DEFINE_TRACE(block_rq_complete);
DEFINE_TRACE(block_remap); /* Also used in drivers/md/dm.c */
EXPORT_TRACEPOINT_SYMBOL_GPL(block_remap);
static int __make_request(struct request_queue *q, struct bio *bio); static int __make_request(struct request_queue *q, struct bio *bio);
/* /*
......
...@@ -42,6 +42,8 @@ ...@@ -42,6 +42,8 @@
static DEFINE_SPINLOCK(elv_list_lock); static DEFINE_SPINLOCK(elv_list_lock);
static LIST_HEAD(elv_list); static LIST_HEAD(elv_list);
DEFINE_TRACE(block_rq_abort);
/* /*
* Merge hash stuff. * Merge hash stuff.
*/ */
...@@ -53,6 +55,9 @@ static const int elv_hash_shift = 6; ...@@ -53,6 +55,9 @@ static const int elv_hash_shift = 6;
#define rq_hash_key(rq) ((rq)->sector + (rq)->nr_sectors) #define rq_hash_key(rq) ((rq)->sector + (rq)->nr_sectors)
#define ELV_ON_HASH(rq) (!hlist_unhashed(&(rq)->hash)) #define ELV_ON_HASH(rq) (!hlist_unhashed(&(rq)->hash))
DEFINE_TRACE(block_rq_insert);
DEFINE_TRACE(block_rq_issue);
/* /*
* Query io scheduler to see if the current process issuing bio may be * Query io scheduler to see if the current process issuing bio may be
* merged with rq. * merged with rq.
......
...@@ -52,6 +52,8 @@ struct dm_target_io { ...@@ -52,6 +52,8 @@ struct dm_target_io {
union map_info info; union map_info info;
}; };
DEFINE_TRACE(block_bio_complete);
union map_info *dm_get_mapinfo(struct bio *bio) union map_info *dm_get_mapinfo(struct bio *bio)
{ {
if (bio && bio->bi_private) if (bio && bio->bi_private)
......
...@@ -29,6 +29,8 @@ ...@@ -29,6 +29,8 @@
#include <trace/block.h> #include <trace/block.h>
#include <scsi/sg.h> /* for struct sg_iovec */ #include <scsi/sg.h> /* for struct sg_iovec */
DEFINE_TRACE(block_split);
static struct kmem_cache *bio_slab __read_mostly; static struct kmem_cache *bio_slab __read_mostly;
static mempool_t *bio_split_pool __read_mostly; static mempool_t *bio_split_pool __read_mostly;
......
...@@ -4,57 +4,73 @@ ...@@ -4,57 +4,73 @@
#include <linux/blkdev.h> #include <linux/blkdev.h>
#include <linux/tracepoint.h> #include <linux/tracepoint.h>
DEFINE_TRACE(block_rq_abort, DECLARE_TRACE(block_rq_abort,
TPPROTO(struct request_queue *q, struct request *rq), TPPROTO(struct request_queue *q, struct request *rq),
TPARGS(q, rq)); TPARGS(q, rq));
DEFINE_TRACE(block_rq_insert,
DECLARE_TRACE(block_rq_insert,
TPPROTO(struct request_queue *q, struct request *rq), TPPROTO(struct request_queue *q, struct request *rq),
TPARGS(q, rq)); TPARGS(q, rq));
DEFINE_TRACE(block_rq_issue,
DECLARE_TRACE(block_rq_issue,
TPPROTO(struct request_queue *q, struct request *rq), TPPROTO(struct request_queue *q, struct request *rq),
TPARGS(q, rq)); TPARGS(q, rq));
DEFINE_TRACE(block_rq_requeue,
DECLARE_TRACE(block_rq_requeue,
TPPROTO(struct request_queue *q, struct request *rq), TPPROTO(struct request_queue *q, struct request *rq),
TPARGS(q, rq)); TPARGS(q, rq));
DEFINE_TRACE(block_rq_complete,
DECLARE_TRACE(block_rq_complete,
TPPROTO(struct request_queue *q, struct request *rq), TPPROTO(struct request_queue *q, struct request *rq),
TPARGS(q, rq)); TPARGS(q, rq));
DEFINE_TRACE(block_bio_bounce,
DECLARE_TRACE(block_bio_bounce,
TPPROTO(struct request_queue *q, struct bio *bio), TPPROTO(struct request_queue *q, struct bio *bio),
TPARGS(q, bio)); TPARGS(q, bio));
DEFINE_TRACE(block_bio_complete,
DECLARE_TRACE(block_bio_complete,
TPPROTO(struct request_queue *q, struct bio *bio), TPPROTO(struct request_queue *q, struct bio *bio),
TPARGS(q, bio)); TPARGS(q, bio));
DEFINE_TRACE(block_bio_backmerge,
DECLARE_TRACE(block_bio_backmerge,
TPPROTO(struct request_queue *q, struct bio *bio), TPPROTO(struct request_queue *q, struct bio *bio),
TPARGS(q, bio)); TPARGS(q, bio));
DEFINE_TRACE(block_bio_frontmerge,
DECLARE_TRACE(block_bio_frontmerge,
TPPROTO(struct request_queue *q, struct bio *bio), TPPROTO(struct request_queue *q, struct bio *bio),
TPARGS(q, bio)); TPARGS(q, bio));
DEFINE_TRACE(block_bio_queue,
DECLARE_TRACE(block_bio_queue,
TPPROTO(struct request_queue *q, struct bio *bio), TPPROTO(struct request_queue *q, struct bio *bio),
TPARGS(q, bio)); TPARGS(q, bio));
DEFINE_TRACE(block_getrq,
DECLARE_TRACE(block_getrq,
TPPROTO(struct request_queue *q, struct bio *bio, int rw), TPPROTO(struct request_queue *q, struct bio *bio, int rw),
TPARGS(q, bio, rw)); TPARGS(q, bio, rw));
DEFINE_TRACE(block_sleeprq,
DECLARE_TRACE(block_sleeprq,
TPPROTO(struct request_queue *q, struct bio *bio, int rw), TPPROTO(struct request_queue *q, struct bio *bio, int rw),
TPARGS(q, bio, rw)); TPARGS(q, bio, rw));
DEFINE_TRACE(block_plug,
DECLARE_TRACE(block_plug,
TPPROTO(struct request_queue *q), TPPROTO(struct request_queue *q),
TPARGS(q)); TPARGS(q));
DEFINE_TRACE(block_unplug_timer,
DECLARE_TRACE(block_unplug_timer,
TPPROTO(struct request_queue *q), TPPROTO(struct request_queue *q),
TPARGS(q)); TPARGS(q));
DEFINE_TRACE(block_unplug_io,
DECLARE_TRACE(block_unplug_io,
TPPROTO(struct request_queue *q), TPPROTO(struct request_queue *q),
TPARGS(q)); TPARGS(q));
DEFINE_TRACE(block_split,
DECLARE_TRACE(block_split,
TPPROTO(struct request_queue *q, struct bio *bio, unsigned int pdu), TPPROTO(struct request_queue *q, struct bio *bio, unsigned int pdu),
TPARGS(q, bio, pdu)); TPARGS(q, bio, pdu));
DEFINE_TRACE(block_remap,
DECLARE_TRACE(block_remap,
TPPROTO(struct request_queue *q, struct bio *bio, dev_t dev, TPPROTO(struct request_queue *q, struct bio *bio, dev_t dev,
sector_t from, sector_t to), sector_t from, sector_t to),
TPARGS(q, bio, dev, from, to)); TPARGS(q, bio, dev, from, to));
#endif #endif
...@@ -22,6 +22,8 @@ ...@@ -22,6 +22,8 @@
static mempool_t *page_pool, *isa_page_pool; static mempool_t *page_pool, *isa_page_pool;
DEFINE_TRACE(block_bio_bounce);
#ifdef CONFIG_HIGHMEM #ifdef CONFIG_HIGHMEM
static __init int init_emergency_pool(void) static __init int init_emergency_pool(void)
{ {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment