Mailing List archive

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

[linux-dvb] Re: AV7110 stable protocol proposal



> That is not the question.
> You need to know when the ARM is finished with transferring something.

Can ARM know in advance how many bytes it will transfer or it
transfers until it decides to finish?

> The interrupt is also currently just a side product which guarantees
> quick response from the PC. You could use the current protocol without
> interrupts.

Excallenet. Then there's no need to redesign the hot water. Can we
gain stability if we get rid of interrupts and use only polling mode
in your code (let's put performance a side for a moment).

> If such interrupts overlap something is broken and it should be fixed.
> It should not happen. 
> One problem I see is interrupt registers being set/reset in tasklets 
> instead of the hardware IRQ. This should always be handled during the
> hardware IRQ (when the IRQ itself is disabled) or it practically invites 
> race conditions. Only lower level stuff like buffer queue processing 
> should go into the tasklets.

Exactly. tasklets should avoid any touching of saa7146 registers
because any noise there might wake up the race condition, and we
want it to rest in peace.

> What is the maximum loop count you get in wait_for_debi_done()?

Ehm... I did tests few weeks ago, now I'm completely switched
to budget-mode, difficult to tell because I got almost immediate
crashes with av7110.c

> This has nothing to do with any IRQ instabilities. I have explained
> before what causes it.
> I also said before that it can also happen with budget cards if a
> semaphore in dvb_sw_demux.c is down. It is just very unlikely 
> because usually nobody opens any other filters when setting up
> networking.
> So, this example does not count :-)
> What other crashes or oopses do you get?

That's the most often oops. OK, agreed. Let's make example test code 
that will cause the condition and crash the budget driver, then I will 
have something repeatable to fix.

I can not rest until the last budget race condition oops is fixed :)

Emard


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



Home | Main Index | Thread Index