State clearly that bw_time_stamp is measured in jiffies. Rename other
foo_stamp fields to reflect that they are in units of number-of-pages.

Reported-by: Andrew Morton <a...@linux-foundation.org>
Signed-off-by: Maxim Patlasov <mpatla...@parallels.com>
---
 include/linux/backing-dev.h |    7 ++++---
 mm/backing-dev.c            |    2 +-
 mm/page-writeback.c         |    8 ++++----
 3 files changed, 9 insertions(+), 8 deletions(-)

diff --git a/include/linux/backing-dev.h b/include/linux/backing-dev.h
index c388155..ee7eb1a 100644
--- a/include/linux/backing-dev.h
+++ b/include/linux/backing-dev.h
@@ -73,9 +73,10 @@ struct backing_dev_info {
 
        struct percpu_counter bdi_stat[NR_BDI_STAT_ITEMS];
 
-       unsigned long bw_time_stamp;    /* last time write bw is updated */
-       unsigned long dirtied_stamp;
-       unsigned long written_stamp;    /* pages written at bw_time_stamp */
+       unsigned long bw_time_stamp;    /* last time (in jiffies) write bw
+                                        * is updated */
+       unsigned long dirtied_nr_stamp;
+       unsigned long written_nr_stamp; /* pages written at bw_time_stamp */
        unsigned long write_bandwidth;  /* the estimated write bandwidth */
        unsigned long avg_write_bandwidth; /* further smoothed write bw */
 
diff --git a/mm/backing-dev.c b/mm/backing-dev.c
index 5025174..82efe7f 100644
--- a/mm/backing-dev.c
+++ b/mm/backing-dev.c
@@ -454,7 +454,7 @@ int bdi_init(struct backing_dev_info *bdi)
        bdi->dirty_exceeded = 0;
 
        bdi->bw_time_stamp = jiffies;
-       bdi->written_stamp = 0;
+       bdi->written_nr_stamp = 0;
 
        bdi->balanced_dirty_ratelimit = INIT_BW;
        bdi->dirty_ratelimit = INIT_BW;
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index 4514ad7..088a8db 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -799,7 +799,7 @@ static void bdi_update_write_bandwidth(struct 
backing_dev_info *bdi,
         * write_bandwidth = ---------------------------------------------------
         *                                          period
         */
-       bw = written - bdi->written_stamp;
+       bw = written - bdi->written_nr_stamp;
        bw *= HZ;
        if (unlikely(elapsed > period)) {
                do_div(bw, elapsed);
@@ -910,7 +910,7 @@ static void bdi_update_dirty_ratelimit(struct 
backing_dev_info *bdi,
         * The dirty rate will match the writeout rate in long term, except
         * when dirty pages are truncated by userspace or re-dirtied by FS.
         */
-       dirty_rate = (dirtied - bdi->dirtied_stamp) * HZ / elapsed;
+       dirty_rate = (dirtied - bdi->dirtied_nr_stamp) * HZ / elapsed;
 
        pos_ratio = bdi_position_ratio(bdi, thresh, bg_thresh, dirty,
                                       bdi_thresh, bdi_dirty);
@@ -1066,8 +1066,8 @@ void __bdi_update_bandwidth(struct backing_dev_info *bdi,
        bdi_update_write_bandwidth(bdi, elapsed, written);
 
 snapshot:
-       bdi->dirtied_stamp = dirtied;
-       bdi->written_stamp = written;
+       bdi->dirtied_nr_stamp = dirtied;
+       bdi->written_nr_stamp = written;
        bdi->bw_time_stamp = now;
 }
 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to