[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070424202727.GB5042@tv-sign.ru>
Date: Wed, 25 Apr 2007 00:27:27 +0400
From: Oleg Nesterov <oleg@...sign.ru>
To: "Eric W. Biederman" <ebiederm@...ssion.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Davide Libenzi <davidel@...ilserver.org>,
Ingo Molnar <mingo@...e.hu>,
Linus Torvalds <torvalds@...ux-foundation.org>,
"Rafael J. Wysocki" <rjw@...k.pl>,
Roland McGrath <roland@...hat.com>,
Rusty Russell <rusty@...tcorp.com.au>,
linux-kernel@...r.kernel.org, linux-arch@...r.kernel.org
Subject: Re: [PATCH] kthread: Enhance kthread_stop to abort interruptible sleeps
On 04/24, Eric W. Biederman wrote:
>
> I don't know if this is the problem but it certainly needs to be fixed.
I guess you will re-submit these patches soon. May I suggest you to put
this
> + spin_lock_irq(&tsk->sighand->siglock);
> + signal_wake_up(tsk, 1);
> + spin_unlock_irq(&tsk->sighand->siglock);
and this
> fastcall void recalc_sigpending_tsk(struct task_struct *t)
> {
> if (t->signal->group_stop_count > 0 ||
> - (freezing(t)) ||
> + (freezing(t)) || __kthread_should_stop(t) ||
into the separate patch?
Perhaps I am too paranoid, and most probably this change is good, but
still I'm afraid this very subtle change may break things. In that case
it would be easy to revert that only part (for example for the testing
purposes).
Consider,
current->flags |= PF_NOFREEZE;
while (!kthread_should_stop()) {
begin_something();
// I am a kernel thread, all signals are ignored.
// I don't want to contribute to loadavg, so I am
// waiting for the absoulutely critical event in
// TASK__INTERRUPTIBLE state.
if (wait_event_interruptible(condition))
panic("Impossible!");
commit_something();
}
Oleg.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists