| Subject | Re: [PATCH 2/5] writeback: dirty position control | From | Peter Zijlstra <> | Date | Mon, 08 Aug 2011 15:46:33 +0200 |
| |
On Sat, 2011-08-06 at 16:44 +0800, Wu Fengguang wrote: > +static unsigned long bdi_position_ratio(struct backing_dev_info *bdi, > + unsigned long thresh, > + unsigned long dirty, > + unsigned long bdi_thresh, > + unsigned long bdi_dirty) > +{ > + unsigned long limit = hard_dirty_limit(thresh); > + unsigned long origin; > + unsigned long goal; > + unsigned long long span; > + unsigned long long pos_ratio; /* for scaling up/down the rate limit */ > + > + if (unlikely(dirty >= limit)) > + return 0; > + > + /* > + * global setpoint > + */ > + goal = thresh - thresh / DIRTY_SCOPE; > + origin = 4 * thresh; > + > + if (unlikely(origin < limit && dirty > (goal + origin) / 2)) { > + origin = limit; /* auxiliary control line */ > + goal = (goal + origin) / 2; > + pos_ratio >>= 1;
use before init?
|