[lkml]   [2007]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [RFC][PATCH -mm] Freezer: Handle uninterruptible tasks
    On Saturday, 7 July 2007 13:31, Pavel Machek wrote:
    > Hi!
    > > > I don't think we can do that. I suspect rename looks like:
    > > >
    > > > write directory entry in source
    > > > A) (uninterruptible wait for write)
    > > > write directory entry in destination
    > > > (uninterruptible wait for write)
    > > > write something else
    > > >
    > > > If we freeze some task in place "A)", we'll write to the disk when the
    > > > directory write is finished :-(.
    > >
    > > Renaming is a single syscall, so won't the process get frozen when the syscall
    > > finishes?
    > It would be frozen when syscall finishes. But if we freeze it at A)
    > point, we have a problem.

    With this patch, we don't freeze it. :-)

    We do something like "send a freeze request to this task, but don't care if it
    doesn't freeze".

    Now, IMHO, the correctness here is the question of for how long a task can be
    in TASK_UNINTERRUPTIBLE it it's not stuck (eg. the resource needed is gone
    indefinitely, like in NFS) and I think that's not very long.

    For example, if the tasks sleeps on a mutex, then it waits for another task to
    release the mutex (interrupt handlers don't use mutexes) and I don't know of
    any realistic scenario in which it can last in that state throughout


    "Premature optimization is the root of all evil." - Donald Knuth
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2007-07-07 22:41    [W:0.021 / U:8.876 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site