lkml.org 
[lkml]   [2007]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    SubjectRe: [PATCH] nfs: fix congestion control -v4
    From
    Date
    On Thu, 2007-01-25 at 21:02 -0800, Andrew Morton wrote:
    > On Thu, 25 Jan 2007 16:32:28 +0100
    > Peter Zijlstra <a.p.zijlstra@chello.nl> wrote:
    >
    > > +long congestion_wait_interruptible(int rw, long timeout)
    > > +{
    > > + long ret;
    > > + DEFINE_WAIT(wait);
    > > + wait_queue_head_t *wqh = &congestion_wqh[rw];
    > > +
    > > + prepare_to_wait(wqh, &wait, TASK_INTERRUPTIBLE);
    > > + if (signal_pending(current))
    > > + ret = -ERESTARTSYS;
    > > + else
    > > + ret = io_schedule_timeout(timeout);
    > > + finish_wait(wqh, &wait);
    > > + return ret;
    > > +}
    > > +EXPORT_SYMBOL(congestion_wait_interruptible);
    >
    > I think this can share code with congestion_wait()?
    >
    > static long __congestion_wait(int rw, long timeout, int state)
    > {
    > long ret;
    > DEFINE_WAIT(wait);
    > wait_queue_head_t *wqh = &congestion_wqh[rw];
    >
    > prepare_to_wait(wqh, &wait, state);
    > ret = io_schedule_timeout(timeout);
    > finish_wait(wqh, &wait);
    > return ret;
    > }
    >
    > long congestion_wait_interruptible(int rw, long timeout)
    > {
    > long ret = __congestion_wait(rw, timeout);
    >
    > if (signal_pending(current))
    > ret = -ERESTARTSYS;
    > return ret;
    > }
    >
    > it's only infinitesimally less efficient..

    All the other _interruptible functions check signal_pending before
    calling schedule. Which seems to make sense since its called in a loop
    anyway, and if the loop condition turns false when interrupted you might
    as well just finish up instead of bailing out.

    However if you'd rather see your version, who am I to object ;-)

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-01-26 09:03    [W:5.544 / U:0.456 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site