OpenCores
Issue List
[or1ksim] serial8250: too much work for irq2 #16
Closed xianfeng opened this issue over 15 years ago
xianfeng commented over 15 years ago

In or1ksim-0.2.0rc2, I got "serial8250: too much work for irq2" while cat file. See the log below for details.

xzeng@xzeng linux-2.6.19$ telnet localhost 10084 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Linux version 2.6.19-or32 (root@xzeng.sa) (gcc version 4.2.2) #1 Tue Aug 26 09:52:09 HKT 2008 Detecting Processor units: Signed 0x391 Setting up paging and PTEs. write protecting ro sections (0xc0002000 - 0xc024e000) Setting up identical mapping (0x80000000 - 0x90000000) Setting up identical mapping (0x92000000 - 0x92002000) Setting up identical mapping (0xb8070000 - 0xb8072000) Setting up identical mapping (0x97000000 - 0x97002000) Setting up identical mapping (0x99000000 - 0x9a000000) Setting up identical mapping (0x93000000 - 0x93002000) Setting up identical mapping (0xa6000000 - 0xa6100000) Setting up identical mapping (0x1e50000 - 0x1fa0000) dtlb_miss_handler c00040c8 itlb_miss_handler c00041a8 Built 1 zonelists. Total pages: 3953 Kernel command line: root=/dev/ram console=ttyS0 PID hash table entries: 128 (order: 7, 512 bytes) start_kernel(): bug: interrupts were enabled early Console: colour dummy device 80x25 Dentry cache hash table entries: 4096 (order: 1, 16384 bytes) Inode-cache hash table entries: 2048 (order: 0, 8192 bytes) Memory: 26568k/31744k available (2213k kernel code, 5176k reserved, 252k data, 112k init, 0k highmem) Mount-cache hash table entries: 1024 checking if image is initramfs...it isn't (bad gzip magic numbers); looks like an initrd Freeing initrd memory: 2048k freed NET: Registered protocol family 16 NET: Registered protocol family 2 IP route cache hash table entries: 256 (order: -3, 1024 bytes) TCP established hash table entries: 1024 (order: -1, 4096 bytes) TCP bind hash table entries: 512 (order: -2, 2048 bytes) TCP: Hash tables configured (established 1024 bind 512) TCP reno registered eth0: Open Ethernet Core Version 1.0 rcu-torture:--- Start of test: nreaders=2 nfakewriters=4 stat_interval=0 verbose=0 test_no_idle_hz=0 shuffle_interval = 5 VFS: Disk quotas dquot_6.5.1 Dquot-cache hash table entries: 2048 (order 0, 8192 bytes) Installing knfsd (copyright (C) 1996 okir@monad.swb.de). io scheduler noop registered io scheduler anticipatory registered (default) io scheduler deadline registered io scheduler cfq registered Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled serial8250.0: ttyS0 at MMIO 0x90000000 (irq = 2) is a 16550A RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize loop: loaded (max 8 devices) TCP cubic registered NET: Registered protocol family 1 NET: Registered protocol family 17 NET: Registered protocol family 15 RAMDISK: ext2 filesystem found at block 0 RAMDISK: Loading 2048KiB 1 disk into ram disk... done. VFS: Mounted root (ext2 filesystem) readonly. Freeing unused kernel memory: 112k freed init started: BusyBox v1.7.5 (2008-08-26 09:27:41 HKT) starting pid 22, tty '': '/etc/init.d/rcS'

Please press Enter to activate this console.

starting pid 24, tty '': '/bin/sh'

BusyBox v1.7.5 (2008-08-26 09:27:41 HKT) built-in shell (ash) Enter 'help' for a list of built-in commands.

/bin/sh: can't access tty; job control turned off

# cd /etc

cd /etc

# ls

ls

fstab init.d inittab

# cat inittab

serial8250: too much work for irq2 serial8250: too much work for irq2 serial8250: too much work for irq2 serial8250: too much work for irq2 serial8250: too much work for irq2 serial8250: too much work for irq2 serial8250: too much work for irq2 serial8250: too much work for irq2 serial8250: too much work for irq2 serial8250: too much work for irq2

cut off

jeremybennett commented over 15 years ago

Hi Zerng,

This is a known bug in the Linux 2.6.19 version of Linux. There are two causes: 1) the baud rate of the terminal is set 16x too high (2Mb/s rather than 115kb/s) and 2) the microsecond timer code doesn't work.

Both of these have been fixed in the Linux 2.6.23 version by Rich D'Addio, which includes all the other bug fixes, a prepared .config file and a prepared RAMdisk image.

For details, see either Rich D'Addio's posting to the OpenRISC mailing list on 17 August, or the Embecosm Application Note EAN2 at http://www.embecosm.com/download/ean2.html (issue 2 has the details for Linux 2.6.23).

I believe this will fix your problem, so I'm marking the issue as closed.

Jeremy

xianfeng commented over 15 years ago

Thanks to Jeremy But I still got the same issue when umount /proc through using Linux-2.6.23 and or1ksim-0.2.0.

Got another issue: (Don't know if it is a known issue)

# ls /proc

ls /proc ls: can't open '/proc': Unknown error 22

Please refer to the log below for more detail

Linux version 2.6.23-or32 (root@xzeng.sa) (gcc version 4.2.2) #6 Thu Sep 4 17:20:56 HKT 2008 Detecting Processor units: Signed 0x391 Setting up paging and PTEs. write protecting ro sections (0xc0002000 - 0xc029c000) Setting up identical mapping (0x80000000 - 0x90000000) Setting up identical mapping (0x92000000 - 0x92002000) Setting up identical mapping (0xb8070000 - 0xb8072000) Setting up identical mapping (0x97000000 - 0x97002000) Setting up identical mapping (0x99000000 - 0x9a000000) Setting up identical mapping (0x93000000 - 0x93002000) Setting up identical mapping (0xa6000000 - 0xa6100000) Setting up identical mapping (0x1e50000 - 0x1fa0000) dtlb_miss_handler c00040c8 itlb_miss_handler c00041a8 Built 1 zonelists in Zone order. Total pages: 3953 Kernel command line: PID hash table entries: 128 (order: 7, 512 bytes) start_kernel(): bug: interrupts were enabled early Console: colour dummy device 80x25 Dentry cache hash table entries: 4096 (order: 1, 16384 bytes) Inode-cache hash table entries: 2048 (order: 0, 8192 bytes) Memory: 26272k/31744k available (2478k kernel code, 5472k reserved, 295k data, 112k init, 0k highmem) Mount-cache hash table entries: 1024 NET: Registered protocol family 16 NET: Registered protocol family 2 IP route cache hash table entries: 2048 (order: 0, 8192 bytes) TCP established hash table entries: 1024 (order: 0, 8192 bytes) TCP bind hash table entries: 1024 (order: -1, 4096 bytes) TCP: Hash tables configured (established 1024 bind 1024) TCP reno registered checking if image is initramfs...it isn't (bad gzip magic numbers); looks like an initrd Freeing initrd memory: 2048k freed eth0: Open Ethernet Core Version 1.0 VFS: Disk quotas dquot_6.5.1 Dquot-cache hash table entries: 2048 (order 0, 8192 bytes) Installing knfsd (copyright (C) 1996 okir@monad.swb.de). io scheduler noop registered io scheduler anticipatory registered (default) io scheduler deadline registered io scheduler cfq registered Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled serial8250.0: ttyS0 at MMIO 0x90000000 (irq = 2) is a 16550A console ttyS0 enabled RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize loop: module loaded TCP cubic registered NET: Registered protocol family 1 NET: Registered protocol family 17 NET: Registered protocol family 15 RAMDISK: ext2 filesystem found at block 0 RAMDISK: Loading 2048KiB 1 disk into ram disk... done. VFS: Mounted root (ext2 filesystem) readonly. Freeing unused kernel memory: 112k freed init started: BusyBox v1.7.5 (2008-09-04 17:07:38 HKT) starting pid 16, tty '': '/etc/init.d/rcS' starting pid 22, tty '': '/bin/sh'

BusyBox v1.7.5 (2008-09-04 17:07:38 HKT) built-in shell (ash) Enter 'help' for a list of built-in commands.

-sh: can't access tty; job control turned off

mount

mount

rootfs on / type rootfs (rw) /dev/root on / type ext2 (ro) tmpfs on /var type tmpfs (rw) devpts on /dev/pts type devpts (rw) sysfs on /sys type sysfs (rw) proc on /proc type proc (rw)

# cd /

cd /

# ls -l

ls -l

drwxr-xr-x 2 0 0 1024 Sep 4 2008 bin drwxr-xr-x 4 0 0 1024 Sep 4 2008 dev drwxr-xr-x 3 0 0 1024 Sep 4 2008 etc drwxr-xr-x 2 0 0 1024 Mar 20 2007 home lrwxrwxrwx 1 0 0 11 Sep 4 2008 linuxrc -> bin/busybox dr-xr-xr-x 24 0 0 0 Apr 11 11:48 proc drwxr-xr-x 2 0 0 1024 Mar 20 2007 root drwxr-xr-x 2 0 0 1024 Sep 4 2008 sbin drwxr-xr-x 10 0 0 0 Apr 11 11:48 sys drwxr-xr-x 2 0 0 1024 Mar 20 2007 tmp drwxr-xr-x 3 0 0 1024 Sep 4 2008 usr drwxr-xr-x 5 0 0 0 Apr 11 11:49 var

# ls /proc

ls /proc

ls: can't open '/proc': Unknown error 22

# umount /proc

serial8250: too much work for irq2 serial8250: too much work for irq2 serial8250: too much work for irq2 serial8250: too much work for irq2

jeremybennett commented over 15 years ago

Hi Zeng,

This appears to be a different problem. I can only reproduce the last part of your error. I am not sure that "umount /proc" is a good thing to do to any Linux system.

From your email to the OpenRISC mailing list, I believe you are not using the recommended versions of all tools in the tool chain. Do you get the same problem if you use binutils 2.16.1, gcc 3.4.4 and uClibc 0.9.28.3? <br /> <br /> I have reopened the bug and assigned it to Rich D'Addio, who is the expert in Linux.

Jeremy

xianfeng commented over 15 years ago

Testing with binutils 2.16.1, gcc 3.4.4 and uClibc 0.9.28.3, and passed

jeremybennett commented over 15 years ago

Thanks Zeng,<br /> <br /> Rich D'Addio has investigated. Here's what he's found<br /> <br /> As it turns out that bug:<br /> serial8250: too much work for irq2<br /> <br /> is actually a well known problem that has been cropping up on different platforms and linux versions/packages for a while.<br /> <br /> Rob Landley from uClibc posted a serial port patch but I need to study it a bit more since it was for a slightly different UART. <br /> <br /> Some people were so frustrated with the silly check they just changed:<br /> #define PASS_LIMIT 256<br /> In linux-2.6.23/driver/serial/8250.c to something like:<br /> #define PASS_LIMIT 0x100000<br /> <br /> I quickly tested this for the umount /proc case and it seemed to clear it up. But this is not really a solution but rather a dumb band-aid. Anyhow my plan is to put in Rob's fix but in the interim this hammer can be used on the screw. :)<br /> <br /> Rich d

rdaddio was assigned over 15 years ago
jeremybennett closed this over 15 years ago

Assignee
rdaddio
Labels
Bug