LOGIN   :::   RECOVER PASS   :::   GET ACCOUNT    
Browse
  • Projects
  • Code (CVS)
  • Forums
  • News
  • Articles
  • Polls
  •  
    OpenCores
  • FAQ
  • CVS HowTo
  • Mission
  • Media
  • Tools
  • Advertise
  • Mirrors
  • Logos
  • Contact us
  • Job Opportunity
  •  
    Tools
  • Search
      
  • Download Cores (CVSGet)
  •  
    More
  • Wishbone
  • Perlilog
  • EDA tools
  • OpenTech CD
  •  
    Overview :: News :: Architecture :: OpenRISC 1200 :: VMware image :: NEW GNU Toolchain Port :: Architectural Simulator :: U-Boot :: Linux :: uClinux :: RTEMS :: ATS :: ORP :: ORPmon :: ORPsoc :: Survey :: Forum :: Silicon :: Downloads :: Tracker    

    OpenRISC 1000: Tracker : [or1ksim] serial8250: too much work for irq2

    Monitor this item

    You will be notified via email when status of this item is changed or if somebody adds a comment.

    Your email

      [or1ksim] serial8250: too much work for irq2

    Type BUG
    Status CLOSED
    Top
    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@x...) (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@m...).
    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]

     
    Stats

    Nobody is monitoring this item

    Progress
     
    Submited date 02-Sep-2008
    Submited by Xianfeng Zeng
     
    Assigned date 05-Sep-2008
    Assigned to Rich D'Addio
     
    Closed date 05-Sep-2008
    Closed by Jeremy Bennett

    Top

    Comments

    by Jeremy Bennett on 05-Sep-2008
    Thanks Zeng,

    Rich D'Addio has investigated. Here's what he's found

    As it turns out that bug:
    serial8250: too much work for irq2

    is actually a well known problem that has been cropping up on different platforms and linux versions/packages for a while.

    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.

    Some people were so frustrated with the silly check they just changed:
    #define PASS_LIMIT 256
    In linux-2.6.23/driver/serial/8250.c to something like:
    #define PASS_LIMIT 0x100000

    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. :)

    Rich d
     
    by Xianfeng Zeng on 05-Sep-2008
    Testing with binutils 2.16.1, gcc 3.4.4 and uClibc 0.9.28.3, and passed
     
    by Jeremy Bennett on 04-Sep-2008
    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?

    I have reopened the bug and assigned it to Rich D'Addio, who is the expert in Linux. Jeremy
     
    by Xianfeng Zeng on 04-Sep-2008
    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
     
    by Jeremy Bennett on 02-Sep-2008
    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
     

    Add your comment

    Your email:

    Retype key:
    Top

     
    Copyright (c) 1999 OPENCORES.ORG. All rights reserved.