lkml.org 
[lkml]   [2011]   [Aug]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: [PATCH 2/5] writeback: dirty position control
    On Mon, Aug 08, 2011 at 09:46:33PM +0800, Peter Zijlstra wrote:
    > 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?

    Yeah it's embarrassing, I find this bug all the way back to the initial version...

    It's actually dead code because (origin < limit) should never happen.
    I feel so good being able to drop 5 more lines of code :)

    Thanks,
    Fengguang
    ---

    --- linux-next.orig/mm/page-writeback.c 2011-08-08 21:56:11.000000000 +0800
    +++ linux-next/mm/page-writeback.c 2011-08-08 22:04:48.000000000 +0800
    @@ -538,11 +538,6 @@ static unsigned long bdi_position_ratio(
    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;
    - }
    pos_ratio = origin - dirty;
    pos_ratio <<= BANDWIDTH_CALC_SHIFT;
    do_div(pos_ratio, origin - goal + 1);

    \
     
     \ /
      Last update: 2011-08-08 16:13    [W:0.023 / U:0.508 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site