From owner-freebsd-current@FreeBSD.ORG Tue Jul 20 13:29:38 2010 Return-Path: Delivered-To: current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 75C431065676; Tue, 20 Jul 2010 13:29:38 +0000 (UTC) (envelope-from kostikbel@gmail.com) Received: from mail.zoral.com.ua (mx0.zoral.com.ua [91.193.166.200]) by mx1.freebsd.org (Postfix) with ESMTP id E94ED8FC15; Tue, 20 Jul 2010 13:29:37 +0000 (UTC) Received: from deviant.kiev.zoral.com.ua (root@deviant.kiev.zoral.com.ua [10.1.1.148]) by mail.zoral.com.ua (8.14.2/8.14.2) with ESMTP id o6KDTVgg057830 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Tue, 20 Jul 2010 16:29:31 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: from deviant.kiev.zoral.com.ua (kostik@localhost [127.0.0.1]) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4) with ESMTP id o6KDTVxB095473; Tue, 20 Jul 2010 16:29:31 +0300 (EEST) (envelope-from kostikbel@gmail.com) Received: (from kostik@localhost) by deviant.kiev.zoral.com.ua (8.14.4/8.14.4/Submit) id o6KDTVUq095472; Tue, 20 Jul 2010 16:29:31 +0300 (EEST) (envelope-from kostikbel@gmail.com) X-Authentication-Warning: deviant.kiev.zoral.com.ua: kostik set sender to kostikbel@gmail.com using -f Date: Tue, 20 Jul 2010 16:29:31 +0300 From: Kostik Belousov To: David Xu Message-ID: <20100720132931.GI2381@deviant.kiev.zoral.com.ua> References: <4C4510B8.6090105@freebsd.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="pfhjpIY4DSX7ckaW" Content-Disposition: inline In-Reply-To: <4C4510B8.6090105@freebsd.org> User-Agent: Mutt/1.4.2.3i X-Virus-Scanned: clamav-milter 0.95.2 at skuns.kiev.zoral.com.ua X-Virus-Status: Clean X-Spam-Status: No, score=-2.2 required=5.0 tests=ALL_TRUSTED,AWL,BAYES_50, DNS_FROM_OPENWHOIS autolearn=no version=3.2.5 X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on skuns.kiev.zoral.com.ua Cc: FreeBSD Current Subject: Re: firefox is stuck in getbuf() X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Jul 2010 13:29:38 -0000 --pfhjpIY4DSX7ckaW Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Tue, Jul 20, 2010 at 10:58:00AM +0800, David Xu wrote: > With newest -HEAD code, firefox is stuck in getbuf(). >=20 > top >=20 > last pid: 1814; load averages: 0.00, 0.05, 0.07=20 >=20 > up 0+00:37:11 10:54:01 > 135 processes: 1 running, 134 sleeping > CPU: 3.7% user, 0.0% nice, 0.6% system, 0.0% interrupt, 95.7% idle > Mem: 259M Active, 393M Inact, 151M Wired, 1484K Cache, 111M Buf, 186M Free > Swap: 2020M Total, 2020M Free >=20 > PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU=20 > COMMAND > 1427 davidxu 1 45 0 114M 101M select 0 1:24 0.29% Xorg > 1588 davidxu 10 44 0 279M 145M getbuf 0 2:15 0.00%=20 > firefox-bin >=20 >=20 > procstat -k 1588 > PID TID COMM TDNAME KSTACK=20 >=20 > 1588 100200 firefox-bin initial thread mi_switch sleepq_switch=20 > sleepq_wait _sleep getdirtybuf flush_deplist softdep_sync_metadata=20 > ffs_syncvnode ffs_fsync VOP_FSYNC_APV fsync syscallenter syscall=20 > Xint0x80_syscall > 1588 100207 firefox-bin - mi_switch sleepq_switch=20 > sleepq_catch_signals sleepq_wait_sig _cv_wait_sig seltdwait poll=20 > syscallenter syscall Xint0x80_syscall > 1588 100208 firefox-bin - mi_switch sleepq_switch=20 > sleepq_catch_signals sleepq_wait_sig _sleep __umtx_op_cv_wait _umtx_op=20 > syscallenter syscall Xint0x80_syscall > 1588 100209 firefox-bin - mi_switch sleepq_switch=20 > sleepq_catch_signals sleepq_timedwait_sig _sleep __umtx_op_cv_wait=20 > _umtx_op syscallenter syscall Xint0x80_syscall > 1588 100210 firefox-bin - mi_switch sleepq_switch=20 > sleepq_catch_signals sleepq_timedwait_sig _sleep __umtx_op_cv_wait=20 > _umtx_op syscallenter syscall Xint0x80_syscall > 1588 100216 firefox-bin - mi_switch sleepq_switch=20 > sleepq_catch_signals sleepq_wait_sig _sleep __umtx_op_cv_wait _umtx_op=20 > syscallenter syscall Xint0x80_syscall > 1588 100220 firefox-bin - mi_switch sleepq_switch=20 > sleepq_wait _sleep getdirtybuf flush_deplist softdep_sync_metadata=20 > ffs_syncvnode ffs_fsync VOP_FSYNC_APV fsync syscallenter syscall=20 > Xint0x80_syscall > 1588 100238 firefox-bin - mi_switch sleepq_switch=20 > sleepq_catch_signals sleepq_wait_sig _sleep __umtx_op_cv_wait _umtx_op=20 > syscallenter syscall Xint0x80_syscall > 1588 100239 firefox-bin - mi_switch sleepq_switch=20 > sleepq_catch_signals sleepq_wait_sig _sleep __umtx_op_cv_wait _umtx_op=20 > syscallenter syscall Xint0x80_syscall > 1588 100240 firefox-bin - mi_switch sleepq_switch=20 > sleepq_catch_signals sleepq_wait_sig _sleep __umtx_op_cv_wait _umtx_op=20 > syscallenter syscall Xint0x80_syscall Can you, please, do the following: show the backtraces for the system processes, in particular, syncer, bufdaemon, softdepflush daemon, pagedaemon and vm ? for the stuck firefox thread, find the address of the buffer supplied as an argument to getdirtybuf, and print the *(struct buf *)addr ? This can be done on the live/stuck system using kgdb on /dev/mem. --pfhjpIY4DSX7ckaW Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (FreeBSD) iEYEARECAAYFAkxFpLoACgkQC3+MBN1Mb4iesgCg2IIFqNXpYotXrIliwt2PsR3h ploAnjATNLv7/VMpMIrn1TWUawStSd8r =Yn0/ -----END PGP SIGNATURE----- --pfhjpIY4DSX7ckaW--