lkml.org 
[lkml]   [2007]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [RFC][PATCH -mm] Freezer: Handle uninterruptible tasks
    Date
    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
    freeze_processes().

    Greetings,
    Rafael


    --
    "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 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-07-07 22:41    [W:0.025 / U:29.516 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site