summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--block/blk-core.c13
-rw-r--r--block/elevator.c5
-rw-r--r--drivers/md/dm.c2
-rw-r--r--fs/bio.c2
-rw-r--r--include/trace/block.h84
-rw-r--r--mm/bounce.c2
6 files changed, 74 insertions, 34 deletions
diff --git a/block/blk-core.c b/block/blk-core.c
index 04267d66a2b9..0c06cf5aaaf8 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -32,6 +32,19 @@
#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);
/*
diff --git a/block/elevator.c b/block/elevator.c
index 530fcfe2ef07..e5677fe4f412 100644
--- a/block/elevator.c
+++ b/block/elevator.c
@@ -42,6 +42,8 @@
static DEFINE_SPINLOCK(elv_list_lock);
static LIST_HEAD(elv_list);
+DEFINE_TRACE(block_rq_abort);
+
/*
* Merge hash stuff.
*/
@@ -53,6 +55,9 @@ static const int elv_hash_shift = 6;
#define rq_hash_key(rq) ((rq)->sector + (rq)->nr_sectors)
#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
* merged with rq.
diff --git a/drivers/md/dm.c b/drivers/md/dm.c
index d23fda178163..343094c3feeb 100644
--- a/drivers/md/dm.c
+++ b/drivers/md/dm.c
@@ -52,6 +52,8 @@ struct dm_target_io {
union map_info info;
};
+DEFINE_TRACE(block_bio_complete);
+
union map_info *dm_get_mapinfo(struct bio *bio)
{
if (bio && bio->bi_private)
diff --git a/fs/bio.c b/fs/bio.c
index 060859c69092..df99c882b807 100644
--- a/fs/bio.c
+++ b/fs/bio.c
@@ -29,6 +29,8 @@
#include <trace/block.h>
#include <scsi/sg.h> /* for struct sg_iovec */
+DEFINE_TRACE(block_split);
+
static struct kmem_cache *bio_slab __read_mostly;
static mempool_t *bio_split_pool __read_mostly;
diff --git a/include/trace/block.h b/include/trace/block.h
index 3cc2675ebf01..25c6a1fd5b77 100644
--- a/include/trace/block.h
+++ b/include/trace/block.h
@@ -4,57 +4,73 @@
#include <linux/blkdev.h>
#include <linux/tracepoint.h>
-DEFINE_TRACE(block_rq_abort,
+DECLARE_TRACE(block_rq_abort,
TPPROTO(struct request_queue *q, struct request *rq),
- TPARGS(q, rq));
-DEFINE_TRACE(block_rq_insert,
+ TPARGS(q, rq));
+
+DECLARE_TRACE(block_rq_insert,
TPPROTO(struct request_queue *q, struct request *rq),
- TPARGS(q, rq));
-DEFINE_TRACE(block_rq_issue,
+ TPARGS(q, rq));
+
+DECLARE_TRACE(block_rq_issue,
TPPROTO(struct request_queue *q, struct request *rq),
- TPARGS(q, rq));
-DEFINE_TRACE(block_rq_requeue,
+ TPARGS(q, rq));
+
+DECLARE_TRACE(block_rq_requeue,
TPPROTO(struct request_queue *q, struct request *rq),
- TPARGS(q, rq));
-DEFINE_TRACE(block_rq_complete,
+ TPARGS(q, rq));
+
+DECLARE_TRACE(block_rq_complete,
TPPROTO(struct request_queue *q, struct request *rq),
- TPARGS(q, rq));
-DEFINE_TRACE(block_bio_bounce,
+ TPARGS(q, rq));
+
+DECLARE_TRACE(block_bio_bounce,
TPPROTO(struct request_queue *q, struct bio *bio),
- TPARGS(q, bio));
-DEFINE_TRACE(block_bio_complete,
+ TPARGS(q, bio));
+
+DECLARE_TRACE(block_bio_complete,
TPPROTO(struct request_queue *q, struct bio *bio),
- TPARGS(q, bio));
-DEFINE_TRACE(block_bio_backmerge,
+ TPARGS(q, bio));
+
+DECLARE_TRACE(block_bio_backmerge,
TPPROTO(struct request_queue *q, struct bio *bio),
- TPARGS(q, bio));
-DEFINE_TRACE(block_bio_frontmerge,
+ TPARGS(q, bio));
+
+DECLARE_TRACE(block_bio_frontmerge,
TPPROTO(struct request_queue *q, struct bio *bio),
- TPARGS(q, bio));
-DEFINE_TRACE(block_bio_queue,
+ TPARGS(q, bio));
+
+DECLARE_TRACE(block_bio_queue,
TPPROTO(struct request_queue *q, struct bio *bio),
- TPARGS(q, bio));
-DEFINE_TRACE(block_getrq,
+ TPARGS(q, bio));
+
+DECLARE_TRACE(block_getrq,
TPPROTO(struct request_queue *q, struct bio *bio, int rw),
- TPARGS(q, bio, rw));
-DEFINE_TRACE(block_sleeprq,
+ TPARGS(q, bio, rw));
+
+DECLARE_TRACE(block_sleeprq,
TPPROTO(struct request_queue *q, struct bio *bio, int rw),
- TPARGS(q, bio, rw));
-DEFINE_TRACE(block_plug,
+ TPARGS(q, bio, rw));
+
+DECLARE_TRACE(block_plug,
TPPROTO(struct request_queue *q),
- TPARGS(q));
-DEFINE_TRACE(block_unplug_timer,
+ TPARGS(q));
+
+DECLARE_TRACE(block_unplug_timer,
TPPROTO(struct request_queue *q),
- TPARGS(q));
-DEFINE_TRACE(block_unplug_io,
+ TPARGS(q));
+
+DECLARE_TRACE(block_unplug_io,
TPPROTO(struct request_queue *q),
- TPARGS(q));
-DEFINE_TRACE(block_split,
+ TPARGS(q));
+
+DECLARE_TRACE(block_split,
TPPROTO(struct request_queue *q, struct bio *bio, unsigned int pdu),
- TPARGS(q, bio, pdu));
-DEFINE_TRACE(block_remap,
+ TPARGS(q, bio, pdu));
+
+DECLARE_TRACE(block_remap,
TPPROTO(struct request_queue *q, struct bio *bio, dev_t dev,
sector_t from, sector_t to),
- TPARGS(q, bio, dev, from, to));
+ TPARGS(q, bio, dev, from, to));
#endif
diff --git a/mm/bounce.c b/mm/bounce.c
index bd1caaa582b8..bf0cf7c8387b 100644
--- a/mm/bounce.c
+++ b/mm/bounce.c
@@ -22,6 +22,8 @@
static mempool_t *page_pool, *isa_page_pool;
+DEFINE_TRACE(block_bio_bounce);
+
#ifdef CONFIG_HIGHMEM
static __init int init_emergency_pool(void)
{