[mythtv-users] recordings dying w/ IOBOUND & ivtv 'needed 1 bufs for stream 0' messages

mythtv-users.mythtv.org at tgice.com mythtv-users.mythtv.org at tgice.com
Sun Jan 16 23:14:47 EST 2005


I'm having a problem with my backend sporadically (at least a few times 
a week) dying in the middle of recordings, and refusing to record 
anymore until the backend is restarted.

The symptoms are very similar to those reported in this thread:

   http://www.gossamer-threads.com/lists/mythtv/users/91978

In my mythbackend.log, I'll see something like this:

   2005-01-16 19:00:02 Started recording "The Simpsons" on channel: 1006 
on cardid:   1, sourceid 1
   2005-01-16 19:00:02 Started recording "Law & Order" on channel: 1033 
on cardid:   2, sourceid 1
   2005-01-16 19:00:03 Changing from None to RecordingOnly
   2005-01-16 19:00:03 Changing from None to RecordingOnly
   2005-01-16 19:00:04 Found changes in the todo list.
   2005-01-16 19:00:12 Scheduled 611 items in 8.42573 seconds.
   2005-01-16 19:02:28 MainServer::HandleAnnounce Playback
   2005-01-16 19:02:28 adding: themyth as a client (events: 0)
   2005-01-16 19:02:57 MainServer::HandleAnnounce Playback
   2005-01-16 19:02:57 adding: themyth as a client (events: 0)
   2005-01-16 19:02:57 MainServer::HandleAnnounce FileTransfer
   2005-01-16 19:02:57 adding: themyth as a remote file transfer
   2005-01-16 19:02:58 MainServer::HandleAnnounce FileTransfer

and then a few of these:

   2005-01-16 19:03:23 IOBOUND - blocking in ThreadedFileWriter::Write()

and in my syslog, at the same time (here around 19:03:23), I'll see 
something like this:

   Jan 16 19:00:04 themyth saa7115: decoder enable output
   Jan 16 19:03:27 themyth ivtv: needed 1 bufs for stream 0, received 0 
differ by (1) bufs
   Jan 16 19:03:27 themyth ivtv: SCHED: free_q: 0 elements
   Jan 16 19:03:27 themyth ivtv: SCHED: dma_q: 0 elements
   Jan 16 19:03:27 themyth ivtv: SCHED: full_q: 128 elements
   Jan 16 19:03:34 themyth ivtv: needed 1 bufs for stream 0, received 0 
differ by (1) bufs
   Jan 16 19:03:34 themyth ivtv: SCHED: free_q: 0 elements
   Jan 16 19:03:34 themyth ivtv: SCHED: dma_q: 0 elements
   Jan 16 19:03:34 themyth ivtv: SCHED: full_q: 128 elements

And at this point, when I check the recording, it just ends.  From what 
I can tell (I'm just guessing), it appears that mythbackend (or ivtv, or 
w/e) can't write to the harddrive, so it just chokes.

For further information, I only started having this problem after adding 
a second PVR-250 (the original one was a PVR 250 part# 32031 and the new 
one is a PVR 250 part# 32552 (a 975, w/ the FM radio), and bumping 
(slightly) my ivtv versions, b/c I had to to get the new 32552 to work 
right.  It uses one of those LG TAPE tuners or w/e, and what I ended up 
doing to on my Gentoo 2.6.5 system is taking the ivtv-0.1.10-pre2-ck100z 
driver that'd I'd been using previously w/ the single card w/ no 
problems, and importing just the updated tuner information from 
ivtv-0.1.10-pre2-ck115i.  I also (of course) tried just using the 
straight ck115i, but had some sort of major stability issue or couldn't 
compile it or something, so I bailed.  (Also, as part of this I had to 
update at least one tuner.h (or something) file in the kernel so it'd 
recognize the LG TAPE tuner).

Already, I realize I'm going to be apologizing for the length of this 
post, but I just want to be sure to include all the details that might 
help the community track down this problem that at least some of us are 
having.  I guess it either has something to do with my ivtv driver 
(admittedly, *slightly* hacked together) or something particular to my 
system, possibly hardware based.

I'm running a Chaintech 7NIF2 motherboard w/ an Athlon XP 2400, 512 MB 
of PC2700,  and the two previously-mentioned PVR 250s (32031 & 32552), 
also I have two WD 7200rpm drives, one a 60GB w/ the system on it & some 
of the videos on an LVM ReiserFS system spanning to the WD 160GB drive, 
which is newish -- installed sometime last fall before the second PVR 
250 tuner.

I'll mention one more thing, just for completeness.  I have the two WDs 
mounted right on top of each other in this rather cramped space in my 
smallish case that's designated for 3.5 inch drives.  I didn't start 
using SMARTD tools on them until I'd gotten the second one in there, and 
when I did, I noticed Celsius temperature reports from both in the ~100 
degree range.  I know that they're rated for only up to ~55 degrees 
Celsius, so when I first saw this it freaked me out.  But I think the 
temperature sensors must be a little funky or I'm reading the SMARTD 
output wrong, b/c when I pop the case and have my hand on them, they are 
not terribly hot (I can keep my hand there).  And if I put this digital 
room thermometer right on top of the drives while they're running, it 
only registers about 80 degrees F, well below the ~212 degrees F that 
100 degrees Celsius is (damnable English system! why do only those 
degrees really have a feel for me!?!?)

So my random guess based on this was maybe the drives really are too 
hot, and when I'm recording two shows simultaneously (I *don't* think 
this problem only happens on dual recording, but I'm not sure), there's 
too much bandwidth requirement and the drives can't take it.

Anyway, again, I apologize for the extreme verbosity of the post, but I 
like to get all the details out there right away.  Does anyone else feel 
my pain or have ideas to try?

Thanks guys, mythtv rocks -- esp. when I've got it all stable and what not.

jl

p.s.  In that thread I ref'd way at the beginning, one of the guys had a 
smart idea that I've implemented (but haven't tested yet, since it 
hasn't happened since then) using the 'swatch' package to monitor the 
syslog for those ivtv messages that indicate a problem and just restart 
the backend whenever those come up.  I modified mine slightly to work 
with gentoo, so here's what I did:

first:
   time nice emerge swatch

then create: /etc/swatch.conf:

   watchfor /ivtv: SCHED/
   echo
   exec "/etc/init.d/mythbackend stop && /etc/init.d/mythbackend zap && 
sleep 2 && /etc/init.d/mythbackend start"

(he just had a mythbackend restart, I think I've noticed problems with 
that before)

and then add this to either your /etc/rc.local (everything but Gentoo, I 
guess) or your /etc/conf.d/local.start (for Gentoo):

  swatch --config-file=/etc/swatch.conf --tail-file=/var/log/messages >> 
/var/log/swatch.log 2>&1 &

(for those not well-versed in this output redirection stuff, I *believe* 
what I've got here redirects stdout & errout to that swatch.log file, if 
you want to recreate everytime the machine starts, just change that '>>' 
to '>' or use the: '&> /var/log/swatch.log &' notation).

Thanks, I'm done, seriously.


More information about the mythtv-users mailing list