aboutsummaryrefslogtreecommitdiffstats
path: root/mm/page-writeback.c
diff options
context:
space:
mode:
authorWu Fengguang <fengguang.wu@intel.com>2010-08-30 01:33:20 -0400
committerWu Fengguang <fengguang.wu@intel.com>2011-10-30 12:29:38 -0400
commitece13ac31bbe492d940ba0bc4ade2ae1521f46a5 (patch)
tree2bfddab0f62999bf595a72913b79cabafbad0e40 /mm/page-writeback.c
parentb48c104d2211b0ac881a71f5f76a3816225f8111 (diff)
writeback: trace event balance_dirty_pages
Useful for analyzing the dynamics of the throttling algorithms and debugging user reported problems. Signed-off-by: Wu Fengguang <fengguang.wu@intel.com>
Diffstat (limited to 'mm/page-writeback.c')
-rw-r--r--mm/page-writeback.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/mm/page-writeback.c b/mm/page-writeback.c
index e3c2d8bf87bb..45d36f7dc169 100644
--- a/mm/page-writeback.c
+++ b/mm/page-writeback.c
@@ -1103,12 +1103,34 @@ static void balance_dirty_pages(struct address_space *mapping,
1103 pos_ratio >> RATELIMIT_CALC_SHIFT; 1103 pos_ratio >> RATELIMIT_CALC_SHIFT;
1104 pause = (HZ * pages_dirtied) / (task_ratelimit | 1); 1104 pause = (HZ * pages_dirtied) / (task_ratelimit | 1);
1105 if (unlikely(pause <= 0)) { 1105 if (unlikely(pause <= 0)) {
1106 trace_balance_dirty_pages(bdi,
1107 dirty_thresh,
1108 background_thresh,
1109 nr_dirty,
1110 bdi_thresh,
1111 bdi_dirty,
1112 dirty_ratelimit,
1113 task_ratelimit,
1114 pages_dirtied,
1115 pause,
1116 start_time);
1106 pause = 1; /* avoid resetting nr_dirtied_pause below */ 1117 pause = 1; /* avoid resetting nr_dirtied_pause below */
1107 break; 1118 break;
1108 } 1119 }
1109 pause = min(pause, max_pause); 1120 pause = min(pause, max_pause);
1110 1121
1111pause: 1122pause:
1123 trace_balance_dirty_pages(bdi,
1124 dirty_thresh,
1125 background_thresh,
1126 nr_dirty,
1127 bdi_thresh,
1128 bdi_dirty,
1129 dirty_ratelimit,
1130 task_ratelimit,
1131 pages_dirtied,
1132 pause,
1133 start_time);
1112 __set_current_state(TASK_UNINTERRUPTIBLE); 1134 __set_current_state(TASK_UNINTERRUPTIBLE);
1113 io_schedule_timeout(pause); 1135 io_schedule_timeout(pause);
1114 1136