Learn how easy it is to sync an existing GitHub or Google Code repo to a SourceForge project! See Demo

Close

2.6.8.1 fails to boot - unexpected signal

Help
2004-10-11
2013-06-03
  • Not compiled SMP. Running under host 2.6.3. Supermount patch applied to original kernel. gcc 2.95.4 . glibc 2.1.3.
    (uml 2.4.24 runs just fine).

    % /usr/local/src/linux-2.6.8.1-uml/linux
    Checking for the skas3 patch in the host...not found
    Checking for /proc/mm...not found
    tracing thread pid = 27922
    Linux version 2.6.8.1-UML-1um (root@betty.it.uc3m.es) (gcc version 2.95.4 20011002 (Debian prerelease)) #16 Mon Oct 11 12:30:50 CEST 2004
    Built 1 zonelists
    Kernel command line: root=98:0
    PID hash table entries: 16 (order 4: 128 bytes)
    Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
    Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
    Memory: 28872k available
    Calibrating delay loop... 1209.13 BogoMIPS
    Security Scaffold v1.0.0 initialized
    Capability LSM initialized
    Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
    Checking for host processor cmov support...Yes
    Checking for host processor xmm support...No
    Checking that ptrace can change system call numbers...OK
    Checking that host ptys support output SIGIO...Yes
    Checking that host ptys support SIGIO on close...No, enabling workaround
    Checking for /dev/anon on the host...Not available (open failed with errno 6)
    NET: Registered protocol family 16
    sleeping process 27940 got unexpected signal : 11

    I'm trying 2.6.8.1 now because I gave up on trying to keep 2.6.7 stable - it either died with
      read of switch_pipe failed, errno = 0
    (yes zero) I think after pasting into console into a process piping into another process saving on the hostfs, or gave
    up with a similar signal error. This happened reliably on loading loop.ko. Seemingly in about the 4th add_disk()
    in its init routine (I debugged by hand). I confirmed by
    calling add_disk several times by itself on consecutive ranges
    of minors in a simle test of my own. It dies after about 4-10
    gos.

    BTW - gcc 2.95.4 complained about the assembler it generated in kernel/posix-timers.c for 2.6.8.1. Fixed by adding a extra and spurious t = *tsave; in do_clock_nanosleep.

    strace is not showing anything interesting.

      --- SIGCHLD (Child exited) ---
    ptrace(PTRACE_CONT, 27754, 0, SIG_0)    = 0
    ptrace(PTRACE_CONT, 27744, 0, SIG_0)    = 0
    wait4(-1, [WIFSTOPPED(s) && WSTOPSIG(s) == SIGSEGV], WUNTRACED, NULL) = 27754
    --- SIGCHLD (Child exited) ---
    gettimeofday({1097492246, 583630}, NULL) = 0
    ptrace(PTRACE_PEEKUSER, 27754, 4*EIP, [0x5a5a5a5a]) = 0
    write(1, "sleeping process 27754 got unexp"..., 50sleeping process 27754 got unexpected signal : 11
    ) = 50
    write(1, "\n", 1

    Peter (ptb@it.uc3m.es)

     
    • I have now recompiled under gcc 3.4. Same result. I have also switched to running under kernel2.4.25 (preemptible). Same result.

      I have tried using debug as a param but my gdb can't handle it.
      It says
         Dwarf Error: Cannot handle DW_FORM_strp in DWARF reader.

      I'll work on gdb ...

      Peter

       
    • OK - after much effort, I eliminated compiler and glibc as the problem (by trying many, systematically) and found it to be due to the .config options chosen. I have now narrowed down the config options at fault  to just one:

      (diff .config.good .config.bad)
      72c72
      < # CONFIG_KMOD is not set
      ---
      > CONFIG_KMOD=y

      Details on request. debug just gives a hanging confused
      xterm. Note that I have SKAS enabled on the client but not on the host, so it is using TT.

      Mail me for more.

      Peter ptb@it.uc3m.es