From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 416297F50 for ; Sat, 2 Feb 2013 13:54:04 -0600 (CST) Message-ID: <510D6EDE.1080409@sgi.com> Date: Sat, 02 Feb 2013 13:54:06 -0600 From: Mark Tinguely MIME-Version: 1.0 Subject: Re: xfs deadlock on buffer semaphore while reading directory References: <20130202192007.GS30577@one.firstfloor.org> In-Reply-To: <20130202192007.GS30577@one.firstfloor.org> List-Id: XFS Filesystem from SGI List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Errors-To: xfs-bounces@oss.sgi.com Sender: xfs-bounces@oss.sgi.com To: Andi Kleen Cc: xfs@oss.sgi.com On 02/02/13 13:20, Andi Kleen wrote: > > On a older 3.6-rc9 opensuse kernel I had the following deadlock with > a "find" running on a USB hard disk. I first thought it was some > IO request getting stuck from another process (USB can be flakey), > but after looking through sysrq-t there is nothing else active > in XFS. So looks like some kind of XFS race or deadlock? > > -Andi > > [233265.161582] find D ffff88042a8e4820 0 17774 1 > 0x00000004 > [233265.161586] ffff880212ad36c8 0000000000000086 0000000000000000 > ffff880212ad3fd8 > [233265.161590] ffff880212ad3fd8 000000000000a000 ffff88042d9596c0 > ffff88042a8e4440 > [233265.161593] 00000000000128c0 ffff88042a192a00 ffff88042a192a00 > 0000000000000000 > [233265.161596] Call Trace: > [233265.161606] [] ? __schedule+0x3fc/0x8c0 > [233265.161610] [] ? > get_page_from_freelist+0x170/0x310 > [233265.161628] [] ? _xfs_buf_find+0xe3/0x240 [xfs] > [233265.161632] [] schedule+0x29/0x70 > [233265.161635] [] schedule_timeout+0x1d5/0x230 > [233265.161638] [] ? > __alloc_pages_nodemask+0xe5/0x7e0 > [233265.161650] [] ? _xfs_buf_find+0xe3/0x240 [xfs] > [233265.161654] [] __down+0x6a/0x97 > [233265.161657] [] down+0x41/0x50 > [233265.161669] [] xfs_buf_lock+0x44/0x110 [xfs] > [233265.161680] [] _xfs_buf_find+0xe3/0x240 [xfs] > [233265.161692] [] xfs_buf_get_map+0x171/0x1b0 [xfs] > [233265.161703] [] xfs_buf_read_map+0x2d/0x110 [xfs] > [233265.161739] [] ? xfs_dabuf_map.isra.2+0x239/0x250 > [xfs] > [233265.161759] [] xfs_trans_read_buf_map+0x265/0x480 > [xfs] > [233265.161776] [] xfs_da_read_buf+0xc6/0x1f0 [xfs] > [233265.161787] [] ? xfs_buf_rele+0x4e/0x130 [xfs] > [233265.161799] [] ? xfs_buf_unlock+0x2d/0xa0 [xfs] > [233265.161814] [] xfs_da_node_lookup_int+0xa3/0x2c0 > [xfs] > [233265.161830] [] xfs_dir2_node_lookup+0x51/0x170 > [xfs] > [233265.161845] [] ? xfs_dir2_isleaf+0x26/0x60 [xfs] > [233265.161860] [] xfs_dir_lookup+0x15d/0x170 [xfs] > [233265.161874] [] xfs_lookup+0xcf/0x130 [xfs] > [233265.161887] [] xfs_vn_lookup+0x51/0x90 [xfs] > [233265.161891] [] ? lookup_dcache+0xab/0xd0 > [233265.161894] [] lookup_real+0x1d/0x60 > [233265.161898] [] __lookup_hash+0x38/0x50 > [233265.161901] [] lookup_slow+0x4e/0xc0 > [233265.161904] [] path_lookupat+0x73f/0x790 > [233265.161908] [] do_path_lookup+0x31/0xc0 > [233265.161911] [] user_path_at_empty+0x59/0xa0 > [233265.161915] [] ? mntput_no_expire+0x49/0x160 > [233265.161918] [] ? cp_new_stat+0x107/0x120 > [233265.161921] [] user_path_at+0x11/0x20 > [233265.161924] [] vfs_fstatat+0x3a/0x70 > [233265.161927] [] sys_newfstatat+0x1a/0x40 > [233265.161930] [] system_call_fastpath+0x16/0x1b > > That looks like a hang fixed by the series: http://oss.sgi.com/archives/xfs/2012-12/msg00071.html --Mark Tinguely. _______________________________________________ xfs mailing list xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs