From owner-freebsd-current@FreeBSD.ORG Wed Jul 21 15:35:57 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 8AF7C1065673 for ; Wed, 21 Jul 2010 15:35:57 +0000 (UTC) (envelope-from gavin@FreeBSD.org) Received: from mail-gw1.york.ac.uk (mail-gw1.york.ac.uk [144.32.128.246]) by mx1.freebsd.org (Postfix) with ESMTP id 3AA9B8FC08 for ; Wed, 21 Jul 2010 15:35:56 +0000 (UTC) Received: from mail-gw6.york.ac.uk (mail-gw6.york.ac.uk [144.32.129.26]) by mail-gw1.york.ac.uk (8.13.6/8.13.6) with ESMTP id o6LFZq4O008520; Wed, 21 Jul 2010 16:35:52 +0100 (BST) Received: from buffy-128.york.ac.uk ([144.32.128.160] helo=buffy.york.ac.uk) by mail-gw6.york.ac.uk with esmtps (TLSv1:AES256-SHA:256) (Exim 4.68) (envelope-from ) id 1ObbKq-0004Ck-Hp; Wed, 21 Jul 2010 16:35:52 +0100 Received: from buffy.york.ac.uk (localhost [127.0.0.1]) by buffy.york.ac.uk (8.14.4/8.14.4) with ESMTP id o6LFZq0p033193; Wed, 21 Jul 2010 16:35:52 +0100 (BST) (envelope-from gavin@FreeBSD.org) Received: (from ga9@localhost) by buffy.york.ac.uk (8.14.4/8.14.4/Submit) id o6LFZqGe033192; Wed, 21 Jul 2010 16:35:52 +0100 (BST) (envelope-from gavin@FreeBSD.org) X-Authentication-Warning: buffy.york.ac.uk: ga9 set sender to gavin@FreeBSD.org using -f From: Gavin Atkinson To: Kostik Belousov In-Reply-To: <20100720132931.GI2381@deviant.kiev.zoral.com.ua> References: <4C4510B8.6090105@freebsd.org> <20100720132931.GI2381@deviant.kiev.zoral.com.ua> Content-Type: text/plain; charset="ASCII" Content-Transfer-Encoding: quoted-printable Date: Wed, 21 Jul 2010 16:35:51 +0100 Message-ID: <1279726551.25909.17.camel@buffy.york.ac.uk> Mime-Version: 1.0 X-Mailer: Evolution 2.28.1 FreeBSD GNOME Team Port X-York-MailScanner: Found to be clean X-York-MailScanner-From: gavin@freebsd.org Cc: David Xu , 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: Wed, 21 Jul 2010 15:35:57 -0000 On Tue, 2010-07-20 at 16:29 +0300, Kostik Belousov wrote: > 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 F= ree > > 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% Xo= rg > > 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 >=20 > 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. I can relatively easily recreate this, see my thread on -current on the 17th July ("Filesystem wedge, SUJ-related?"), which (and the followup emails) contain additional info. I'm currently trying to find the commit responsible for introducing this, and have established that a kernel from the 1st June does not seem to exhibit the same issue. Tonight, I'll revert to a current -current and try to get the info you need. Thanks, Gavin --=20 Gavin Atkinson FreeBSD committer and bugmeister