I've been using the ivtv driver for a while without many problems.
Recently I switched my motherboard from one manufacturer (MSI) to
another (Foxconn) .. Both motherboards have the same MCP51 chipset
and use the same drivers, also the system is UP. The new motherboard
has had the timeouts where the older motherboard had none.

With -D 71 enabled I get the following messages,

Jan 26 19:56:23 sammy ivtv1 warn: DMA ERROR 00000003 00000000 00000013 0
Jan 26 19:56:50 sammy ivtv0 warn: DMA ERROR 00000003 00000000 00000011 0
Jan 26 19:56:50 sammy ivtv0: DMA TIMEOUT 00000001 0

The "warn" messages happen 10-15 times before the timeout.

I have a PVR-500, and usually the timeouts happen when both tuners are
being actively used, and the system has a high load. I tried several things
including disabling all cpu frequency changes, disabling or crippling most of
the other power management features, and maxing out the PCI latency timer on
the card. None of which fixed the problem ..

The only thing that I did which really helped was changing the two ivtv
work queue threads from nice -5 to SCHED_RR prio 99 .. I also isolated
prio 99 so the ivtv threads don't share that priority level with any
other threads.. With that change I haven't seem any timeouts.. However,
I think it's only a matter of time before one pops up.

I used the following command to change the priorities,

chrt -rp 99 `pgrep ivtv0`
chrt -rp 99 `pgrep ivtv1`

Changing the priorties like this takes away any variables in the
run time of those two threads.. It means they will run immediately
after they are woken and take priority over every other thread in the
system..

After reviewing the code for the two workqueues it doesn't look like
anything there is that important .. Although, I'm not an ivtv expert. I
did see that the workqueue handlers can write to the cards registers. I
wonder if writing to those registers at the wrong times may be causing the
timeouts .. The default priority of the workqueues means when they run
and for how long is load dependend .. 

Daniel

_______________________________________________
ivtv-devel mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-devel

Reply via email to