On Mon, Feb 28, 2011 at 03:52:53PM -0800, Greg Thelen wrote: > On Sun, Feb 27, 2011 at 8:07 AM, Minchan Kim <minchan.kim@xxxxxxxxx> wrote: > > On Fri, Feb 25, 2011 at 01:35:54PM -0800, Greg Thelen wrote: > >> Convert two balance_dirty_pages() page counter variables (nr_reclaimable > >> and nr_writeback) from 'long' to 'unsigned long'. > >> > >> These two variables are used to store results from global_page_state(). > >> global_page_state() returns unsigned long and carefully sums per-cpu > >> counters explicitly avoiding returning a negative value. > >> > >> Signed-off-by: Greg Thelen <gthelen@xxxxxxxxxx> > > Reviewed-by: Minchan Kim <minchan.kim@xxxxxxxxx> > > > >> --- > >> Changelog since v4: > >> - Created this patch for clarity. Previously this patch was integrated within > >> the "writeback: create dirty_info structure" patch. > >> > >> mm/page-writeback.c | 6 ++++-- > >> 1 files changed, 4 insertions(+), 2 deletions(-) > >> > >> diff --git a/mm/page-writeback.c b/mm/page-writeback.c > >> index 2cb01f6..4408e54 100644 > >> --- a/mm/page-writeback.c > >> +++ b/mm/page-writeback.c > >> @@ -478,8 +478,10 @@ unsigned long bdi_dirty_limit(struct backing_dev_info *bdi, unsigned long dirty) > >> static void balance_dirty_pages(struct address_space *mapping, > >> unsigned long write_chunk) > >> { > >> - long nr_reclaimable, bdi_nr_reclaimable; > >> - long nr_writeback, bdi_nr_writeback; > >> + unsigned long nr_reclaimable; > >> + long bdi_nr_reclaimable; > >> + unsigned long nr_writeback; > >> + long bdi_nr_writeback; > >> unsigned long background_thresh; > >> unsigned long dirty_thresh; > >> unsigned long bdi_thresh; > >> -- > >> 1.7.3.1 > >> > > bdi_nr_[reclaimable|writeback] can return negative value? > > When I just look through bdi_stat_sum, it uses *percpu_counter_sum_positive*. > > So I guess it always returns positive value. > > If it is right, could you change it, too? > > Yes, I think we can also change bdi_nr_[reclaimable|writeback] to unsigned long. > > bdi_stat_sum() and bdi_stat() both call percpu_counter_sum_positive(), > which return a positive number. bdi_stat[_sum]() return s64. Should > we also change bdi_stat[_sum]() to return unsigned long rather than > s64? I would like the return value type to match the type of the > corresponding local variables in balance_dirty_pages(). All current > callers appear to expect bdi_stat[_sum]() to return unsigned long. Please, clear them, too. But this patch could be orthogonal with your series so it's up to you. :) > > > -- > > Kind regards, > > Minchan Kim > > -- Kind regards, Minchan Kim -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxxx For more info on Linux MM, see: http://www.linux-mm.org/ . Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/ Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>