History

blkio: Changes to IO controller additional stats patches

that include some minor fixes and addresses all comments. Changelog: (most based on Vivek Goyal's comments) o renamed blkiocg_reset_write to blkiocg_reset_stats o more clarification in the documentation on io_service_time and io_wait_time o Initialize blkg->stats_lock o rename io_add_stat to blkio_add_stat and declare it static o use bool for direction and sync o derive direction and sync info from existing rq methods o use 12 for major:minor string length o define io_service_time better to cover the NCQ case o add a separate reset_stats interface o make the indexed stats a 2d array to simplify macro and function pointer code o blkio.time now exports in jiffies as before o Added stats description in patch description and Documentation/cgroup/blkio-controller.txt o Prefix all stats functions with blkio and make them static as applicable o replace IO_TYPE_MAX with IO_TYPE_TOTAL o Moved #define constant to top of blk-cgroup.c o Pass dev_t around instead of char * o Add note to documentation file about resetting stats o use BLK_CGROUP_MODULE in addition to BLK_CGROUP config option in #ifdef statements o Avoid struct request specific knowledge in blk-cgroup. blk-cgroup.h now has rq_direction() and rq_sync() functions which are used by CFQ and when using io-controller at a higher level, bio_* functions can be added.

Divyesh Shah committed 16 years ago

Commit 84c124d1 parent 31373d05 files · +198 −130Browse files

Showing the changes to include/linux/blkdev.h (1 of 5 files). Show all

Unified · Split

include/linux/blkdev.h+18−0
@@ -1209,9 +1209,27 @@ static inline void set_io_start_time_ns(struct request *req) · 1208 unmodified lines
12091209 {
12101210 req->io_start_time_ns = sched_clock();
12111211 }
1212+
1213+static inline uint64_t rq_start_time_ns(struct request *req)
1214+{
1215+ return req->start_time_ns;
1216+}
1217+
1218+static inline uint64_t rq_io_start_time_ns(struct request *req)
1219+{
1220+ return req->io_start_time_ns;
1221+}
12121222 #else
12131223 static inline void set_start_time_ns(struct request *req) {}
12141224 static inline void set_io_start_time_ns(struct request *req) {}
1225+static inline uint64_t rq_start_time_ns(struct request *req)
1226+{
1227+ return 0;
1228+}
1229+static inline uint64_t rq_io_start_time_ns(struct request *req)
1230+{
1231+ return 0;
1232+}
12151233 #endif
12161234
12171235 #define MODULE_ALIAS_BLOCKDEV(major,minor) \