Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linux-dvb] Re: Problems with TechnoTrend dec2000-t USB



Felix Domke wrote:
Hi,

please use tasklets to do the real work for your interrupt handlers. Take a look in the PCI drivers for an example, the pretty simple to convert: just schedule your tasklet with old irq handler function in the new irq handler.
Since tasklets are strongly serialized (if the tasklet is already running while a new interrupt arrives it's not scheduled again) you have to check at the end of your tasklet function if new data arrived and if you have to run it once again.

The problem in our case is that we either had to buffer the data away (in the interrupt) or rewrite the urb-rescheduling mechanism, since otherwise the buffers are used again after returning from the urb-handler.

I know, it's just lazyness, not a real problem.

I for myself would like to have the lower dvb driver layer being able to handle calls from interrupt context. tasklets always involve a higher latency, and sometimes (like in our case) it's difficult to buffer the data away. Or is there a strong reason not to support this?
yes, we need to keep the overall interrupt latency low, thus the time with switched off interrupts must get minimized.

(No, it's not because my lazyness, but on slow platforms like the dbox2, it helped a lot to move the queue-handler from a tasklet directly into the interrupt handler in terms of speed. I think it was changed to a bottom-half handler now, which seems to be faster (=lower latency) than a tasklet (why??))
hmm, no idea. Have you asked this on the lkml?
(yes, a bottom half has a bit less overhead and all bh get serviced first, but is it that critical?)

Holger



--
Info:
To unsubscribe send a mail to ecartis@linuxtv.org with "unsubscribe linux-dvb" as subject.



Home | Main Index | Thread Index