Mailing List archive

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

[linux-dvb] Re: Kernel OOPS



Johannes Stezenbach wrote:

 mws@renzel.net wrote:

> i am playing around with the DVR device for playing back a TS which
> was recorded from the DVR device.

 ...

> The kernel is configured a an SMP Kernel and Preemptible feature.


 That's a recipe for disaster -- the dvr playback code in the av7110
 is seriously b0rked. Apart from the bug you found, the dvr device
 does not support non-blocking writes, and if you try to use multiple
 threads and do video ioctls from one thread while another thread
 blocks in dvr write() your machine will lock up...

> The output from dmesg after Oopsing is :
>
> bad: scheduling while atomic! Call Trace:


 Just for the record, this is not an Oops, just an indication that the
 driver is buggy.

> anybody you can help me out of this?


 The problem is that the av7110 hardware does not support TS playback.
 The driver tries to work around this by remuxing the TS into PES and
 feeding PES to the hardware. IMHO this code should be dropped rather
 than attempted to fix. Remuxing should be done in user space. VDR
 does the right thing.
calling the PES unpacking process a 'remuxing' is kind of flattered, not? Forcing everybody to misuse the lowlevel-API instead of highlevel access just because the av711x driver is broken has the unlovely side effect that on well-designed hardware that can eat PS and TS directly the code will still do all the protocol handling and bit-twiddling on the host processor, the dedicated hardware will run idle.

The Avia processor and all modern STB CPUs can process multiplexed streams directly.

Holger




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



Home | Main Index | Thread Index