summaryrefslogtreecommitdiff
path: root/btt/inlines.h
diff options
context:
space:
mode:
Diffstat (limited to 'btt/inlines.h')
-rw-r--r--btt/inlines.h82
1 files changed, 68 insertions, 14 deletions
diff --git a/btt/inlines.h b/btt/inlines.h
index 43dada0..875b75b 100644
--- a/btt/inlines.h
+++ b/btt/inlines.h
@@ -19,6 +19,12 @@
*
*/
+static inline int remapper_dev(__u32 dev)
+{
+ int mjr = MAJOR(dev);
+ return mjr == 9 || mjr == 253 || mjr == 254;
+}
+
static inline void region_init(struct region_info *reg)
{
INIT_LIST_HEAD(&reg->qranges);
@@ -118,7 +124,10 @@ static inline void update_lq(__u64 *last_q, struct avg_info *avg, __u64 time)
static inline void dip_update_q(struct d_info *dip, struct io *iop)
{
- update_lq(&dip->last_q, &dip->avgs.q2q, iop->t.time);
+ if (remapper_dev(dip->device))
+ update_lq(&dip->last_q, &dip->avgs.q2q_dm, iop->t.time);
+ else
+ update_lq(&dip->last_q, &dip->avgs.q2q, iop->t.time);
update_qregion(&dip->regions, iop->t.time);
}
@@ -228,7 +237,10 @@ static inline void update_q2c(struct io *iop, __u64 c_time)
if (per_io_ofp)
fprintf(per_io_ofp, "q2c %13.9f\n", BIT_TIME(c_time));
# endif
- UPDATE_AVGS(q2c, iop, iop->pip, c_time);
+ if (remapper_dev(iop->dip->device))
+ UPDATE_AVGS(q2c_dm, iop, iop->pip, c_time);
+ else
+ UPDATE_AVGS(q2c, iop, iop->pip, c_time);
}
static inline void update_q2a(struct io *iop, __u64 a_time)
@@ -237,22 +249,55 @@ static inline void update_q2a(struct io *iop, __u64 a_time)
if (per_io_ofp)
fprintf(per_io_ofp, "q2a %13.9f\n", BIT_TIME(a_time));
# endif
- UPDATE_AVGS(q2a, iop, iop->pip, a_time);
+ if (remapper_dev(iop->dip->device))
+ UPDATE_AVGS(q2a_dm, iop, iop->pip, a_time);
+ else
+ UPDATE_AVGS(q2a, iop, iop->pip, a_time);
+}
+
+static inline void update_q2g(struct io *iop, __u64 g_time)
+{
+# if defined(DEBUG)
+ if (per_io_ofp)
+ fprintf(per_io_ofp, "q2g %13.9f\n", BIT_TIME(g_time));
+# endif
+
+ UPDATE_AVGS(q2g, iop, iop->pip, g_time);
+}
+
+static inline void unupdate_q2g(struct io *iop, __u64 g_time)
+{
+ UNUPDATE_AVGS(q2g, iop, iop->pip, g_time);
+}
+
+static inline void update_g2i(struct io *iop, __u64 i_time)
+{
+# if defined(DEBUG)
+ if (per_io_ofp)
+ fprintf(per_io_ofp, "g2i %13.9f\n", BIT_TIME(i_time));
+# endif
+
+ UPDATE_AVGS(g2i, iop, iop->pip, i_time);
+}
+
+static inline void unupdate_g2i(struct io *iop, __u64 i_time)
+{
+ UNUPDATE_AVGS(g2i, iop, iop->pip, i_time);
}
-static inline void update_q2i(struct io *iop, __u64 i_time)
+static inline void update_q2m(struct io *iop, __u64 m_time)
{
# if defined(DEBUG)
if (per_io_ofp)
- fprintf(per_io_ofp, "q2i %13.9f\n", BIT_TIME(i_time));
+ fprintf(per_io_ofp, "q2m %13.9f\n", BIT_TIME(m_time));
# endif
- UPDATE_AVGS(q2i, iop, iop->pip, i_time);
+ UPDATE_AVGS(q2m, iop, iop->pip, m_time);
}
-static inline void unupdate_q2i(struct io *iop, __u64 i_time)
+static inline void unupdate_q2m(struct io *iop, __u64 m_time)
{
- UNUPDATE_AVGS(q2i, iop, iop->pip, i_time);
+ UNUPDATE_AVGS(q2m, iop, iop->pip, m_time);
}
static inline void update_i2d(struct io *iop, __u64 d_time)
@@ -270,6 +315,21 @@ static inline void unupdate_i2d(struct io *iop, __u64 d_time)
UNUPDATE_AVGS(i2d, iop, iop->pip, d_time);
}
+static inline void update_m2d(struct io *iop, __u64 d_time)
+{
+# if defined(DEBUG)
+ if (per_io_ofp)
+ fprintf(per_io_ofp, "m2d %13.9f\n", BIT_TIME(d_time));
+# endif
+
+ UPDATE_AVGS(m2d, iop, iop->pip, d_time);
+}
+
+static inline void unupdate_m2d(struct io *iop, __u64 d_time)
+{
+ UNUPDATE_AVGS(m2d, iop, iop->pip, d_time);
+}
+
static inline void update_d2c(struct io *iop, __u64 c_time)
{
# if defined(DEBUG)
@@ -329,12 +389,6 @@ static inline __u64 tdelta(__u64 from, __u64 to)
return (from < to) ? (to - from) : 1;
}
-static inline int remapper_dev(__u32 dev)
-{
- int mjr = MAJOR(dev);
- return mjr == 9 || mjr == 253 || mjr == 254;
-}
-
static inline int type2c(enum iop_type type)
{
int c;