blk-wbt: move private information from blk-wbt.h to blk-wbt.c
authorChristoph Hellwig <hch@lst.de>
Fri, 3 Feb 2023 15:03:51 +0000 (16:03 +0100)
committerJens Axboe <axboe@kernel.dk>
Fri, 3 Feb 2023 15:20:05 +0000 (08:20 -0700)
A large part of blk-wbt.h is only used in blk-wbt.c, so move it there.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Tejun Heo <tj@kernel.org>
Link: https://lore.kernel.org/r/20230203150400.3199230-11-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-settings.c
block/blk-sysfs.c
block/blk-wbt.c
block/blk-wbt.h

index 9c9713c9269cc426b8ca0970be43bc861cd77965..896b4654ab00fa700146678f2a0c1c4371f2ed7b 100644 (file)
@@ -16,6 +16,7 @@
 #include <linux/dma-mapping.h>
 
 #include "blk.h"
+#include "blk-rq-qos.h"
 #include "blk-wbt.h"
 
 void blk_queue_rq_timeout(struct request_queue *q, unsigned int timeout)
index c2adf640e5c816900505ae0e4e2953d9c670f8b4..d70ebecb534798d56e95a95bf59b0aed4d286353 100644 (file)
@@ -16,6 +16,7 @@
 #include "blk-mq.h"
 #include "blk-mq-debugfs.h"
 #include "blk-mq-sched.h"
+#include "blk-rq-qos.h"
 #include "blk-wbt.h"
 #include "blk-cgroup.h"
 #include "blk-throttle.h"
index 542271fa99e8f70b40f9684b4ead21b1de5a9097..58f41a98fda9115105871d502a201c97f627588e 100644 (file)
@@ -25,6 +25,7 @@
 #include <linux/backing-dev.h>
 #include <linux/swap.h>
 
+#include "blk-stat.h"
 #include "blk-wbt.h"
 #include "blk-rq-qos.h"
 #include "elevator.h"
 #define CREATE_TRACE_POINTS
 #include <trace/events/wbt.h>
 
+enum wbt_flags {
+       WBT_TRACKED             = 1,    /* write, tracked for throttling */
+       WBT_READ                = 2,    /* read */
+       WBT_KSWAPD              = 4,    /* write, from kswapd */
+       WBT_DISCARD             = 8,    /* discard */
+
+       WBT_NR_BITS             = 4,    /* number of bits */
+};
+
+enum {
+       WBT_RWQ_BG              = 0,
+       WBT_RWQ_KSWAPD,
+       WBT_RWQ_DISCARD,
+       WBT_NUM_RWQ,
+};
+
+/*
+ * If current state is WBT_STATE_ON/OFF_DEFAULT, it can be covered to any other
+ * state, if current state is WBT_STATE_ON/OFF_MANUAL, it can only be covered
+ * to WBT_STATE_OFF/ON_MANUAL.
+ */
+enum {
+       WBT_STATE_ON_DEFAULT    = 1,    /* on by default */
+       WBT_STATE_ON_MANUAL     = 2,    /* on manually by sysfs */
+       WBT_STATE_OFF_DEFAULT   = 3,    /* off by default */
+       WBT_STATE_OFF_MANUAL    = 4,    /* off manually by sysfs */
+};
+
+struct rq_wb {
+       /*
+        * Settings that govern how we throttle
+        */
+       unsigned int wb_background;             /* background writeback */
+       unsigned int wb_normal;                 /* normal writeback */
+
+       short enable_state;                     /* WBT_STATE_* */
+
+       /*
+        * Number of consecutive periods where we don't have enough
+        * information to make a firm scale up/down decision.
+        */
+       unsigned int unknown_cnt;
+
+       u64 win_nsec;                           /* default window size */
+       u64 cur_win_nsec;                       /* current window size */
+
+       struct blk_stat_callback *cb;
+
+       u64 sync_issue;
+       void *sync_cookie;
+
+       unsigned int wc;
+
+       unsigned long last_issue;               /* last non-throttled issue */
+       unsigned long last_comp;                /* last non-throttled comp */
+       unsigned long min_lat_nsec;
+       struct rq_qos rqos;
+       struct rq_wait rq_wait[WBT_NUM_RWQ];
+       struct rq_depth rq_depth;
+};
+
+static inline struct rq_wb *RQWB(struct rq_qos *rqos)
+{
+       return container_of(rqos, struct rq_wb, rqos);
+}
+
 static inline void wbt_clear_state(struct request *rq)
 {
        rq->wbt_flags = 0;
@@ -226,6 +293,16 @@ static u64 rwb_sync_issue_lat(struct rq_wb *rwb)
        return now - issue;
 }
 
+static inline unsigned int wbt_inflight(struct rq_wb *rwb)
+{
+       unsigned int i, ret = 0;
+
+       for (i = 0; i < WBT_NUM_RWQ; i++)
+               ret += atomic_read(&rwb->rq_wait[i].inflight);
+
+       return ret;
+}
+
 enum {
        LAT_OK = 1,
        LAT_UNKNOWN,
index b673da41a867d3f9772c37f530d7257f1b029167..ba6cca5849a65518993ae0d3ae1f24538800e0ef 100644 (file)
@@ -2,92 +2,6 @@
 #ifndef WB_THROTTLE_H
 #define WB_THROTTLE_H
 
-#include <linux/kernel.h>
-#include <linux/atomic.h>
-#include <linux/wait.h>
-#include <linux/timer.h>
-#include <linux/ktime.h>
-
-#include "blk-stat.h"
-#include "blk-rq-qos.h"
-
-enum wbt_flags {
-       WBT_TRACKED             = 1,    /* write, tracked for throttling */
-       WBT_READ                = 2,    /* read */
-       WBT_KSWAPD              = 4,    /* write, from kswapd */
-       WBT_DISCARD             = 8,    /* discard */
-
-       WBT_NR_BITS             = 4,    /* number of bits */
-};
-
-enum {
-       WBT_RWQ_BG              = 0,
-       WBT_RWQ_KSWAPD,
-       WBT_RWQ_DISCARD,
-       WBT_NUM_RWQ,
-};
-
-/*
- * If current state is WBT_STATE_ON/OFF_DEFAULT, it can be covered to any other
- * state, if current state is WBT_STATE_ON/OFF_MANUAL, it can only be covered
- * to WBT_STATE_OFF/ON_MANUAL.
- */
-enum {
-       WBT_STATE_ON_DEFAULT    = 1,    /* on by default */
-       WBT_STATE_ON_MANUAL     = 2,    /* on manually by sysfs */
-       WBT_STATE_OFF_DEFAULT   = 3,    /* off by default */
-       WBT_STATE_OFF_MANUAL    = 4,    /* off manually by sysfs */
-};
-
-struct rq_wb {
-       /*
-        * Settings that govern how we throttle
-        */
-       unsigned int wb_background;             /* background writeback */
-       unsigned int wb_normal;                 /* normal writeback */
-
-       short enable_state;                     /* WBT_STATE_* */
-
-       /*
-        * Number of consecutive periods where we don't have enough
-        * information to make a firm scale up/down decision.
-        */
-       unsigned int unknown_cnt;
-
-       u64 win_nsec;                           /* default window size */
-       u64 cur_win_nsec;                       /* current window size */
-
-       struct blk_stat_callback *cb;
-
-       u64 sync_issue;
-       void *sync_cookie;
-
-       unsigned int wc;
-
-       unsigned long last_issue;               /* last non-throttled issue */
-       unsigned long last_comp;                /* last non-throttled comp */
-       unsigned long min_lat_nsec;
-       struct rq_qos rqos;
-       struct rq_wait rq_wait[WBT_NUM_RWQ];
-       struct rq_depth rq_depth;
-};
-
-static inline struct rq_wb *RQWB(struct rq_qos *rqos)
-{
-       return container_of(rqos, struct rq_wb, rqos);
-}
-
-static inline unsigned int wbt_inflight(struct rq_wb *rwb)
-{
-       unsigned int i, ret = 0;
-
-       for (i = 0; i < WBT_NUM_RWQ; i++)
-               ret += atomic_read(&rwb->rq_wait[i].inflight);
-
-       return ret;
-}
-
-
 #ifdef CONFIG_BLK_WBT
 
 int wbt_init(struct gendisk *disk);