Mailing List archive

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

[linux-dvb] Re: Dvb kernel w/Nebula chewing CPU time - SOLVED!



I solved the problem described in my previous message. After
trying many, many other things I added
code to the bt878 interrupt routine to count spurious interrupts
(i.e. function called with no BT878 interrupt flags set). There
were 50 spurious for every real interrupt.

The problem turned out ot be that the bttv driver enables the
GPINT interrupt on the bt878, for the purpose of an IR remote
control. Unfortunately, the GPIO inputs are connected on the
Nebula card to the output of the Nxt6000 decoder, so there was
a furious number of interrupts generated whenever it was
delivering a data stream.

The immediate workaround is to add "gpint=0" to the modprobe bttv
line in the startup script.

The proper solution will be a patch to the bttv driver so that
individual cards can be flagged as not wanting the GPIO interrupt.

18000 interrupts/second takes up a lot of CPU time...
With this fixed, the overhead of the demux filter code is only
around 1% of an XP2000+.

Oh, and the reason the problem sometimes spontaneously went away
was because occasionally the interrupt rate would be high enough
to provoke the bttv interrupt handler into declaring a stuck
interrupt and clearing all the interrupt enable flags (which
didn't affect the dvb code, which actually uses the audio
DMA and interrupts to stream the digital data).

Clyde


On Wed, Nov 26, 2003 at 11:28:55PM +1000, Clyde Stubbs wrote:
> I'm running the latest dvb-kernel CVS with a Nebula DigiTV card,
> and *some of the time* when I load the kernel modules, the CPU
> usage jumps to around 50% CPU time, with nothing actually running
> or even accessing the card. Then some of the time, this stops.
> 
> Rmmoding the modules makes the CPU usage go back to normal. Loading
> them again reintroduces the problem.
> 
> Even when the cpu usage is abnormal, the dvb devices can be accessed,
> but there is significant loss of data leading to broken video
> and audio. When it's normal, no such problems.
> 
> nforce2 M/b with RH9 and 2.4.22 kernel, APIC disabled.
> 
> Anyone got any ideas?
> 
> Example - output from "top":
> 
> 83 processes: 82 sleeping, 1 running, 0 zombie, 0 stopped
> CPU states:   0.0% user  48.2% system   0.0% nice   0.0% iowait  51.7% idle
> 
> lsmod output
> 
> Module                  Size  Used by    Tainted: P
> dvb-bt8xx               5348   0  (unused)
> bt878                   7568   0  [dvb-bt8xx]
> nxt6000                 8684   1
> dvb-core               51920   0  [dvb-bt8xx nxt6000]
> bttv                  112736   0  [dvb-bt8xx bt878]
> video-buf              16208   0  [bttv]
> videodev                9216   2  [bttv]
> v4l1-compat            13508   0  (unused)
> i2c-algo-bit            8776   1  [bttv]
> btcx-risc               3560   0  [bttv]
> v4l2-common             5376   0  [bttv]
> i2c-core               19044   0  [dvb-bt8xx bttv i2c-algo-bit]
> ide-cd                 35392   0  (autoclean)
> cdrom                  33216   0  (autoclean) [ide-cd]
> etc....
> 
> 
> 
> -- 
> Clyde Stubbs                     |            HI-TECH Software
> Email: clyde@htsoft.com          |          Phone            Fax
> WWW:   http://www.htsoft.com/    | USA: (408) 490 2885  (408) 490 2885
> PGP:   finger clyde@htsoft.com   | AUS: +61 7 3552 7777 +61 7 3552 7778
> ---------------------------------------------------------------------------
> HI-TECH C: compiling the real world.

-- 
Clyde Stubbs                     |            HI-TECH Software
Email: clyde@htsoft.com          |          Phone            Fax
WWW:   http://www.htsoft.com/    | USA: (408) 490 2885  (408) 490 2885
PGP:   finger clyde@htsoft.com   | AUS: +61 7 3552 7777 +61 7 3552 7778
---------------------------------------------------------------------------
HI-TECH C: compiling the real world.


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



Home | Main Index | Thread Index