diff options
author | Wu Fengguang <fengguang.wu@intel.com> | 2010-08-30 01:33:20 -0400 |
---|---|---|
committer | Wu Fengguang <fengguang.wu@intel.com> | 2011-10-30 12:29:38 -0400 |
commit | ece13ac31bbe492d940ba0bc4ade2ae1521f46a5 (patch) | |
tree | 2bfddab0f62999bf595a72913b79cabafbad0e40 /mm | |
parent | b48c104d2211b0ac881a71f5f76a3816225f8111 (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')
-rw-r--r-- | mm/page-writeback.c | 22 |
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 | ||
1111 | pause: | 1122 | pause: |
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 | ||