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