On Thursday 28 February 2008 02:50:06 Andy Walls wrote:
> When trying to patch up MythTV so that it might work better with the
> cx18 driver, I noticed that once select() calls on a cx18 device node
> start reporting timeouts when data should be available, select() will
> never again report the cx18 device has data ready for read()ing.
> This errant select() behavior persists across device close() and
> re-open(). I can reliably reproduce this with MythTV. The funny
> thing is that "mplayer /dev/video1" will still work, despite what the
> select() call reports to MythTV. The only way I've found to restore
> things is to unload and reload the cx18 module.
>
>
> Using the attached (very ugly) debug patch to the
> cx18_v4l2_enc_poll() function, I found that the MPEG stream's q_full
> queue has a bytesused value that takes on ever growing negative
> values (far beyond -2MB). This appears to be wrong to me, but I'm not
> sure. Is this value supposed to be negative?
That is very, very wrong. Thank you very much for debugging this, I'll
look at it as soon as I have time. With this information it should be
possible for me to find and fix this bug.
Regards,
Hans
>
> -Andy
>
>
> Here's the highlights from /var/log/messages with notes or deletions
> indicated by ....:
>
> ....
> Feb 26 23:23:04 palomino kernel: cx18-0: loaded v4l-cx23418-dig.fw
> firmware (16382 bytes) ..... MythTV opens a "chanfd" for control and
> a "readfd" for reading Feb 26 23:23:04 palomino kernel: cx18-0 file:
> open encoder MPEG Feb 26 23:23:04 palomino last message repeated 2
> times
> Feb 26 23:23:04 palomino kernel: cx180 file: enc_poll: open_id: 3
> stream type = 0 Feb 26 23:23:04 palomino kernel: cx180 file:
> enc_poll: stream s_flags = 0x0 Feb 26 23:23:04 palomino kernel:
> cx18-0 file: Encoder poll started capture Feb 26 23:23:04 palomino
> kernel: cx180 file: enc_poll: stream s_flags = 0x118 .... 64 x 32 kB
> = 2 MB, that seems correct
> Feb 26 23:23:04 palomino kernel: cx180 file: enc_poll: stream buffers
> 64 buf_size 32768 buffers_stolen 0 Feb 26 23:23:04 palomino kernel:
> cx180 file: enc_poll: stream q_free next 0x15f180c0 prev 2395dec0
> buffers 64 length 2097152 bytesused 0 Feb 26 23:23:04 palomino
> kernel: cx180 file: enc_poll: stream q_full next 0x8220208 prev
> 8220208 buffers 0 length 0 bytesused 0 Feb 26 23:23:04 palomino
> kernel: cx180 file: enc_poll: stream q_io next 0x8220228 prev
> 8220228 buffers 0 length 0 bytesused 0 Feb 26 23:23:04 palomino
> kernel: cx180 file: Encoder poll
> Feb 26 23:23:04 palomino kernel: cx180 file: Post poll_wait
> Feb 26 23:23:04 palomino kernel: cx180 file: enc_poll: stream s_flags
> = 0x118 Feb 26 23:23:04 palomino kernel: cx180 file: enc_poll: stream
> buffers 64 buf_size 32768 buffers_stolen 0 Feb 26 23:23:04 palomino
> kernel: cx180 file: enc_poll: stream q_free next 0x15f180c0 prev
> 2395dec0 buffers 64 length 2097152 bytesused 0 Feb 26 23:23:04
> palomino kernel: cx180 file: enc_poll: stream q_full next 0x8220208
> prev 8220208 buffers 0 length 0 bytesused 0 Feb 26 23:23:04 palomino
> kernel: cx180 file: enc_poll: stream q_io next 0x8220228 prev
> 8220228 buffers 0 length 0 bytesused 0 Feb 26 23:23:04 palomino
> kernel: cx180 file: enc_poll: open_id: 3 stream type = 0 Feb 26
> 23:23:04 palomino kernel: cx180 file: enc_poll: stream s_flags =
> 0x118 Feb 26 23:23:04 palomino kernel: cx180 file: enc_poll: stream
> buffers 64 buf_size 32768 buffers_stolen 0 Feb 26 23:23:04 palomino
> kernel: cx180 file: enc_poll: stream q_free next 0x15f180c0 prev
> 2395dec0 buffers 64 length 2097152 bytesused 0 Feb 26 23:23:04
> palomino kernel: cx180 file: enc_poll: stream q_full next 0x8220208
> prev 8220208 buffers 0 length 0 bytesused 0 Feb 26 23:23:04 palomino
> kernel: cx180 file: enc_poll: stream q_io next 0x8220228 prev
> 8220228 buffers 0 length 0 bytesused 0 Feb 26 23:23:04 palomino
> kernel: cx180 file: Encoder poll
> Feb 26 23:23:04 palomino kernel: cx180 file: Post poll_wait
> Feb 26 23:23:04 palomino kernel: cx180 file: enc_poll: stream s_flags
> = 0x118 Feb 26 23:23:04 palomino kernel: cx180 file: enc_poll: stream
> buffers 64 buf_size 32768 buffers_stolen 0 Feb 26 23:23:04 palomino
> kernel: cx180 file: enc_poll: stream q_free next 0x15f180c0 prev
> 2395dec0 buffers 64 length 2097152 bytesused 0 Feb 26 23:23:04
> palomino kernel: cx180 file: enc_poll: stream q_full next 0x8220208
> prev 8220208 buffers 0 length 0 bytesused 0 Feb 26 23:23:04 palomino
> kernel: cx180 file: enc_poll: stream q_io next 0x8220228 prev
> 8220228 buffers 0 length 0 bytesused 0 ...
> Feb 26 23:23:05 palomino kernel: cx180 file: read 4096 bytes from
> encoder MPEG Feb 26 23:23:05 palomino kernel: cx180 file: read 4096
> from encoder MPEG, got 4096 Feb 26 23:23:05 palomino kernel: cx180
> file: enc_poll: open_id: 3 stream type = 0 Feb 26 23:23:05 palomino
> kernel: cx180 file: enc_poll: stream s_flags = 0x118 Feb 26 23:23:05
> palomino kernel: cx180 file: enc_poll: stream buffers 64 buf_size
> 32768 buffers_stolen 0 Feb 26 23:23:05 palomino kernel: cx180 file:
> enc_poll: stream q_free next 0x15f18700 prev 2395dec0 buffers 63
> length 2064384 bytesused 0 ... bytesused = -32 kB ??
> Feb 26 23:23:05 palomino kernel: cx180 file: enc_poll: stream q_full
> next 0x8220208 prev 8220208 buffers 0 length 0 bytesused -32768 Feb
> 26 23:23:05 palomino kernel: cx180 file: enc_poll: stream q_io next
> 0x15f180c0 prev 15f180c0 buffers 1 length 32768 bytesused 28672 Feb
> 26 23:23:05 palomino kernel: cx180 file: Encoder poll
> Feb 26 23:23:05 palomino kernel: cx180 file: Post poll_wait
> Feb 26 23:23:05 palomino kernel: cx180 file: enc_poll: stream s_flags
> = 0x118 Feb 26 23:23:05 palomino kernel: cx180 file: enc_poll: stream
> buffers 64 buf_size 32768 buffers_stolen 0 Feb 26 23:23:05 palomino
> kernel: cx180 file: enc_poll: stream q_free next 0x15f18700 prev
> 2395dec0 buffers 63 length 2064384 bytesused 0 Feb 26 23:23:05
> palomino kernel: cx180 file: enc_poll: stream q_full next 0x8220208
> prev 8220208 buffers 0 length 0 bytesused -32768 Feb 26 23:23:05
> palomino kernel: cx180 file: enc_poll: stream q_io next 0x15f180c0
> prev 15f180c0 buffers 1 length 32768 bytesused 28672 ...
> Feb 26 23:25:27 palomino kernel: cx180 file: enc_poll: open_id: 3
> stream type = 0 Feb 26 23:25:27 palomino kernel: cx180 file:
> enc_poll: stream s_flags = 0x118 Feb 26 23:25:27 palomino kernel:
> cx180 file: enc_poll: stream buffers 64 buf_size 32768 buffers_stolen
> 0 Feb 26 23:25:27 palomino kernel: cx180 file: enc_poll: stream
> q_free next 0x2395dec0 prev 15f18d00 buffers 63 length 2064384
> bytesused 0 .... bytesused ~= -86.2 MB ???
> Feb 26 23:25:27 palomino kernel: cx180 file: enc_poll: stream q_full
> next 0x15f18500 prev 15f18500 buffers 1 length 32768 bytesused
> -90353664 Feb 26 23:25:27 palomino kernel: cx180 file: enc_poll:
> stream q_io next 0x8220228 prev 8220228 buffers 0 length 0 bytesused
> 0 Feb 26 23:25:27 palomino kernel: cx180 file: Encoder poll
> Feb 26 23:25:27 palomino kernel: cx180 file: Post poll_wait
> Feb 26 23:25:27 palomino kernel: cx180 file: enc_poll: stream s_flags
> = 0x118 Feb 26 23:25:27 palomino kernel: cx180 file: enc_poll: stream
> buffers 64 buf_size 32768 buffers_stolen 0 Feb 26 23:25:27 palomino
> kernel: cx180 file: enc_poll: stream q_free next 0x2395dec0 prev
> 15f18d00 buffers 63 length 2064384 bytesused 0 Feb 26 23:25:27
> palomino kernel: cx180 file: enc_poll: stream q_full next 0x15f18500
> prev 15f18500 buffers 1 length 32768 bytesused -90353664 Feb 26
> 23:25:27 palomino kernel: cx180 file: enc_poll: stream q_io next
> 0x8220228 prev 8220228 buffers 0 length 0 bytesused 0 Feb 26 23:25:27
> palomino kernel: cx180 file: read 4096 bytes from encoder MPEG Feb 26
> 23:25:27 palomino kernel: cx180 file: read 4096 from encoder MPEG,
> got 4096 Feb 26 23:25:27 palomino kernel: cx180 file: enc_poll:
> open_id: 3 stream type = 0 Feb 26 23:25:27 palomino kernel: cx180
> file: enc_poll: stream s_flags = 0x118 Feb 26 23:25:27 palomino
> kernel: cx180 file: enc_poll: stream buffers 64 buf_size 32768
> buffers_stolen 0 Feb 26 23:25:27 palomino kernel: cx180 file:
> enc_poll: stream q_free next 0x2395dec0 prev 15f18d00 buffers 63
> length 2064384 bytesused 0 Feb 26 23:25:27 palomino kernel: cx180
> file: enc_poll: stream q_full next 0x8220208 prev 8220208 buffers 0
> length 0 bytesused -90384384 Feb 26 23:25:27 palomino kernel: cx180
> file: enc_poll: stream q_io next 0x15f18500 prev 15f18500 buffers 1
> length 32768 bytesused 26624 Feb 26 23:25:27 palomino kernel: cx180
> file: Encoder poll
> Feb 26 23:25:27 palomino kernel: cx180 file: Post poll_wait
> Feb 26 23:25:27 palomino kernel: cx180 file: enc_poll: stream s_flags
> = 0x118 Feb 26 23:25:27 palomino kernel: cx180 file: enc_poll: stream
> buffers 64 buf_size 32768 buffers_stolen 0 Feb 26 23:25:27 palomino
> kernel: cx180 file: enc_poll: stream q_free next 0x2395dec0 prev
> 15f18d00 buffers 63 length 2064384 bytesused 0 Feb 26 23:25:27
> palomino kernel: cx180 file: enc_poll: stream q_full next 0x8220208
> prev 8220208 buffers 0 length 0 bytesused -90384384 Feb 26 23:25:27
> palomino kernel: cx180 file: enc_poll: stream q_io next 0x15f18500
> prev 15f18500 buffers 1 length 32768 bytesused 26624 Feb 26 23:25:30
> palomino kernel: cx180 file: enc_poll: open_id: 3 stream type = 0
> Feb 26 23:25:30 palomino kernel: cx180 file: enc_poll: stream s_flags
> = 0x118 Feb 26 23:25:30 palomino kernel: cx180 file: enc_poll: stream
> buffers 64 buf_size 32768 buffers_stolen 0 Feb 26 23:25:30 palomino
> kernel: cx180 file: enc_poll: stream q_free next 0x2395dec0 prev
> 15f18d00 buffers 63 length 2064384 bytesused 0 Feb 26 23:25:30
> palomino kernel: cx180 file: enc_poll: stream q_full next 0x8220208
> prev 8220208 buffers 0 length 0 bytesused -90384384 Feb 26 23:25:30
> palomino kernel: cx180 file: enc_poll: stream q_io next 0x15f18500
> prev 15f18500 buffers 1 length 32768 bytesused 26624 Feb 26 23:25:30
> palomino kernel: cx180 file: Encoder poll
> Feb 26 23:25:30 palomino kernel: cx180 file: Post poll_wait
> Feb 26 23:25:30 palomino kernel: cx180 file: enc_poll: stream s_flags
> = 0x118 Feb 26 23:25:30 palomino kernel: cx180 file: enc_poll: stream
> buffers 64 buf_size 32768 buffers_stolen 0 Feb 26 23:25:30 palomino
> kernel: cx180 file: enc_poll: stream q_free next 0x2395dec0 prev
> 15f18d00 buffers 63 length 2064384 bytesused 0 Feb 26 23:25:30
> palomino kernel: cx180 file: enc_poll: stream q_full next 0x8220208
> prev 8220208 buffers 0 length 0 bytesused -90384384 Feb 26 23:25:30
> palomino kernel: cx180 file: enc_poll: stream q_io next 0x15f18500
> prev 15f18500 buffers 1 length 32768 bytesused 26624 .... MythTV
> closes the device node and reopens it.
> Feb 26 23:25:31 palomino kernel: cx18-0 file: open encoder MPEG
> Feb 26 23:25:31 palomino kernel: cx180 file: enc_poll: open_id: 4
> stream type = 0 Feb 26 23:25:31 palomino kernel: cx180 file:
> enc_poll: stream s_flags = 0x0 Feb 26 23:25:31 palomino kernel:
> cx18-0 file: Encoder poll started capture Feb 26 23:25:31 palomino
> kernel: cx180 file: enc_poll: stream s_flags = 0x118 Feb 26 23:25:31
> palomino kernel: cx180 file: enc_poll: stream buffers 64 buf_size
> 32768 buffers_stolen 0 Feb 26 23:25:31 palomino kernel: cx180 file:
> enc_poll: stream q_free next 0x2395dec0 prev 15f18500 buffers 64
> length 2097152 bytesused 0 Feb 26 23:25:31 palomino kernel: cx180
> file: enc_poll: stream q_full next 0x8220208 prev 8220208 buffers 0
> length 0 bytesused -90384384 Feb 26 23:25:31 palomino kernel: cx180
> file: enc_poll: stream q_io next 0x8220228 prev 8220228 buffers 0
> length 0 bytesused 0 Feb 26 23:25:31 palomino kernel: cx180 file:
> Encoder poll
> Feb 26 23:25:31 palomino kernel: cx180 file: Post poll_wait
> Feb 26 23:25:31 palomino kernel: cx180 file: enc_poll: stream s_flags
> = 0x118 Feb 26 23:25:31 palomino kernel: cx180 file: enc_poll: stream
> buffers 64 buf_size 32768 buffers_stolen 0 Feb 26 23:25:31 palomino
> kernel: cx180 file: enc_poll: stream q_free next 0x2395dec0 prev
> 15f18500 buffers 64 length 2097152 bytesused 0 Feb 26 23:25:31
> palomino kernel: cx180 file: enc_poll: stream q_full next 0x8220208
> prev 8220208 buffers 0 length 0 bytesused -90384384 Feb 26 23:25:31
> palomino kernel: cx180 file: enc_poll: stream q_io next 0x8220228
> prev 8220228 buffers 0 length 0 bytesused 0 ...
_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel