Re: [patch] proposed fix for ptrace() SMP race

Andrea Arcangeli (andrea@suse.de)
Sat, 8 Sep 2001 19:11:08 +0200


On Fri, Sep 07, 2001 at 08:35:31AM -0700, David Mosberger wrote:
> Also, other signals will still wake up the task. Yes, it won't get
> very far as do_signal() will notify the parent instead, but still, the
> task will run and that could be enough to create some race condition.

this is the real issue, agreed.

However still I don't like the cpus_allowed racy approch. I either
prefer to force the deschedule with a new ptrace bitflag with new hooks
in the scheduler or with a blocker (delayer) to the signals again with a
new ptrace bitflag but in this case with hooks in the signal code. I
think putting the hooks in the signal code is better.

BTW, checking this stuff I found two bugs, one is the check for
cpus_allowed before calling reschedule_idle, such check has to be
removed, then it also seems the signals seems to wakeup the task two
times unless I've overlooked something.

You may want to make a new patch at the light of those considerations
otherwise I'll put this in my todo list once more important things are
solved.

Andrea
-
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/