Re: Rik's bad process killer - how to kill _IT_?

From: Andrea Arcangeli (andrea@suse.de)
Date: Wed Nov 22 2000 - 10:44:43 EST


On Wed, Nov 22, 2000 at 12:07:48PM -0200, Rik van Riel wrote:
> judging from your lack of error messages you're running
> 2.2 [..]

Recent 2.2.x:

        if (error_code & 4)
        {
                if (tsk->oom_kill_try++ > 10 ||
                    !((regs->eflags >> 12) & 3))
                {
                        printk("VM: killing process %s\n", tsk->comm);
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                        do_exit(SIGKILL);
                }
                else
                {
                        /*
                         * The task is running with privilegies and so we
                         * trust it and we give it a chance to die gracefully.
                         */
                        printk("VM: terminating process %s\n", tsk->comm);
                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                        force_sig(SIGTERM, current);
                        if (tsk->oom_kill_try > 1)
                        {
                                tsk->policy |= SCHED_YIELD;
                                schedule();
                        }
                        return;
                }
        }

Older 2.2.x:

        void oom(struct task_struct * task)
        {
                       printk("\nOut of memory for %s.\n", task->comm);
                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                force_sig(SIGKILL, task);
        }

In short if he doesn't get any message from the kernel (and the machine doesn't
soft-lockup :) it's not an oom issue.

Andrea
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Thu Nov 23 2000 - 21:00:23 EST