On Sun, Nov 23, 2008 at 12:43 AM, Andy Walls <[EMAIL PROTECTED]> wrote:

> On Sat, 2008-11-22 at 22:25 -0500, Gary Desrochers wrote:
> > I am getting these errors and not sure what I can do.
> .................. verbosity in replying omitted...................
> >                 Then I get the errors:
> >
> >                         ivtv1: DMA TIMEOUT 00000001 0
> >                         ivtv1: DMA TIMEOUT 00000001 0
> >                         ivtv1: DMA TIMEOUT 00000001 0
> >                         ivtv1: DMA TIMEOUT 00000001 0
> >                         ivtv1: DMA TIMEOUT 00000001 0
> >                         ivtv1: DMA TIMEOUT 00000001 0
> >                         ivtv1: DMA TIMEOUT 00000001 0
> >                         ivtv1: DMA TIMEOUT 00000001 0
> >                         ivtv1: DMA TIMEOUT 00000001 0
> >                         ivtv1: DMA TIMEOUT 00000001 0
> >                         ivtv1: DMA TIMEOUT 00000001 0
> >
> >
> >                         So what is going on here?
>
> One of a few things:
>
> 1. The ivtv driver irq handler is too slow and can't keep up with the
> card (unlikely if the others are OK).
>
> 2. The ivtv driver has a bug in irq_handling which causes it to miss
> interrupts for that one card (unlikely if the others are OK)
>
> 3. The PCI bus between the host and the card is experiencing errors, so
> transfers don't always get set up properly (unlikely if the second half
> of the PVR-500 is doing OK)
>
> 4. The first CX23416 on the PVR-500 card is malfunctioning and not
> generating interrupts reliably
>
> 5.  Something about your system is holding off interrupts from the ivtv
> driver and causing it to miss handling of the interrupt for that CX23416
> chip altogether.
>
>
> There may be some others, but those are the ones I can dream up right
> now.  You can't take reliable action until you narrow down the cause.
> (I'd put my money on #5, BTW)
>
>
> So:
>
> Do you only get DMA Timeouts on that one of the three?  Does it happen
> with single captures or multiple captures going on?
>
> Can you provide the output of
>
> $ cat /proc/interrupts
>
> ?
> because it looks like the device isn't getting interrupts at times.  It
> may be helpful to know what device & device driver is sharing the IRQ
> with that CX23416 and how many interrupts your system is serving.
>
> Do you get a "nobody cared" message in your dmesg or system log
> somewhere, followed by a message about the kernel disabling an interrupt
> line?
>
> Could you set the 'printk.time=1' kernel command line option so it's
> easy to see how often these things show up in the log?  The DMA timeout
> messages shouldn't be closer than 300 ms because the timeout is that
> long, but how far apart are the messages?.
>
>
> Regards,
> Andy
>
>
>
> _______________________________________________
> ivtv-users mailing list
> [email protected]
> http://ivtvdriver.org/mailman/listinfo/ivtv-users


> (unlikely if the others are OK)
Well the 150 is normally okay afterwards because I can watch TV on tuner 1
but all recording seems to get zero length files after that.  I have to
reboot the system.

> (unlikely if the second half of the PVR-500 is doing OK)
Not many if at all do shows get recorded with the second half of the 500.
 Very rarely in fact.  Most times it would only be used when watching TV
when the other two are taping or when I am doing a test across all three to
make sure they are working.

> Do you only get DMA Timeouts on that one of the three?
I have only seen it on that one but I got other messages on the first card:

ivtv0: All encoder MPG stream buffers are full. Dropping data.
ivtv0: Cause: the application is not reading fast enough.

But since putting in the pci latency stuff I have not seen them.

> Does it happen with single captures or multiple captures going on?
I think it is only when two tuners are being used in some form.

> Do you get a "nobody cared" message in your dmesg or system log
somewhere, followed by a message about the kernel disabling an interrupt
line?
No I have not seen this.

> The DMA timeout messages shouldn't be closer than 300 ms because the
timeout is that
long, but how far apart are the messages?.
>From the syslog I see:
Nov 17 20:19:47 SeaStorm kernel: ivtv1: DMA TIMEOUT 00000001 0
Nov 17 20:20:20 SeaStorm kernel:last message repeated 6 times
I would say that it is roughly every 500ms.

I would like to expand a bit on what I have done in the past on this issue:

First, this causes shortened files during the first error with zero length
files afterwards from this tuner.

Second, I started the system out with only one tuner on the 150 and it
worked fine, I then replaced the tuner with the 500 and I don't remember any
problems in over a year with just that one card.  It only seems to have
started when adding both cards.  Now I can take one out, if that is the
problem or to see if that fixes the problem but I would prefer to find the
problem with both cards in.

Third, I used to only have one big disk through LVM and I was getting the
zero length disk errors then.  I wanted to try the new multidisk feature in
mythtv so I created a second place to put files.  The second place was not
an LVM partition.  I was then watching which disks to see if only one disk
was having problems.  I found, in the beginning, that it seemed to be one
disk (the LVM one) that was getting the zero length files.  Unfortunately,
before I could find out for sure, the non-LVM disk got overwritten with my
stupidity of trying to install an alternate system improperly.  I have put
the second disk back with the non-LVM partition but will have to wait and
see if this assumption still holds.  Not enough data in other words.  So
with this experiment it seemed like the LVM disk was having the zero length
files and the non-LVM disk was not.  There was no mirroring happening on the
LVM disk so I would not say that the multiple writes were causing problems
(I put this in as information only).

I cannot think of other things I have done at the moment.  If I do I will
expand in the future.

I can do the easy one now.  The cat /dev/interrupts           CPU0
  0:        873   IO-APIC-edge      timer
  1:          2   IO-APIC-edge      i8042
  3:          2   IO-APIC-edge
  4:          2   IO-APIC-edge      serial
  6:          2   IO-APIC-edge      floppy
  7:          0   IO-APIC-edge      parport0
  8:          1   IO-APIC-edge      rtc
  9:          0   IO-APIC-fasteoi   acpi
 12:          4   IO-APIC-edge      i8042
 14:     145881   IO-APIC-edge      libata
 15:    1237940   IO-APIC-edge      libata
 18:      35655   IO-APIC-fasteoi   ehci_hcd:usb1, uhci_hcd:usb2,
uhci_hcd:usb3, uhci_hcd:usb4, uhci_hcd:usb5
 19:      88304   IO-APIC-fasteoi   sata_via
 20:      26901   IO-APIC-fasteoi   eth1
 21:        431   IO-APIC-fasteoi   ivtv0
 22:     232128   IO-APIC-fasteoi   ivtv1
 23:        916   IO-APIC-fasteoi   VIA8237
 24:          0   IO-APIC-fasteoi   ivtv2
 25:    3006017   IO-APIC-fasteoi   nvidia
NMI:          0   Non-maskable interrupts
LOC:    8866430   Local timer interrupts
Nothing looks like it is sharing interrupts.

I have put in the printk.time=1 for startup and restarted the system.  I
always wondered how some peoples messages came out with times.

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

Reply via email to