|
@@ -137,3 +137,53 @@ struct cfq_queue {
|
|
|
|
|
|
/* io prio of this group */
|
|
/* io prio of this group */
|
|
unsigned short ioprio, org_ioprio;
|
|
unsigned short ioprio, org_ioprio;
|
|
|
|
+ unsigned short ioprio_class;
|
|
|
|
+
|
|
|
|
+ pid_t pid;
|
|
|
|
+
|
|
|
|
+ u32 seek_history;
|
|
|
|
+ sector_t last_request_pos;
|
|
|
|
+
|
|
|
|
+ struct cfq_rb_root *service_tree;
|
|
|
|
+ struct cfq_queue *new_cfqq;
|
|
|
|
+ struct cfq_group *cfqg;
|
|
|
|
+ /* Number of sectors dispatched from queue in single dispatch round */
|
|
|
|
+ unsigned long nr_sectors;
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * First index in the service_trees.
|
|
|
|
+ * IDLE is handled separately, so it has negative index
|
|
|
|
+ */
|
|
|
|
+enum wl_prio_t {
|
|
|
|
+ BE_WORKLOAD = 0,
|
|
|
|
+ RT_WORKLOAD = 1,
|
|
|
|
+ IDLE_WORKLOAD = 2,
|
|
|
|
+ CFQ_PRIO_NR,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+/*
|
|
|
|
+ * Second index in the service_trees.
|
|
|
|
+ */
|
|
|
|
+enum wl_type_t {
|
|
|
|
+ ASYNC_WORKLOAD = 0,
|
|
|
|
+ SYNC_NOIDLE_WORKLOAD = 1,
|
|
|
|
+ SYNC_WORKLOAD = 2
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+struct cfqg_stats {
|
|
|
|
+#ifdef CONFIG_CFQ_GROUP_IOSCHED
|
|
|
|
+ /* total bytes transferred */
|
|
|
|
+ struct blkg_rwstat service_bytes;
|
|
|
|
+ /* total IOs serviced, post merge */
|
|
|
|
+ struct blkg_rwstat serviced;
|
|
|
|
+ /* number of ios merged */
|
|
|
|
+ struct blkg_rwstat merged;
|
|
|
|
+ /* total time spent on device in ns, may not be accurate w/ queueing */
|
|
|
|
+ struct blkg_rwstat service_time;
|
|
|
|
+ /* total time spent waiting in scheduler queue in ns */
|
|
|
|
+ struct blkg_rwstat wait_time;
|
|
|
|
+ /* number of IOs queued up */
|
|
|
|
+ struct blkg_rwstat queued;
|
|
|
|
+ /* total sectors transferred */
|
|
|
|
+ struct blkg_stat sectors;
|