Daryl,
Sorry to reply to this part of the thread instead of your latest message
- email logistics problems. Anyway...
OK, you have obvious PCI bus communications problems. The CX23418 could
be the cause or something else in your system could be the cause.
Recent experience leads me to believe it's likely the CX23418.
The good news is you are using the '1.0.1' version of the cx18 driver
that does PCI retries to get reliable communications to the CX23418.
The bad news is, it doesn't appear to work for you.
So here's some things to do:
1. Don't use the 'mmio_ndelay' module parameter. With the new
'retry_mmio' module parameter enabled (which is the default),
'mmio_ndelay' has a statistically insignificant effect, if any at all.
2. You've got a memory shortage of some sort (error -12 is -ENOMEM).
This may be related to vmalloc address space or actual memory pages to
allocate. To check Vmalloc space
$ cat /proc/meminfo | grep -i vmalloc
VmallocTotal: 34359738367 kB
VmallocUsed: 76476 kB
VmallocChunk: 34359661291 kB
if Total-Used is < 64 MB or Chunk is < 64 MB, you'll need to add a
'vmalloc=nnnM' option to your kernel command line. If adding the
vmalloc kernel command line option, use a value 128 MB greater than your
current total.
If your vmalloc space is OK, as a workaround you can use module
parameters to reduce the memory required by the driver.
$ su - root
# modprobe cx18 enc_mpg_buffers=1 enc_ts_buffers=0 \
enc_yuv_buffers=0 enc_pcm_buffers=0
3. The version '1.0.1' cx18 driver logs statistics about PCI mmio
retires. If you do this
$ su - root
# modprobe cx18 debug=3
# modprobe -r cx18
Then even if the driver fails to initialize the card, it should dump
statistics to dmesg when it is removed. They look something like this:
cx18-0 info: retried_write[0] = 3715891
cx18-0 info: retried_write[1] = 51
cx18-0 info: retried_write[2] = 11
cx18-0 info: retried_write[3] = 9
cx18-0 info: retried_write[4] = 3
cx18-0 info: retried_write[5] = 9
cx18-0 info: retried_write[6] = 14
cx18-0 info: retried_write[7] = 12
cx18-0 info: retried_write[8] = 16
cx18-0 info: retried_write[9] = 15
cx18-0 info: retried_write[10] = 593956
cx18-0 info: retried_read[0] = 10376734
cx18-0 info: retried_read[1] = 0
cx18-0 info: retried_read[2] = 0
cx18-0 info: retried_read[3] = 0
cx18-0 info: retried_read[4] = 0
cx18-0 info: retried_read[5] = 0
cx18-0 info: retried_read[6] = 0
cx18-0 info: retried_read[7] = 0
cx18-0 info: retried_read[8] = 0
cx18-0 info: retried_read[9] = 0
cx18-0 info: retried_read[10] = 456
'retried_write[10]' and 'retried_read[10]' are the count of accesses
that absolutely failed.
'retried_write[0]' and 'retried_read[0]' are the count of accesses that
succeeded on the first try.
Indices 1-9 log the number of access that succeeded on 1-9 retries.
Could you provide the statistics from you driver?
4. Could you provide the output of
# lspci -nnvv
run as root on your system? I'm specifically looking for the setting of
the latency timer of the bridges the CX23418 is behind, also for the PCI
Status flags, and for the specific Southbridge chipset you have.
5. Could you provide the full lines of the cx18-driver Oops that
happened in you last log (don't grep on cx18 please)?
6. Don't load and unload the cx18 driver too many times in a row without
being prepared to deal with a kernel oops or hang. There's a memory
leak in the driver that only happens when a card fails to initialize.
(Sorry, I know I need to fix it.)
7. Can you test the same card under Windows in the same machine
(ideally) or a different machine?
Regards,
Andy
_______________________________________________
ivtv-users mailing list
[email protected]
http://ivtvdriver.org/mailman/listinfo/ivtv-users