From owner-freebsd-sparc64@FreeBSD.ORG Wed Mar 9 15:03:25 2011 Return-Path: Delivered-To: freebsd-sparc64@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1C303106567A for ; Wed, 9 Mar 2011 15:03:25 +0000 (UTC) (envelope-from cheeky.m@live.com) Received: from bay0-omc4-s16.bay0.hotmail.com (bay0-omc4-s16.bay0.hotmail.com [65.54.190.218]) by mx1.freebsd.org (Postfix) with ESMTP id 03FD48FC15 for ; Wed, 9 Mar 2011 15:03:24 +0000 (UTC) Received: from BAY147-W59 ([65.54.190.199]) by bay0-omc4-s16.bay0.hotmail.com with Microsoft SMTPSVC(6.0.3790.4675); Wed, 9 Mar 2011 07:03:24 -0800 Message-ID: X-Originating-IP: [209.6.82.6] From: Roger Hammerstein To: Date: Wed, 9 Mar 2011 10:03:24 -0500 Importance: Normal In-Reply-To: <20110307192239.GA31314@alchemy.franken.de> References: <20110307080626.GK57812@alchemy.franken.de>, <20110307192239.GA31314@alchemy.franken.de> MIME-Version: 1.0 X-OriginalArrivalTime: 09 Mar 2011 15:03:24.0609 (UTC) FILETIME=[2358F310:01CBDE6B] Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: freebsd-sparc64@freebsd.org Subject: RE: sparc64 hang with zfs v28 X-BeenThere: freebsd-sparc64@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Porting FreeBSD to the Sparc List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 09 Mar 2011 15:03:25 -0000 > Thinking about it this might be caused by the binutils regression > also affecting userland. If a world built with the following patch > in place still behaves the same you should better contact the ZFS > maintainers though: > http://people.freebsd.org/~marius/elfxx-sparc.c.diff I kept the same cvsup from Sunday=2C added that patch and rebuilt world and= kernel. Now 'kldload zfs' or 'zpool status' locks the machine up=2C no serial conso= le=2C no network. It doesn't respond to breaks on the serial console.=20 (I didn't put the alternate break sequence in). With the kernel.old from before your patch=2C 'kldload zfs' will work. falcon# kldload zfs ZFS NOTICE: Prefetch is disabled by default if less than 4GB of RAM is pres= ent=3B to enable=2C add "vfs.zfs.prefetch_disable=3D0" to /boot/loader= .conf. ZFS filesystem version 5 ZFS storage pool version 28 falcon# falcon# falcon# falcon# falcon# kldstat Id Refs Address Size Name 1 9 0xc0000000 e42878 kernel 2 1 0xc14a2000 32e000 zfs.ko 3 1 0xc17d0000 104000 opensolaris.ko falcon# 'zpool status' will still eat an entire cpu. 1020 root 1 49 0 22712K 2888K CPU1 1 0:00 99.92% zpool falcon# procstat -kk 1020 PID TID COMM TDNAME KSTACK 1020 100063 zpool initial thread falcon# falcon# zpool status load: 0.76 cmd: zpool 1020 [running] 82.09r 0.00u 0.04s 97% 2856k load: 0.76 cmd: zpool 1020 [running] 82.33r 0.00u 0.04s 97% 2856k load: 0.76 cmd: zpool 1020 [running] 82.55r 0.00u 0.04s 97% 2856k load: 0.76 cmd: zpool 1020 [running] 82.75r 0.00u 0.04s 97% 2856k load: 0.76 cmd: zpool 1020 [running] 82.93r 0.00u 0.04s 97% 2856k =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D a truss of 'zpool status' without the zfs module loaded gets stuck after this: (zpool status will cause the zfs module to get loaded) falcon# truss zpool status mmap(0x0=2C32768=2CPROT_READ|PROT_WRITE=2CMAP_PRIVATE|MAP_ANON=2C-1=2C0x0) = =3D 1076183040 (0x40254000) issetugid(0x40256000=2C0x0=2C0x0=2C0x0=2C0x1000000000000000=2C0x20000000000= 00000) =3D 0 (0x0) open("/etc/libmap.conf"=2CO_RDONLY=2C0666) ERR#2 'No such file or= directory' open("/var/run/ld-elf.so.hints"=2CO_RDONLY=2C030036223340) =3D 3 (0x3) read(3=2C"tnhE\0\0\0\^A\0\0\0\M^@\0\0\0-\0"...=2C128) =3D 128 (0x80) mmap(0x0=2C40960=2CPROT_READ|PROT_WRITE=2CMAP_PRIVATE|MAP_ANON=2C-1=2C0x0) = =3D 1076215808 (0x4025c000) lseek(3=2C0x80=2CSEEK_SET) =3D 128 (0x80) read(3=2C"/lib:/usr/lib:/usr/lib/compat:/u"...=2C45) =3D 45 (0x2d) close(3) =3D 0 (0x0) access("/lib/libavl.so.2"=2C0) =3D 0 (0x0) open("/lib/libavl.so.2"=2CO_RDONLY=2C0666) =3D 3 (0x3) fstat(3=2C{ mode=3D-r--r--r-- =2Cinode=3D9467939=2Csize=3D8416=2Cblksize=3D= 16384 }) =3D 0 (0x0) pread(0x3=2C0x40358a78=2C0x2000=2C0x0=2C0x0=2C0x40367220) =3D 8192 (0x2000= ) mmap(0x0=2C1056768=2CPROT_NONE=2CMAP_PRIVATE|MAP_ANON|MAP_NOCORE=2C-1=2C0x0= ) =3D 1077313536 (0x40368000) mmap(0x40368000=2C8192=2CPROT_READ|PROT_EXEC=2CMAP_PRIVATE|MAP_FIXED|MAP_NO= CORE=2C3=2C0x0) =3D 1077313536 (0x40368000) mmap(0x40468000=2C8192=2CPROT_READ|PROT_WRITE|PROT_EXEC=2CMAP_PRIVATE|MAP_F= IXED=2C3=2C0x0) =3D 1078362112 (0x40468000) close(3) =20 access("/lib/libthr.so.3"=2C0) =3D 0 (0x0) open("/lib/libthr.so.3"=2CO_RDONLY=2C020) =3D 3 (0x3) fstat(3=2C{ mode=3D-r--r--r-- =2Cinode=3D9467937=2Csize=3D116936=2Cblksize= =3D16384 }) =3D 0 (0x0) pread(0x3=2C0x40358a78=2C0x2000=2C0x0=2C0x0=2C0x40367188) =3D 8192 (0x2000= ) mmap(0x0=2C1204224=2CPROT_NONE=2CMAP_PRIVATE|MAP_ANON|MAP_NOCORE=2C-1=2C0x0= ) =3D 1092362240 (0x411c2000) mmap(0x411c2000=2C106496=2CPROT_READ|PROT_EXEC=2CMAP_PRIVATE|MAP_FIXED|MAP_= NOCORE=2C3=2C0x0) =3D 1092362240 (0x411c2000) mmap(0x412da000=2C16384=2CPROT_READ|PROT_WRITE|PROT_EXEC=2CMAP_PRIVATE|MAP_= FIXED=2C3=2C0x18000) =3D 1093509120 (0x412da000) mprotect(0x412de000=2C40960=2CPROT_READ|PROT_WRITE|PROT_EXEC) =3D 0 (0x0) close(3) =3D 0 (0x0) mmap(0x0=2C40960=2CPROT_READ|PROT_WRITE=2CMAP_PRIVATE|MAP_ANON=2C-1=2C0x0) = =3D 1076256768 (0x40266000) mmap(0x0=2C106496=2CPROT_READ|PROT_WRITE=2CMAP_PRIVATE|MAP_ANON=2C-1=2C0x0)= =3D 1076297728 (0x40270000) sigprocmask(SIG_BLOCK=2CSIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTE= RM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGT TOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR= 2=2C0x0) =3D 0 (0x0) sigprocmask(SIG_SETMASK=2C0x0=2C0x0) =3D 0 (0x0) sysarch(0x1=2C0x41082fb8=2C0xc0792e40=2C0x40f75653=2C0x412dbde8=2C0x800005)= =3D 0 (0x0) sigprocmask(SIG_BLOCK=2CSIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTE= RM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGT TOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR= 2=2C0x0) =3D 0 (0x0) sigprocmask(SIG_SETMASK=2C0x0=2C0x0) =3D 0 (0x0) sigprocmask(SIG_BLOCK=2CSIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTE= RM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGT TOU|SIGIO|SIGXCPU|SIGXFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR= 2=2C0x0) =3D 0 (0x0) sigprocmask(SIG_SETMASK=2C0x0=2C0x0) =3D 0 (0x0) sigprocmask(SIG_BLOCK=2CSIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTE= RM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIG= XFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2=2C0x0) =3D 0 (0x0) sigprocmask(SIG_SETMASK=2C0x0=2C0x0) =3D 0 (0x0) getpid() =3D 1002 (0x3ea) __sysctl(0x7fdffffe0b8=2C0x2=2C0x412e7f38=2C0x7fdffffe0c0=2C0x0=2C0x0) =3D = 0 (0x0) __sysctl(0x7fdffffdeb8=2C0x2=2C0x7fdffffdf80=2C0x7fdffffdfe8=2C0x411d96d8= =2C0xd) =3D 0 (0x0) __sysctl(0x7fdffffdf80=2C0x3=2C0x412e6e48=2C0x7fdffffe0c0=2C0x0=2C0x0) =3D = 0 (0x0) readlink("/etc/malloc.conf"=2C0x7fdffffda06=2C1024) ERR#2 'No such file or= directory' issetugid(0xffffffffffffffff=2C0xffffffffffffffff=2C0x400=2C0x40e965f6=2C0x= 41092968=2C0x400000) =3D 0 (0x0) break(0x2176d8) =3D 0 (0x0) break(0x2176d8) =3D 0 (0x0) break(0x400000) =3D 0 (0x0) mmap(0x0=2C4194304=2CPROT_READ|PROT_WRITE=2CMAP_PRIVATE|MAP_ANON=2C-1=2C0x0= ) =3D 1093566464 (0x412e8000) mmap(0x416e8000=2C1146880=2CPROT_READ|PROT_WRITE=2CMAP_PRIVATE|MAP_ANON=2C-= 1=2C0x0) =3D 1097760768 (0x416e8000) munmap(0x412e8000=2C1146880) =3D 0 (0x0) sigprocmask(SIG_BLOCK=2CSIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTE= RM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIG= XFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2=2C0x0) =3D 0 (0x0) sigprocmask(SIG_SETMASK=2C0x0=2C0x0) =3D 0 (0x0) thr_self(0x41404400=2C0x412e6e48=2C0x2000=2C0x412dd4a8=2C0x412e7f44=2C0x412= dd450) =3D 0 (0x0) mmap(0x7fdffbfe000=2C8192=2CPROT_NONE=2CMAP_ANON=2C-1=2C0x0) =3D 8787498885= 120 (0x7fdffbfe000) thr_set_name(0x186dd=2C0x411d9768=2C0x0=2C0x1000=2C0xffffffffffffffff=2C0x0= ) =3D 0 (0x0) rtprio_thread(0x0=2C0x186dd=2C0x7fdffffdfec=2C0x22=2C0xffffffffffffffff=2C0= x0) =3D 0 (0x0) sysarch(0x2=2C0x410853b0=2C0x600=2C0x80=2C0x0=2C0x0) =3D 0 (0x0) sigaction(32=2C{ 0x411ce740 SA_SIGINFO ss_t }=2C0x0) =3D 0 (0x0) sigprocmask(SIG_UNBLOCK=2C0x0=2C0x0) =3D 0 (0x0) sigprocmask(SIG_BLOCK=2CSIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTE= RM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIG= XFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2=2C0x0) =3D 0 (0x0) sigprocmask(SIG_SETMASK=2C0x0=2C0x0) =3D 0 (0x0) sigprocmask(SIG_BLOCK=2CSIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTE= RM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIG= XFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2=2C0x0) =3D 0 (0x0) sigprocmask(SIG_SETMASK=2C0x0=2C0x0) =3D 0 (0x0) sigprocmask(SIG_BLOCK=2CSIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTE= RM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIG= XFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2=2C0x0) =3D 0 (0x0) sigprocmask(SIG_SETMASK=2C0x0=2C0x0) =3D 0 (0x0) sigprocmask(SIG_BLOCK=2CSIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTE= RM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIG= XFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2=2C0x0) =3D 0 (0x0) sigprocmask(SIG_SETMASK=2C0x0=2C0x0) =3D 0 (0x0) sigprocmask(SIG_BLOCK=2CSIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTE= RM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIG= XFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2=2C0x0) =3D 0 (0x0) sigprocmask(SIG_SETMASK=2C0x0=2C0x0) =3D 0 (0x0) sigprocmask(SIG_BLOCK=2CSIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTE= RM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIG= XFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2=2C0x0) =3D 0 (0x0) sigprocmask(SIG_SETMASK=2C0x0=2C0x0) =3D 0 (0x0) sigprocmask(SIG_BLOCK=2CSIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTE= RM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIG= XFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2=2C0x0) =3D 0 (0x0) sigprocmask(SIG_SETMASK=2C0x0=2C0x0) =3D 0 (0x0) sigprocmask(SIG_BLOCK=2CSIGHUP|SIGINT|SIGQUIT|SIGKILL|SIGPIPE|SIGALRM|SIGTE= RM|SIGURG|SIGSTOP|SIGTSTP|SIGCONT|SIGCHLD|SIGTTIN|SIGTTOU|SIGIO|SIGXCPU|SIG= XFSZ|SIGVTALRM|SIGPROF|SIGWINCH|SIGINFO|SIGUSR1|SIGUSR2=2C0x0) =3D 0 (0x0) sigprocmask(SIG_SETMASK=2C0x0=2C0x0) =3D 0 (0x0) sigprocmask(SIG_BLOCK=2CSIGHUP|SIGINT| And it stops right there after SIGINT. =