[lkml]   [2010]   [Apr]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 5/6] futex: handle timeout inside adaptive lock spin
    Gregory Haskins wrote:
    >>>> On 4/7/2010 at 01:31 PM, in message <>,
    Darren Hart
    > <> wrote:
    >> Thomas Gleixner wrote:
    >>> On Mon, 5 Apr 2010, Darren Hart wrote:
    >>>> Signed-off-by: Darren Hart <>
    >>>> + if (timeout) {
    >>>> + now = ktime_get();
    >>> Hmm. Calling that in every iteration might hurt especially on non
    >>> TSC systems, but well...
    >> I haven't come across a better alternative since arming the timer
    >> setting TASK_INTERRUPTIBLE isn't appropriate.
    > Hey Darren,
    > I remember we tried something similar in early versions of the
    > adaptive locks and this was definitely bad. :(
    > It ended up putting so much contention on the xtime_lock (IIRC) that
    > it resulted in adaptive locks hurting overall performance verses not
    > using adaptive at all. Alternative mechanisms employed a hybrid where
    > the inner loops used a pseudo calibrated counter loop, and the outer
    > loop checks periodically against a real clock. It all plays into "you
    > are burning CPU cycles anyway, so might as well put them to use"
    > theory. Hacky, yes, but it did relieve the pressure on the time
    > subsystem locks and freed up a _lot_ of performance. Without this,
    > the concept of timeouts+adaptive was unworkable. I think Steven
    > ultimately rejected the timeout related patches outright when he
    > merged adaptive to -rt, but I think Sven pulled them into SLERT if you
    > would like a potential code reference to a working solution.

    Hi Greg,

    Thanks for the info! I haven't tested with timeouts yet as I'm still
    struggling to get decent performance out of just plain old adaptive
    right now. I'll keep that in mind when I get to that, and yeah, if the
    plan is to burn CPU cycles, might as well do something constructive :-)

    I do feel the timeouts are a necessary feature. Interruptibility may be
    as well, but I'm going to ignore it for the time being...


     \ /
      Last update: 2010-04-08 01:17    [W:0.021 / U:0.716 seconds]
    ©2003-2017 Jasper Spaans. hosted at Digital OceanAdvertise on this site