[mythtv] [PATCH] RingBuffer - fsync thread
Daniel Thor Kristjansson
danielk at mrl.nyu.edu
Mon Dec 13 17:51:17 UTC 2004
John, I tried your patches out and everything worked dandy until I began
a compile. A few minutes later I started getting
"IOBOUND - blocking in ThreadedFileWriter::Write()"
messages and the dmesg started reporting lost data. As soon as I stopped
the compile both the IOBOUND messages and the buffer overrun messages
stopped. The thing is, the buffer reports never reported a buffer over
6% full.
I was compiling myth (niced), which is was mostly cached with ccache so
I'm assuming the problem was actually that ccache was initiating a lot
of disk activity (the system was 40% idle throughout). This must
also have been a case of priority inversion since the compile was
niced. Are writes to the buffer somehow blocked during the syncs? Or
does the write disk access just monopolize the CPU too long?
Admitedly, compiling with ccache enabled is a pretty tough test for
MythTV, but it's the only way I can reliably get buffer overruns
normally.
BTW I set the PCI latency timers to 60, which normally avoids starving
any particular device on the bus.
-- Daniel
Here's is the important portion of the log:
mythtv at thesis mythtv $ mythbackend
Starting up as the master server.
....
2004-12-12 20:26:18.633 Started recording "National Lampoon's Christmas
Vacation" on channel: 3004 on cardid: 4, sourceid 3
2004-12-12 20:26:19.148 Changing from None to RecordingOnly
2004-12-12 20:26:19.554 Maximum signal strength detected: 81% after 0 msec wait
2004-12-12 20:26:19.668 Desired program #1 not found in PAT. Substituting program #3
2004-12-12 20:26:26.650 Found changes in the todo list.
2004-12-12 20:26:28.653 Scheduled 267 items in 2.0 seconds.
2004-12-12 20:28:26.456 /dev/video34 ringbuf avg 0.0183095% max 0.3479% samples17044
2004-12-12 20:30:56.588 /dev/video34 ringbuf avg 0.0183105% max 0.823975% samples 20167
2004-12-12 20:33:27.087 /dev/video34 ringbuf avg 0.0183105% max 0.860596% samples 20217
2004-12-12 20:35:58.614 /dev/video34 ringbuf avg 0.0268591% max 1.24512% samples 20355
2004-12-12 20:38:30.153 /dev/video34 ringbuf avg 0.027269% max 1.22681% samples20356
2004-12-12 20:41:02.626 /dev/video34 ringbuf avg 0.0385751% max 1.97754% samples 20482
2004-12-12 20:43:36.724 /dev/video34 ringbuf avg 0.0601566% max 2.16064% samples 20700
2004-12-12 20:46:11.362 /dev/video34 ringbuf avg 0.0762239% max 2.6001% samples20773
2004-12-12 20:49:03.308 /dev/video34 ringbuf avg 0.0972768% max 3.22266% samples 20883
2004-12-12 20:49:35.187 IOBOUND - blocking in ThreadedFileWriter::Write()
2004-12-12 20:49:37.101 IOBOUND - blocking in ThreadedFileWriter::Write()
2004-12-12 20:49:39.252 IOBOUND - blocking in ThreadedFileWriter::Write()
2004-12-12 20:51:41.644 /dev/video34 ringbuf avg 0.12151% max 5.51147% samples 21026
2004-12-12 20:54:14.689 /dev/video34 ringbuf avg 0.0463993% max 1.57471% samples 20559
2004-12-12 20:56:48.308 /dev/video34 ringbuf avg 0.0547135% max 1.79443% samples 20636
....
More information about the mythtv-dev
mailing list