lkml.org 
[lkml]   [2003]   [Feb]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    SubjectRe: doublefault debugging (was Re: Linux v2.5.62 --- spontaneous reboots)

    On Thu, 20 Feb 2003, Linus Torvalds wrote:

    > > ie. something like:
    >
    > Well, please remove the double test for task inequality.

    ok.

    > I like the patch conceptually, HOWEVER, I'm not sure it's correct. The
    > thing is, moving the wait_task_inactive() to __put_task_struct() means
    > that we will be doing the "release_task()" teardown while the task is
    > still potentially active on another CPU.
    >
    > In particular, we'll be freeing the security stuff and the signals while
    > the process may still be active in the scheduler on another CPU. This
    > can be dangerous, ie doing things like calling "free_uid()" on a process
    > that is still running means that suddenly you have issues like not being
    > able to trust "current->user" from interrupts. We may not care right
    > now, but it's still wrong (imagine us doing per-user time accounting -
    > which makes a _lot_ of sense).

    well, we can do the wait_task_inactive() in both cases - in
    release_task(), and in __put_task_struct(). [in the release_task() path
    that will just be a nop]. This further simplifies the patch.

    Ingo

    --- kernel/fork.c.orig
    +++ kernel/fork.c
    @@ -75,6 +75,7 @@
    void __put_task_struct(struct task_struct *tsk)
    {
    if (tsk != current) {
    + wait_task_inactive(tsk);
    free_thread_info(tsk->thread_info);
    kmem_cache_free(task_struct_cachep,tsk);
    } else {
    -
    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: 2005-03-22 13:33    [W:0.027 / U:0.148 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site