Re: 2.4.7 softirq incorrectness.

Maksim Krasnyanskiy (maxk@qualcomm.com)
Fri, 27 Jul 2001 11:31:22 -0700


> > Should we then create generic function (something like netif_rx_from_user) than will call do_softirq
> > after calling netif_rx ?
>
>creating such a function is certainly ok (it must first check pending()
>before running do_softirq of course). The name shouldn't be "from user"
>because we actually call it from normal kernel context.
Sure.

> > I queue it and do tasklet_schedule(tx_task). Everything works just fine but on SMP machine I noticed that sometimes
> > data is sent in the wrong order. And the only reason why reordering could happen is if several tx_tasks are runing at the
>
>Do you use tasklet_enable ?
Yep. To sync rx and tx tasks.

>This patch fixes a bug in tasklet_enable.
>(bug found by David Mosemberg) We are thinking at more CPU friendly ways
>to handle the tasklet_disable, Linus just had a suggestion, but I don't
>have time right now to think much about the alternate approches (i'm at
>ols), I will do next week. If you are usng tasklet_enable you may want
>to give it a spin.
Applied to 2.4.8-pre1. Didn't make any difference.
Also it doesn't fix the scenario that I described (reschedule while running). I'm still wondering why don't I hit that trylock/BUG
in tasklet_action.

Thanks
Max

Maksim Krasnyanskiy
Senior Kernel Engineer
Qualcomm Incorporated

maxk@qualcomm.com
http://bluez.sf.net
http://vtun.sf.net

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