ps locks up on 6.2-PRERELEASE SMP

Kazuaki ODA kaakun at highway.ne.jp
Fri Oct 20 00:22:53 UTC 2006


Kris Kennaway wrote:
> On Fri, Oct 20, 2006 at 08:42:15AM +0900, Kazuaki ODA wrote:
>> Kris Kennaway wrote:
>>> On Fri, Oct 20, 2006 at 07:47:57AM +0900, Kazuaki ODA wrote:
>>>> Hi,
>>>>
>>>> I ran the following two scripts simultaneously on 6.2-PRERELEASE SMP box
>>>> (cvsup'ed today).
>>>>
>>>> ----------------------------------------
>>>> #!/bin/sh
>>>>
>>>> while true; do
>>>>         ls -lR / > ls_result.txt
>>>> done
>>>> ----------------------------------------
>>>>
>>>> ----------------------------------------
>>>> #!/bin/sh
>>>>
>>>> while true; do
>>>>         ls -lR / > ls_result2.txt
>>>> done
>>>> ----------------------------------------
>>>>
>>>> After a while (about 5 minutes), I suspended and killed the both, and
>>>> ran "ps".  As the result, "ps" locked up.  No response and no output.
>>>> To make matters worse, I could not login anymore...
>>>>
>>>> This is 100% reproducable on SMP, but no problem when using Non-SMP kernel.
>>> What state is ps in?  Press ^T.  It's probably a devfs lockup, which
>>> should be fixed by changes yet to be merged.
>>>
>>> Kris
>> I tried again.  But ^T, ^C and ^Z had no effect, ps was still locking..
>>
>> Should I rebuild kernel with DDB option, and go into DDB to get more
>> information?
> 
> Yes.  Throw in WITNESS, INVARIANTS, INVARIANT_SUPPORT, DEBUG_LOCKS and
> DEBUG_VFS_LOCKS while you're there.
> 
> Kris

I tried again, and pressed Ctrl + Alt + Esc to go into DDB.  Here is the
result:


KDB: enter: manual escape to debugger
[thread pid 17 tid 100012 ]
Stopped at      kdb_enter+0x2b: nop
db> ps
  pid  ppid  pgrp   uid   state   wmesg     wchan    cmd
  957   934   957  1001  S+      devfs    0xc4f00058 ps
  953     1   945  1001  S+      devfs    0xc799c46c ls
  952     1   943  1001  S+      devfsmou 0xc4ebddc0 ls
  940   939   940  1001  Ss+     ttyin    0xc4eb6810 tcsh
  939   937   937  1001  S       select   0xc0a2d384 sshd
  937   855   937     0  Ss      sbwait   0xc52c2e90 sshd
  934   933   934  1001  Ss+     pause    0xc509667c tcsh
  933   931   931  1001  S       select   0xc0a2d384 sshd
  931   855   931     0  Ss      sbwait   0xc50cea64 sshd
  930     1   930     0  Ss+     ttyin    0xc4d54410 getty
  929     1   929     0  Ss+     ttyin    0xc4d79c10 getty
  928     1   928     0  Ss+     ttyin    0xc4d60010 getty
  927     1   927     0  Ss+     ttyin    0xc4d62010 getty
  926     1   926     0  Ss+     ttyin    0xc4d79410 getty
  925     1   925     0  Ss+     ttyin    0xc4d79010 getty
  924     1   924     0  Ss+     ttyin    0xc4d78010 getty
  923     1   923     0  Ss+     ttyin    0xc4d77c10 getty
  922     1   922     0  Ss+     ttyin    0xc4d78c10 getty
  904     1   904     0  Ss      select   0xc0a2d384 inetd
  876     1   876     0  Ss      nanslp   0xc09e002c cron
  870     1   870    25  Ss      pause    0xc4d5c24c sendmail
  866     1   866     0  Ss      select   0xc0a2d384 sendmail
  865   795   795    80  S       accept   0xc4fe5b5a httpd
  864   795   795    80  S       accept   0xc4fe5b5a httpd
  863   795   795    80  S       accept   0xc4fe5b5a httpd
  862   795   795    80  S       accept   0xc4fe5b5a httpd
  861   795   795    80  S       accept   0xc4fe5b5a httpd
  855     1   855     0  Ss      select   0xc0a2d384 sshd
  808     1   808     0  Ss      select   0xc0a2d384 usbd
  795     1   795     0  Ss      select   0xc0a2d384 httpd
  776   771   771     0  S       nfslockd 0xc0a35968 rpc.lockd
  771     1   771     0  Ss      select   0xc0a2d384 rpc.lockd
  766     1   766     0  Ss      select   0xc0a2d384 rpc.statd
  723     1   723     0  Ss      select   0xc0a2d384 rpcbind
  708     1   708     0  Ss      select   0xc0a2d384 syslogd
  656     1   656     0  Ss      select   0xc0a2d384 devd
  135     1   135     0  Ss      pause    0xc4f55034 adjkerntz
   48     0     0     0  SL      -        0xed1d6d04 [schedcpu]
   47     0     0     0  SL      sdflush  0xc0a3ad94 [softdepflush]
   46     0     0     0  SL      vlruwt   0xc4d5b000 [vnlru]
   45     0     0     0  SL      syncer   0xc09dfd9c [syncer]
   44     0     0     0  SL      psleep   0xc0a2d8ec [bufdaemon]
   43     0     0     0  SL      pgzero   0xc0a3bd04 [pagezero]
   42     0     0     0  SL      psleep   0xc0a3b854 [vmdaemon]
   41     0     0     0  SL      psleep   0xc0a3b810 [pagedaemon]
   40     0     0     0  WL                          [irq1: atkbd0]
   39     0     0     0  WL                          [irq7: ppc0]
   38     0     0     0  WL                          [swi0: sio]
   37     0     0     0  SL      -        0xc4c48a3c [fdc0]
   36     0     0     0  SL      cooling  0xc4d417d4 [acpi_cooling0]
   35     0     0     0  SL      tzpoll   0xc0b9d838 [acpi_thermal]
   34     0     0     0  WL                          [irq15: ata1]
   33     0     0     0  WL                          [irq14: ata0]
   32     0     0     0  WL                          [irq20: fwohci0]
   31     0     0     0  SL      -        0xc4c28800 [em0 taskq]
   30     0     0     0  SL      usbevt   0xc4bfe210 [usb4]
   29     0     0     0  WL                          [irq23: ehci0]
   28     0     0     0  SL      usbevt   0xc4c4d210 [usb3]
   27     0     0     0  SL      usbevt   0xc4c39210 [usb2]
   26     0     0     0  WL                          [irq18: rl0 uhci2]
   25     0     0     0  SL      usbevt   0xc4c3e210 [usb1]
   24     0     0     0  WL                          [irq19: em0 uhci1]
   23     0     0     0  SL      usbtsk   0xc09dd004 [usbtask]
   22     0     0     0  SL      usbevt   0xc4c2a210 [usb0]
   21     0     0     0  WL                          [irq16: uhci0 uhci3]
   20     0     0     0  WL                          [irq9: acpi0]
   19     0     0     0  WL                          [swi2: cambio]
   18     0     0     0  WL                          [swi5: +]
    9     0     0     0  SL      -        0xc4b62380 [acpi_task_2]
    8     0     0     0  SL      -        0xc4b62380 [acpi_task_1]
    7     0     0     0  SL      -        0xc4b62380 [acpi_task_0]
    6     0     0     0  SL      -        0xc4b62400 [thread taskq]
   17     0     0     0  RL      CPU 0               [swi6: Giant taskq]
   16     0     0     0  WL                          [swi6: task queue]
    5     0     0     0  SL      -        0xc4b62680 [kqueue taskq]
   15     0     0     0  SL      -        0xc09dad20 [yarrow]
    4     0     0     0  SL      -        0xc09dd4e8 [g_down]
    3     0     0     0  SL      -        0xc09dd4e4 [g_up]
    2     0     0     0  SL      -        0xc09dd4dc [g_event]
   14     0     0     0  WL                          [swi1: net]
   13     0     0     0  WL                          [swi3: vm]
   12     0     0     0  LL     *Giant    0xc4af9800 [swi4: clock sio]
   11     0     0     0  RL                          [idle: cpu0]
   10     0     0     0  RL      CPU 1               [idle: cpu1]
    1     0     1     0  SLs     wait     0xc4b04000 [init]
    0     0     0     0  WLs                         [swapper]
db> show lock
db> show alllocks
Process 953 (ls) thread 0xc4c58780 (100040)
exclusive sx devfsmount r = 0 (0xc4ebdd90) locked @
/usr/src/sys/fs/devfs/devfs_vnops.c:575
Process 17 (swi6: Giant taskq) thread 0xc4b05180 (100012)
exclusive sleep mutex Giant r = 0 (0xc09df740) locked @
/usr/src/sys/kern/kern_intr.c:681
db> show lockedvnods
Locked vnodes

0xc4f00000: tag devfs, type VDIR
    usecount 3, writecount 0, refcount 4 mountedhere 0
    flags (VV_ROOT)
     lock type devfs: EXCL (count 1) by thread 0xc4c58780 (pid 953) with
1 pending#0 0xc06695fd at lockmgr+0x4ed
#1 0xc06c1b75 at vop_stdlock+0x21
#2 0xc088abd3 at VOP_LOCK_APV+0x87
#3 0xc06d6a90 at vn_lock+0xac
#4 0xc06ca8fe at vget+0xc2
#5 0xc062cab3 at devfs_allocv+0x37
#6 0xc062d61e at devfs_lookupx+0x1a6
#7 0xc062d955 at devfs_lookup+0x2d
#8 0xc0888c93 at VOP_LOOKUP_APV+0x87
#9 0xc06c3afe at lookup+0x46e
#10 0xc06c342e at namei+0x37e
#11 0xc06d5a8b at vn_open_cred+0x277
#12 0xc06d5812 at vn_open+0x1e
#13 0xc06cecc6 at kern_open+0xb6
#14 0xc06cebda at open+0x1a
#15 0xc087844f at syscall+0x22f
#16 0xc08642cf at Xint0x80_syscall+0x1f


0xc799c414: tag devfs, type VDIR
    usecount 5, writecount 0, refcount 5 mountedhere 0
    flags ()
     lock type devfs: EXCL (count 1) by thread 0xc4c58900 (pid 952) with
1 pending#0 0xc06695fd at lockmgr+0x4ed
#1 0xc06c1b75 at vop_stdlock+0x21
#2 0xc088abd3 at VOP_LOCK_APV+0x87
#3 0xc06d6a90 at vn_lock+0xac
#4 0xc06c3762 at lookup+0xd2
#5 0xc06c342e at namei+0x37e
#6 0xc06d0e8b at kern_lstat+0x47
#7 0xc06d0e27 at lstat+0x1b
#8 0xc087844f at syscall+0x22f
#9 0xc08642cf at Xint0x80_syscall+0x1f

db>


I'm still in DDB, so please let me know if any other information is
required.


-- 
Kazuaki ODA


More information about the freebsd-stable mailing list