On Sat, 2005-04-16 at 11:49 +1000, Herbert Xu wrote:
> Here is a quick'n'dirty fix to the problem at hand. What happened > between 2.6.10-rc1 and 2.6.10-rc2 is that qdisc_destroy started > changing the next pointer of qdisc entries which totally confuses > the readers because qdisc_destroy doesn't always take the tree lock. > > This patch tries to ensure that all top-level calls to qdisc_destroy > come under the tree lock. As Thomas correctedly pointed out, most > of the other qdisc_destroy calls occur after the top qdisc has been > unlinked from the device qdisc_list. However, someone should go > through each one of the remaining ones (they're all in the individual > sch_* implementations) and make sure that this assumption is really > true. > > Signed-off-by: Herbert Xu <[EMAIL PROTECTED]> > > If anyone has cycles to spare and a stomach strong enough for > this stuff, here is your chance :) > FYI, I ran the test case that Tarhon-Ohn had, but had to change his tc execution from batch to single lines since the version of tc I have segfaults on newlines. Anyway, I did see the lock up with 2.6.11.2 after 7 iterations. I applied your patch, and it ran for 30 iterations before I manually killed it. I didn't test any more than that, but this seems to be the quick fix for now. -- Steve - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/