On Thursday 26 November 2009 11:12:26 ext Tejun Heo wrote: > Hello, > > 11/26/2009 05:16 PM, Peter Ujfalusi wrote: > >> Takashi, RT workqueue is going away. Do you really need it? > > > > What can be used instead of RT workqueue? > > The tlv320dac33 needs RT workqueue because I need to send the I2C > > command with minimum delay to the codec. If this can not be done > > (the workqueue is delayed), and the codec does not receive the > > command in time, it will literally die. What are the options to > > replace the RT workqueue? > > The problem with RT workqueue is that RT and queue don't really mix > well. To act in real time, it requires all the resource pre-allocated > and dedicated to it making queueing or pooling meaningless. The > original workqueue code created dedicated pool of threads for each > workqueue so it could be used for RT but new implementation uses > shared worker pool, so it can't be used as an interface to dedicated > threads. > > I haven't read the code but, > > * If you need to respond fast, wouldn't you be doing that from IRQ > handler or softirq? Do you need task context? I2C communication can not be done in interrupt context. I'll take a look at the threaded IRQ, but AFAIK it is just a wrapper to use the global workqueue (I'm not sure, I have not actually checked it). For a quick fix, I can convert the tlv320dac33 driver to use this, and revisit later, if it does not fulfill the timing requirements for the HW. > > * Or is it that it's not triggered by IRQ but once the transfer > started it can't be interrupted? But in this case preempt_disable() > or local_irq_disable() should suffice. As Takashi already commented, it is used as a BH. > > Thanks. > -- Péter -- To unsubscribe from this list: send the line "unsubscribe linux-next" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html