On Sun, Jul 14, 2013 at 9:17 PM, Andy Walls <awalls@xxxxxxxxxxxxxxxx> wrote: > On Thu, 2013-07-11 at 17:05 +0800, Ming Lei wrote: >> Hi, >> >> As we are going to run URB->complete() in tasklet context[1][2], > > Hi, > > Please pardon my naivete, but why was it decided to use tasklets to > defer work, as opposed to some other deferred work mechanism? > > It seems to me that getting rid of tasklets has been an objective for > years: > > http://lwn.net/Articles/239633/ > http://lwn.net/Articles/520076/ > http://lwn.net/Articles/240054/ We discussed the problem in the below link previously[1], Steven and Thomas suggested to use threaded irq handler, but which may degrade USB mass storage performance, so we have to take tasklet now until we rewrite transport part of USB mass storage driver. Also the conversion[2] has avoided the tasklet spin lock problem already. [1], http://marc.info/?t=137079119200001&r=1&w=2 [2], http://marc.info/?l=linux-usb&m=137286326726326&w=2 Thanks, -- Ming Lei -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html