Messages in this thread |  | | Date | Mon, 10 Sep 2001 19:54:51 +0200 | From | Manfred Spraul <> | Subject | Re: [patch] proposed fix for ptrace() SMP race |
| |
> > BTW, checking this stuff I found two bugs, one is the check for > cpus_allowed before calling reschedule_idle,
The call in linux/kernel.c, around line 348? 348 if (!synchronous || !(p->cpus_allowed & (1 << smp_processor_id()))) 349 reschedule_idle(p);
The test was added for wake_up_{,interruptible_}sync(): if the woken up task is not permitted to run on the current cpu, reschedule() is necessary, otherwise skip the reschedule. If ptrace sets cpus_allowed to 0 between wake_up_sync() and schedule(), the reschedule is lost. But always rescheduling would defeat the purpose of wake_up_sync().
-- Manfred - 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/
|  |