[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080304155113.GC564@tv-sign.ru>
Date: Tue, 4 Mar 2008 18:51:13 +0300
From: Oleg Nesterov <oleg@...sign.ru>
To: Roland McGrath <roland@...hat.com>
Cc: Andrew Morton <akpm@...ux-foundation.org>,
Alan Cox <alan@...hat.com>,
Davide Libenzi <davidel@...ilserver.org>,
"Eric W. Biederman" <ebiederm@...ssion.com>,
Ingo Molnar <mingo@...e.hu>,
Linus Torvalds <torvalds@...ux-foundation.org>,
linux-kernel@...r.kernel.org
Subject: Re: [PATCH 0/3] orphaned pgrp fixes
On 03/04, Roland McGrath wrote:
>
> [... big snip...]
Thanks Roland. I need a time to understand your explanation (I even printed
it to read in metro ;). I'll return tomorrow.
A quick note right now:
> static int group_is_really_stopped(struct task_struct *p)
> {
> int ret = 0;
> spin_lock(&p->sighand->siglock);
> ret = (p->signal->flags & (SIGNAL_STOP_STOPPING|SIGNAL_STOP_STOPPED)) ||
> p->signal->group_stop_count > 0;
> spin_unlock(&p->sighand->siglock);
> return ret;
> }
I thought abot something like that too.
However, SIGNAL_STOP_STOPPED doesn't relaible with ptrace. I mean, ptracer
doesn't clear SIGNAL_STOP_STOPPED. This is btw one of the problems which
complicates fixing do_wait(WSTOPPED).
As for SIGNAL_STOP_STOPPING... I am dreaming to find the way to eliminate
this lock-drop in get_signal_to_deliver(). Not sure this is possible, but
it is so nasty. For example, SIGNAL_STOP_DEQUEUED is racy, and I don't know
how to fix this. The patch we discussed some time ago doesn't really work
because dequeue_signal() drops the lock too. The latter is fixable afaics,
but needs very ugly changes.
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