lkml.org 
[lkml]   [2011]   [Aug]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 06/16] freezer: make exiting tasks properly unfreezable
    On 08/23, Tejun Heo wrote:
    >
    > Hello,
    >
    > On Tue, Aug 23, 2011 at 05:52:21PM +0200, Oleg Nesterov wrote:
    > > > @@ -915,6 +913,12 @@ NORET_TYPE void do_exit(long code)
    > > >
    > > > ptrace_event(PTRACE_EVENT_EXIT, code);
    > > >
    > > > + /*
    > > > + * With ptrace notification done, there's no point in freezing from
    > > > + * here on. Disallow freezing.
    > > > + */
    > > > + current->flags |= PF_NOFREEZE;
    > >
    > > OK, but what PF_NOFREEZE actually means?
    > >
    > > Apart from "dont try to freeze" it means "no need to freeze", yes?
    >
    > Yes.
    >
    > > IOW, try_to_freeze_tasks() can succeed even if we have a lot of
    > > exitinig task which can make some activity, say, disk i/o. Is this
    > > correct?
    >
    > Hmmm... can it cause disk IOs after that point? I skimmed through and
    > couldn't spot one

    I am not sure. But, say, exit_files(). We can't know what f_op->flush()
    f_op->release() can do in general. Even without i/o the exiting task can
    do a lot of different things.

    > (the original code made simliar assumption albeit a
    > bit later).

    Yes, and this looks "safer". I think exit_mm()->clear_freeze_flag() was
    simply unneeded, but exit_state != 0 in freezable() looks understandable.
    do_each_thread() (in general) can't see the threads with exit_state != 0
    anyway, but we should skip zombies.


    Let me repeat, I do not know what the callers of try_to_freeze_tasks()
    actually need, probably this is fine.

    Oleg.



    \
     
     \ /
      Last update: 2011-08-24 16:19    [W:0.022 / U:0.528 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site