blktrace.c (5853b4f06f7b9b56f37f457d7923f7b96496074e) blktrace.c (49cac01e1fa74174d72adb0e872504a7fefd7c01)
1/*
2 * Copyright (C) 2006 Jens Axboe <axboe@kernel.dk>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,

--- 836 unchanged lines hidden (view full) ---

845static void blk_add_trace_plug(void *ignore, struct request_queue *q)
846{
847 struct blk_trace *bt = q->blk_trace;
848
849 if (bt)
850 __blk_add_trace(bt, 0, 0, 0, BLK_TA_PLUG, 0, 0, NULL);
851}
852
1/*
2 * Copyright (C) 2006 Jens Axboe <axboe@kernel.dk>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,

--- 836 unchanged lines hidden (view full) ---

845static void blk_add_trace_plug(void *ignore, struct request_queue *q)
846{
847 struct blk_trace *bt = q->blk_trace;
848
849 if (bt)
850 __blk_add_trace(bt, 0, 0, 0, BLK_TA_PLUG, 0, 0, NULL);
851}
852
853static void blk_add_trace_unplug_io(void *ignore, struct request_queue *q,
854 unsigned int depth)
853static void blk_add_trace_unplug(void *ignore, struct request_queue *q,
854 unsigned int depth, bool explicit)
855{
856 struct blk_trace *bt = q->blk_trace;
857
858 if (bt) {
859 __be64 rpdu = cpu_to_be64(depth);
855{
856 struct blk_trace *bt = q->blk_trace;
857
858 if (bt) {
859 __be64 rpdu = cpu_to_be64(depth);
860 u32 what;
860
861
861 __blk_add_trace(bt, 0, 0, 0, BLK_TA_UNPLUG_IO, 0,
862 sizeof(rpdu), &rpdu);
862 if (explicit)
863 what = BLK_TA_UNPLUG_IO;
864 else
865 what = BLK_TA_UNPLUG_TIMER;
866
867 __blk_add_trace(bt, 0, 0, 0, what, 0, sizeof(rpdu), &rpdu);
863 }
864}
865
866static void blk_add_trace_split(void *ignore,
867 struct request_queue *q, struct bio *bio,
868 unsigned int pdu)
869{
870 struct blk_trace *bt = q->blk_trace;

--- 126 unchanged lines hidden (view full) ---

997 ret = register_trace_block_bio_queue(blk_add_trace_bio_queue, NULL);
998 WARN_ON(ret);
999 ret = register_trace_block_getrq(blk_add_trace_getrq, NULL);
1000 WARN_ON(ret);
1001 ret = register_trace_block_sleeprq(blk_add_trace_sleeprq, NULL);
1002 WARN_ON(ret);
1003 ret = register_trace_block_plug(blk_add_trace_plug, NULL);
1004 WARN_ON(ret);
868 }
869}
870
871static void blk_add_trace_split(void *ignore,
872 struct request_queue *q, struct bio *bio,
873 unsigned int pdu)
874{
875 struct blk_trace *bt = q->blk_trace;

--- 126 unchanged lines hidden (view full) ---

1002 ret = register_trace_block_bio_queue(blk_add_trace_bio_queue, NULL);
1003 WARN_ON(ret);
1004 ret = register_trace_block_getrq(blk_add_trace_getrq, NULL);
1005 WARN_ON(ret);
1006 ret = register_trace_block_sleeprq(blk_add_trace_sleeprq, NULL);
1007 WARN_ON(ret);
1008 ret = register_trace_block_plug(blk_add_trace_plug, NULL);
1009 WARN_ON(ret);
1005 ret = register_trace_block_unplug_io(blk_add_trace_unplug_io, NULL);
1010 ret = register_trace_block_unplug(blk_add_trace_unplug, NULL);
1006 WARN_ON(ret);
1007 ret = register_trace_block_split(blk_add_trace_split, NULL);
1008 WARN_ON(ret);
1009 ret = register_trace_block_bio_remap(blk_add_trace_bio_remap, NULL);
1010 WARN_ON(ret);
1011 ret = register_trace_block_rq_remap(blk_add_trace_rq_remap, NULL);
1012 WARN_ON(ret);
1013}
1014
1015static void blk_unregister_tracepoints(void)
1016{
1017 unregister_trace_block_rq_remap(blk_add_trace_rq_remap, NULL);
1018 unregister_trace_block_bio_remap(blk_add_trace_bio_remap, NULL);
1019 unregister_trace_block_split(blk_add_trace_split, NULL);
1011 WARN_ON(ret);
1012 ret = register_trace_block_split(blk_add_trace_split, NULL);
1013 WARN_ON(ret);
1014 ret = register_trace_block_bio_remap(blk_add_trace_bio_remap, NULL);
1015 WARN_ON(ret);
1016 ret = register_trace_block_rq_remap(blk_add_trace_rq_remap, NULL);
1017 WARN_ON(ret);
1018}
1019
1020static void blk_unregister_tracepoints(void)
1021{
1022 unregister_trace_block_rq_remap(blk_add_trace_rq_remap, NULL);
1023 unregister_trace_block_bio_remap(blk_add_trace_bio_remap, NULL);
1024 unregister_trace_block_split(blk_add_trace_split, NULL);
1020 unregister_trace_block_unplug_io(blk_add_trace_unplug_io, NULL);
1025 unregister_trace_block_unplug(blk_add_trace_unplug, NULL);
1021 unregister_trace_block_plug(blk_add_trace_plug, NULL);
1022 unregister_trace_block_sleeprq(blk_add_trace_sleeprq, NULL);
1023 unregister_trace_block_getrq(blk_add_trace_getrq, NULL);
1024 unregister_trace_block_bio_queue(blk_add_trace_bio_queue, NULL);
1025 unregister_trace_block_bio_frontmerge(blk_add_trace_bio_frontmerge, NULL);
1026 unregister_trace_block_bio_backmerge(blk_add_trace_bio_backmerge, NULL);
1027 unregister_trace_block_bio_complete(blk_add_trace_bio_complete, NULL);
1028 unregister_trace_block_bio_bounce(blk_add_trace_bio_bounce, NULL);

--- 298 unchanged lines hidden (view full) ---

1327 [__BLK_TA_FRONTMERGE] = {{ "F", "frontmerge" }, blk_log_generic },
1328 [__BLK_TA_GETRQ] = {{ "G", "getrq" }, blk_log_generic },
1329 [__BLK_TA_SLEEPRQ] = {{ "S", "sleeprq" }, blk_log_generic },
1330 [__BLK_TA_REQUEUE] = {{ "R", "requeue" }, blk_log_with_error },
1331 [__BLK_TA_ISSUE] = {{ "D", "issue" }, blk_log_generic },
1332 [__BLK_TA_COMPLETE] = {{ "C", "complete" }, blk_log_with_error },
1333 [__BLK_TA_PLUG] = {{ "P", "plug" }, blk_log_plug },
1334 [__BLK_TA_UNPLUG_IO] = {{ "U", "unplug_io" }, blk_log_unplug },
1026 unregister_trace_block_plug(blk_add_trace_plug, NULL);
1027 unregister_trace_block_sleeprq(blk_add_trace_sleeprq, NULL);
1028 unregister_trace_block_getrq(blk_add_trace_getrq, NULL);
1029 unregister_trace_block_bio_queue(blk_add_trace_bio_queue, NULL);
1030 unregister_trace_block_bio_frontmerge(blk_add_trace_bio_frontmerge, NULL);
1031 unregister_trace_block_bio_backmerge(blk_add_trace_bio_backmerge, NULL);
1032 unregister_trace_block_bio_complete(blk_add_trace_bio_complete, NULL);
1033 unregister_trace_block_bio_bounce(blk_add_trace_bio_bounce, NULL);

--- 298 unchanged lines hidden (view full) ---

1332 [__BLK_TA_FRONTMERGE] = {{ "F", "frontmerge" }, blk_log_generic },
1333 [__BLK_TA_GETRQ] = {{ "G", "getrq" }, blk_log_generic },
1334 [__BLK_TA_SLEEPRQ] = {{ "S", "sleeprq" }, blk_log_generic },
1335 [__BLK_TA_REQUEUE] = {{ "R", "requeue" }, blk_log_with_error },
1336 [__BLK_TA_ISSUE] = {{ "D", "issue" }, blk_log_generic },
1337 [__BLK_TA_COMPLETE] = {{ "C", "complete" }, blk_log_with_error },
1338 [__BLK_TA_PLUG] = {{ "P", "plug" }, blk_log_plug },
1339 [__BLK_TA_UNPLUG_IO] = {{ "U", "unplug_io" }, blk_log_unplug },
1340 [__BLK_TA_UNPLUG_TIMER] = {{ "UT", "unplug_timer" }, blk_log_unplug },
1335 [__BLK_TA_INSERT] = {{ "I", "insert" }, blk_log_generic },
1336 [__BLK_TA_SPLIT] = {{ "X", "split" }, blk_log_split },
1337 [__BLK_TA_BOUNCE] = {{ "B", "bounce" }, blk_log_generic },
1338 [__BLK_TA_REMAP] = {{ "A", "remap" }, blk_log_remap },
1339};
1340
1341static enum print_line_t print_one_line(struct trace_iterator *iter,
1342 bool classic)

--- 465 unchanged lines hidden ---
1341 [__BLK_TA_INSERT] = {{ "I", "insert" }, blk_log_generic },
1342 [__BLK_TA_SPLIT] = {{ "X", "split" }, blk_log_split },
1343 [__BLK_TA_BOUNCE] = {{ "B", "bounce" }, blk_log_generic },
1344 [__BLK_TA_REMAP] = {{ "A", "remap" }, blk_log_remap },
1345};
1346
1347static enum print_line_t print_one_line(struct trace_iterator *iter,
1348 bool classic)

--- 465 unchanged lines hidden ---