Mailing List archive

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

[linux-dvb] Re: Trouble usings AverTV dvb-t 771 (2.6.10-rc1) && PVR 2/350 (ivtv-0.2.0l) at same time



On Mon, Nov 08, 2004 at 01:09:31PM +0100, Jan Dölle wrote:
> Am Sonntag, 7. November 2004 23:03 schrieb Hamish Moffatt:
> > The DVB cards use the BT878 audio path to transfer data. The FIFOs are
> > big enough for audio data with a reasonable PCI latency, which would be
> > about 1.4 Mbit/s at CD quality rates, but instead we are transferring
> > DVB data at 10+ Mbit/s through the same FIFOs. I don't think they are
> > adequate, but nothing can be done.
> 
> Hell - that sounds for me, that it will be a long-term issus.

I get a single FBUS error every day or two; once or twice a week I get
the big burst of errors including the > 20 count. It has not really been
a problem. BTW when you get an FBUS error you can expect the MPEG data
stream to be corrupted temporarily.

Playing with the PCI latency has certainly helped me. In the end, I set
it to a fairly low value for both my DVB cards, so that each of them
will give up the bus quickly.

Another thing to consider; the BT878 allows you to configure how full
the FIFO will get before it starts to transfer on the PCI bus. The
drivers set it up to wait until the most full level possible before
starting the transfer. This makes the PCI transfers most efficient but
it is also the most likely to cause overflows. However, when I changed
it it did not really seem to make any difference.

> Does that mean that this lockup is final fallback to prevent the system for 
> IRQ disaster? What does it mean to the system I we changed the lockup to a 
> higher value? Are there any results like hanging, performance issues, 
> sablility or interference with other drivers?

I have not seen any problems like this. Interrupts are disabled for
longer so potentially other drivers could experience overflows.

> > Please let me know if this helps you. If it does, I'll propose a patch
> > to linux-dvb to increase the limit.
> 
> Bingo,
> 
> I change in bt878.c:
> if (bt878_verbose && count > 20) 
> and
> if (count > 100)
> and everything look fine :-) 

Great!

> Very interesting is that I get not (bt878(0): irq FDSR risc_pc=xxxxxx) 
> messages any more. 
> But normal I should get some as before when count > 20. So maybe the message 
> logging itself make the situtation also worse. This remembers me a little bit 

That's possible, as these messages are flushed to disk immediately by
syslog I think. I find that when I do get a count > 20 message, I tend
to get rather a lot of messages at once.

> to my past, when I was write some DOS Driver with an Interrupt handler. The 
> golden rules was: If your interrupt handler was call, leave it fast as 
> possible and message logging wasn't fast. But but this was DOS and an 
> ISA-Card and I have no Idea how the game is played today with Linux.

It might be useful not to log the FBUS errors then?


Hamish
-- 
Hamish Moffatt VK3SB <hamish@debian.org> <hamish@cloud.net.au>




Home | Main Index | Thread Index