lkml.org 
[lkml]   [2010]   [Jun]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH] oom: Make coredump interruptible
    On 06/02, Roland McGrath wrote:
    >
    > > when select_bad_process() finds the task P to kill it can participate
    > > in the core dump (sleep in exit_mm), but we should somehow inform the
    > > thread which actually dumps the core: P->mm->core_state->dumper.
    >
    > Perhaps it should simply do that: if you would choose P to oom-kill, and
    > P->mm->core_state!=NULL, then choose P->mm->core_state->dumper instead.

    ... to set TIF_MEMDIE which should be checked in elf_core_dump().

    Probably yes.

    > > Well, we can use TIF_MEMDIE if we chose the right thread, I think.
    > > But perhaps mm->flags |= MMF_OOM is better, it can have other user.
    > > I dunno.
    >
    > This is all the quick hack before get around to just making core dumping
    > fully-interruptible, no? So we should go with whatever is the simplest
    > change now.

    Yes.

    > Perhaps this belongs in another thread as you suggested. But I wonder what
    > we might get just from s/TASK_UNINTERRUPTIBLE/TASK_KILLABLE/ in exit_mm.

    Oh. This needs more thinking. Definitely the task sleeping in exit_mm()
    must not exit until core_state->dumper->thread returns from do_coredump().
    If nothing else, the dumper can use its task_struct and it relies on
    the stable core_thread->next list. And right now TASK_KILLABLE can't
    work anyway, it is possible that fatal_signal_pending() is true.

    But perhaps we can do something later. Assuming that do_coredump() is
    interruptible, TASK_KILLABLE can make the difference only if the dumper
    belongs to another thread-group.

    Oleg.



    \
     
     \ /
      Last update: 2010-06-02 22:43    [W:4.070 / U:0.852 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site