Hello, all.

I just wanted to post a success/bug report on MediaGX hardware, integrated
OHCI controller, using two OV511 cameras (D-Link).

Basically, I have a shell script grabbing a 640x480 frame every 8 or so
seconds from two different cameras.  It's serious overkill, but I regard
it as a sort of "stress test" of the setup.  In the past, the level of
success with this hardware was limited at best, but now with kernel 2.4.9
and Mark's v1.46 OV511 driver, I'm elated to report that the bulk of the
oddness and problems have vanished.  Admittedly, I've been swamped with
other things, and hadn't tried anything since 2.4.5, but I digress.

Below is my ksymoops decode output.  One thing I noted, that I haven't
seen before, was a warning about a symbol mismatch.  Can anyone tell me
what I did wrong, or what that's about?  At the loading of my script I cat
/proc/modules and /proc/ksyms to files to be sure I have an accurate
picture for ksymoops even after a reboot, hence the deviation from the
defaults.

ksymoops 2.4.1 on i586 2.4.9.  Options used
     -V (default)
     -k ksyms.txt (specified)
     -l modules.txt (specified)
     -o /lib/modules/2.4.9/ (default)
     -m /usr/src/linux/System.map (default)

Warning (compare_maps): mismatch on symbol usb_devfs_handle  , usbcore
says c48180c0, /lib/modules/2.4.9/kernel/drivers/usb/usbcore.o says
c4817be0.  Ignoring /lib/modules/2.4.9/kernel/drivers/usb/usbcore.o entry

kernel BUG at usb-ohci.h:464!
invalid operand: 0000
CPU:    0
EIP:    0010:[<c481c404>]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010092
eax: 0000001e   ebx: 00000000   ecx: 00000000   edx: 00000082
esi: c332d800   edi: c332d8b4   ebp: c3017670   esp: c0285ef8
ds: 0018   es: 0018   ss: 0018
Process swapper (pid: 0, stackpage=c0285000)
Stack: c481dc66 c481dd21 000001d0 c332d800 00000001 c4820000 00000004
03056600
       c332d8d4 c3d53b80 c3056600 c332d8b4 00000000 00000000 00000000
c3017678
       00000002 00000296 c481d6ed c332d800 00000000 c3d80860 04000001
0000000b
Call Trace: [<c481dc66>] [<c481dd21>] [<c481d6ed>] [<c0107dfd>]
[<c0107f67>]
   [<c01051a0>] [<c0106c40>] [<c01051a0>] [<c01051c3>] [<c010521a>]
[<c0105000>]
   [<c0105027>]
Code: 0f 0b 83 c4 0c 8d b4 26 00 00 00 00 8b 1b 89 5c 24 1c 8b 55

>>EIP; c481c404 <[usb-ohci]dl_del_list+88/630>   <=====
Trace; c481dc66 <[usb-ohci].rodata.start+26/5ac>
Trace; c481dd21 <[usb-ohci].rodata.start+e1/5ac>
Trace; c481d6ed <[usb-ohci]hc_interrupt+e5/128>
Trace; c0107dfd <handle_IRQ_event+31/5c>
Trace; c0107f67 <do_IRQ+6b/a8>
Trace; c01051a0 <default_idle+0/28>
Trace; c0106c40 <ret_from_intr+0/7>
Trace; c01051a0 <default_idle+0/28>
Trace; c01051c3 <default_idle+23/28>
Trace; c010521a <cpu_idle+32/48>
Trace; c0105000 <_stext+0/0>
Trace; c0105027 <rest_init+27/28>
Code;  c481c404 <[usb-ohci]dl_del_list+88/630>
00000000 <_EIP>:
Code;  c481c404 <[usb-ohci]dl_del_list+88/630>   <=====
   0:   0f 0b                     ud2a      <=====
Code;  c481c406 <[usb-ohci]dl_del_list+8a/630>
   2:   83 c4 0c                  add    $0xc,%esp
Code;  c481c409 <[usb-ohci]dl_del_list+8d/630>
   5:   8d b4 26 00 00 00 00      lea    0x0(%esi,1),%esi
Code;  c481c410 <[usb-ohci]dl_del_list+94/630>
   c:   8b 1b                     mov    (%ebx),%ebx
Code;  c481c412 <[usb-ohci]dl_del_list+96/630>
   e:   89 5c 24 1c               mov    %ebx,0x1c(%esp,1)
Code;  c481c416 <[usb-ohci]dl_del_list+9a/630>
  12:   8b 55 00                  mov    0x0(%ebp),%edx

Kernel panic: Aiee, killing interrupt handler!

1 warning issued.  Results may not be reliable.

My shell script has some debugging logging in it, initially put in to
catch the "infinite interrupt" that occurred many kernels ago, and shows
that grabbing started at 9/10/01 16:36:

[root@allwell-devel /root]# head intdualstat.txt
**Start Record**
Mon Sep 10 16:36:54 CDT 2001
Interrupt status, pre-capture:
 11:        726          XT-PIC  usb-ohci
Interrupt status, post-capture /dev/video0:
 11:       2473          XT-PIC  usb-ohci
Interrupt status, post-capture /dev/video1:
 11:       4067          XT-PIC  usb-ohci
Interrupt status, post-capture, post file copy:
 11:       4067          XT-PIC  usb-ohci

And ended (with a hard lockup) at 09/14/01 02:52:

[root@allwell-devel /root]# tail intdualstat.txt
Interrupt status, post-capture, post file copy:
 11:  111766523          XT-PIC  usb-ohci
-rw-r--r-- 1 root root 115937 Sep 14 02:52 test1.jpg
-rw-r--r-- 1 root root 118183 Sep 14 02:52 test2.jpg
**End Record**

**Start Record**
Fri Sep 14 02:52:07 CDT 2001
Interrupt status, pre-capture:
 11:  111766523          XT-PIC  usb-ohci

A tail of /var/log/messages shows nothing odd at all, outside one warning
of "unlink URB timeout" on 09/11/01 14:22:

Sep 10 16:34:30 localhost kernel: CS5530: not 100%% native mode: will
probe irqs later
Sep 10 16:34:30 localhost kernel:     ide0: BM-DMA at 0xf000-0xf007, BIOS
settings: hda:DMA, hdb:pio
Sep 10 16:34:30 localhost kernel:     ide1: BM-DMA at 0xf008-0xf00f, BIOS
settings: hdc:pio, hdd:pio
Sep 10 16:34:30 localhost kernel: hda: TOSHIBA MK2104MAV, ATA DISK drive
Sep 10 16:34:31 localhost kernel: ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Sep 10 16:34:31 localhost kernel: hda: 4233600 sectors (2168 MB),
CHS=525/128/63

Sep 10 16:34:31 localhost kernel: Partition check:
Sep 10 16:34:31 localhost kernel:  hda: hda1 hda2
Sep 10 16:34:31 localhost kernel: FDC 0 is a National Semiconductor
PC87306
Sep 10 16:34:32 localhost kernel: NET4: Linux TCP/IP 1.0 for NET4.0
Sep 10 16:34:32 localhost kernel: IP Protocols: ICMP, UDP, TCP, IGMP
Sep 10 16:34:32 localhost kernel: IP: routing cache hash table of 512
buckets, 4 Kbytes
Sep 10 16:34:32 localhost kernel: TCP: Hash tables configured (established
4096 bind 4096)
Sep 10 16:34:32 localhost kernel: klips_info:ipsec_init: KLIPS startup,
FreeS/WAN IPSec version: snap2001sep10b
Sep 10 16:34:32 localhost kernel: NET4: Unix domain sockets 1.0/SMP for
Linux NET4.0.
Sep 10 16:34:32 localhost kernel: VFS: Mounted root (ext2 filesystem)
readonly.
Sep 10 16:34:32 localhost kernel: Freeing unused kernel memory: 184k freed
Sep 10 16:34:32 localhost kernel: 8139too Fast Ethernet driver 0.9.18a
Sep 10 16:34:32 localhost kernel: PCI: Found IRQ 3 for device 00:0a.0
Sep 10 16:34:32 localhost kernel: eth0: RealTek RTL8139 Fast Ethernet at
0xc4804000, 00:30:00:03:a2:86, IRQ 3
Sep 10 16:34:33 localhost kernel: eth0: Setting 100mbps half-duplex based
on auto-negotiated partner ability 40a1.
Sep 10 16:34:34 localhost httpd: httpd startup succeeded
Sep 10 16:34:34 localhost kernel: hda: DMA disabled
Sep 10 16:35:30 localhost PAM_pwdb[561]: (login) session opened for user
bradg by (uid=0)
Sep 10 16:36:21 localhost PAM_pwdb[584]: (su) session opened for user root
by bradg(uid=501)
Sep 10 16:36:30 localhost kernel: usb.c: registered new driver usbdevfs
Sep 10 16:36:30 localhost kernel: usb.c: registered new driver hub
Sep 10 16:36:30 localhost kernel: PCI: Found IRQ 11 for device 00:13.0
Sep 10 16:36:30 localhost kernel: usb-ohci.c: USB OHCI at membase
0xc4820000, IRQ 11
Sep 10 16:36:30 localhost kernel: usb-ohci.c: usb-00:13.0, Compaq Computer
Corporation USB Open Host Controller
Sep 10 16:36:30 localhost kernel: usb.c: new USB bus registered, assigned
bus number 1
Sep 10 16:36:30 localhost kernel: hub.c: USB hub found
Sep 10 16:36:30 localhost kernel: hub.c: 2 ports detected
Sep 10 16:36:30 localhost kernel: Linux video capture interface: v1.00
Sep 10 16:36:30 localhost kernel: usb.c: registered new driver ov511
Sep 10 16:36:30 localhost kernel: ov511.c: OV511 USB Camera Driver v1.42
Sep 10 16:36:30 localhost kernel: hub.c: USB new device connect on bus1/1,
assigned device number 2
Sep 10 16:36:30 localhost kernel: ov511.c: USB OV511 camera found
Sep 10 16:36:30 localhost kernel: ov511.c: camera: D-Link DSB-C300
Sep 10 16:36:31 localhost kernel: ov511.c: Sensor is an OV7610
Sep 10 16:36:31 localhost kernel: hub.c: USB new device connect on bus1/2,
assigned device number 3
Sep 10 16:36:31 localhost kernel: ov511.c: USB OV511 camera found
Sep 10 16:36:31 localhost kernel: ov511.c: camera: D-Link DSB-C300
Sep 10 16:36:31 localhost kernel: ov511.c: Sensor is an OV7610
Sep 11 14:22:13 localhost kernel: usb-ohci.c: unlink URB timeout
Sep 14 21:02:43 localhost syslogd 1.3-3: restart.
(Forced restart via power cycle)

Over the course of the days it was continuously running, it did
successfully grab over 66000 frames from two cameras.  A quick check of my
simple log file shows:

[root@allwell-devel /root]# cat intdualstat.txt|grep "/dev/video1"|wc -l
  33225
[root@allwell-devel /root]# cat intdualstat.txt|grep "/dev/video0"|wc -l
  33225

One last note, that some will catch in the logfile is that the kernel was
patched with FreeSWAN snapshot from 09/10/01.  Other than that, it's a
stock kernel.  I haven't attached the kernel config to keep this somewhat
short, but I'd be happy to provide it if anyone wants it or thinks it
would be useful.

If I can be of any help, or anyone has insight on this, or additional
debugging steps, let me know.  In all, I was flatly amazed at the progress
this hardware combination has made in the last few kernel releases, and I
thank all that have obviously put enormous efforts into the development of
drivers for USB controllers and devices!


Brad



_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to