Mailing List archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[linux-dvb] Re: WinTV nova problem?
rjkm@convergence.de(Ralph Metzler) 17.10.01 03:33
Once upon a time Ralph Metzler shaped the electrons to say...
>Rainer Zocholl writes:
>>>> Jepp. But the problem seems not to be in the application.
>>
>>>Why?
>>
>> Because i got too kernel panics from the driver while
>> in the interrupt.
>> Always in a (one of several) memcpy) routines.
>It would help to know in what kind of filter this occurs.
>Is VDR using section filters a the same time?
>Is VDR using the DVR device (TS) or PES streams coming from the demux
>device?
Sorry, i don't know. Maybe can Klaus tell this?
I just simply recorded WDR TV or so.
>I think VDR uses the DVR device but in this case the copy routines
>are really simple and I don't know what could go wrong there.
I saw in all Oopses, that it was in a "rep mov" operation.
Always "EDI" (Destination) is at xxxxxFFF, meaning that a page
wrap (maybe 64k wrap?) will occure in the next "mov" operation.
"ECX" (amount) alwys have still big values >> 4k to copy left.
>If section filters are used at the same time the problem is more
>likely to be in the section filter routines in dvb_demux.c.
>I tried to write them in such a way that they don't cause
>overflows even if the data is corrupt but there still could be
>bugs in there.
I doubled the 4096 buffer because on one place
"3+" (inline section_len) is counted. I got no oopses, but VDR complaints about
bad data. But "oopses" are real seldom. (Once in an hour or day..)
dvb_demux.h: u8 secbuf[4096];
dvb_demux.h: u8 secbuf[2*4096];
dvb_demux.c: section_length(const u8 *buf)
dvb_demux.c: return 3+((buf[1]&0x0f)<<8)+buf[2];
I did not analayze the code in deep, but section_length
can become "4096+3".
>> For example:
>> "objdump -D -S dvbdemux.o"
>> would have helped a lot, but i did not know that trick.
>I would really need a ksymoops dump and an "objdump -D -S dvb_demux.o"
>of the same routine to show me where exactly the oops occurs.
Next time i'll do. Promissed (of cause)
I do have only this:
Unable to handle kernel paging request at virutal address d949e000
printing
eip: *d92287d3*
*pde 16563067
*pte 00000000
oops: 0002
Cpu: 0
EIP: 0010:[{d92287d3}]
EFLAGS: 000101221
eax: ffffffc5 ebx: d938806c ecx: *3ffbe8ad* edx:00000232
esi: d8ebf0e3 edi: *d948dfff* ebp: fffffc5 esp:d6881f04
process vdr ....
(most often "swapper")
....Stack dump (see .jpg)
call trace:
d9244afc d922cdf5 d9244d90 d9244afc d891b0c0 d92336d70 d8910c0
d9236d70 d891b0c0 d9244afc d891b0c0 d89191dd d891b0c0
d9244afc c0107d7d d891b0c0 c0107eae c0109d48
Code:
f3 a5 a8 02 74 02 66 a5 a8 01 74 01 a4 01 ab 5c 10 00 00 8b
(see dissassemly below)
(0) Kernel panic: Aieee, killing interrupt handler.
In interrupt handler - not syncing.
-----
f3 a5 repz movsl %ds:(%esi),%es:(%edi)
a8 02 test $0x2,%al
74 02 je 8049414 <acOoops+0x8>
66 a5 movsw %ds:(%esi),%es:(%edi)
a8 01 test $0x1,%al
74 01 je 8049419 <acOoops+0xd>
a4 movsb %ds:(%esi),%es:(%edi)
01 ab 5c 10 00 00 add %ebp,0x105c(%ebx)
8b .byte 0x8b
(Typo included?)
-----
d9228000 __insmod_dvb_demux_Odvb_demux.o_M3BB3A31B_V132106 [dvb_demux]
d9228060 __insmod_dvb_demux_S.text_L8979 [dvb_demux]
d9228060 dmx_register_demux [dvb_demux]
d92280f4 dmx_unregister_demux [dvb_demux]
d9228164 dmx_get_demuxes [dvb_demux]
d922817c dvb_crc32 [dvb_demux]
d92281b4 dvb_set_crc32 [dvb_demux]
d922825c DvbDmxSWFilterPackets [dvb_demux]
*d92287d3* <<<----------------------------------------- Ooooops
d9229bf0 DvbDmxInit [dvb_demux]
d9229e10 DvbDmxRelease [dvb_demux]
d9229e48 DvbDmxSWFilterPacket [dvb_demux]
d922a3a0 __insmod_dvb_demux_S.data_L1056 [dvb_demux]
d922a3a0 dmx_muxs [dvb_demux]
d922c000 __insmod_dvb_Odvb.o_M3BB3AC74_V132106 [dvb]
d922c060 __insmod_dvb_S.text_L45159 [dvb]
d922ccf0 IR_handle [dvb]
d922cd04 CI_handle [dvb]
d922db20 SendCICommand [dvb]
d922425c set_up_grabbing [saa7146_v4l]
d92242e8 saa7146_std_grab_irq_callback_rps0 [saa7146_v4l]
d9224404 calculate_clipping_registers_mask [saa7146_v4l]
d92244cc set_pixel [saa7146_v4l]
d9224518 set_box [saa7146_v4l]
c0107d78 disable_irq
c0107dcc enable_irq
c0107ef0 request_irq
c0107f94 free_irq
c010800c probe_irq_on
c01080f8 probe_irq_mask
c010815c probe_irq_off
c0108414 disable_irq_mhonarcnc
c010af30 do_gettimeofday
--
Info:
To unsubscribe send a mail to listar@linuxtv.org with "unsubscribe linux-dvb" as subject.
Home |
Main Index |
Thread Index