Oh, yes, I have spent hours and hours trying to untangle tty locking
and it isn't simple.
>
> it has to be fixed for 2.6, no argument.
>
> I took a look at it. I think the easiest strategy would be:
>
> - Make sure all the process context code holds BKL
> (most of it does, but not all - sometimes it is buggy like in
> disassociate_tty)
> I have some patches for that for tty_io.c at least
What does that BKL protect ? I can't seem to ever figure our if
all the races are plugged or not.
>
> The local_irq_save in there are buggy, they need to take
> a lock.
Also a locking model w.r.t. the serial drivers ?
>
> - Audit the data structures that are touched by interrupts
> and add spinlocks.
> At least for n_tty.c probably just tty->read_lock needs to be
> extended.
> Perhaps some can be just "fixed" by ignoring latency and pushing
> softirq functions into keventd
> (modern CPUs should be fast enough for that)
>
> - Possibly disable module unloading for ldiscs (seems to be rather broken,
> although Rusty's new unload algorithm may avoid the worst - not completely
> sure)
>
> Probably all doable with some concentrated effort.
>
> Anyone interested in helping ?
Yes, I would like to help out. I was hoping to help rewrite the whole
thing in 2.7, but it needs help *now*. Perhaps I can take your list
of things to do and fix them as a starting point ?
Thanks
Dipankar
-
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/