Messages in this thread | | | Date | Thu, 1 Jul 2010 16:08:36 +0200 | From | Oleg Nesterov <> | Subject | Re: A possible sys_wait* bug |
| |
On 07/01, KOSAKI Motohiro wrote: > > > Basically, it is possibly for readers to continuously hold > > tasklist_lock
Yes, this is the known problem.
Perhaps do_wait() is not the worst example. sys_kill(-1), sys_ioprio_set() scan the global list.
> > I think the most direct approach to the problem is to have the > > readers-writer locks be writer biased (i.e. as soon as a writer > > contends, we do not permit any new readers).
I thought about this too, but this is deadlockable. At least, read_lock(tasklist) should nest, and it should work in irq context.
We need the more fine-grained locking, but it is not clear to me what should be done in the long term. Afaics, this is very nontrivial.
Oleg.
| |