From: Peter Zijlstra Subject: Re: [EXT4 set 5][PATCH 1/1] expand inode i_extra_isize to support features in larger inode Date: Sun, 15 Jul 2007 15:14:02 +0200 Message-ID: <1184505242.5284.98.camel@lappy> References: <1183275482.4010.133.camel@localhost.localdomain> <20070710163247.5c8bfa3f.akpm@linux-foundation.org> <20070713020529.1486491f.akpm@linux-foundation.org> <1184333621.20032.85.camel@twins> <20070713121259.20066d5b.akpm@linux-foundation.org> <20070713214746.GH23255@mami.zabbo.net> <1184504543.5284.96.camel@lappy> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Cc: Andrew Morton , cmm@us.ibm.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-ext4@vger.kernel.org, Andy Whitcroft , Ingo Molnar To: Zach Brown Return-path: In-Reply-To: <1184504543.5284.96.camel@lappy> Sender: linux-fsdevel-owner@vger.kernel.org List-Id: linux-ext4.vger.kernel.org On Sun, 2007-07-15 at 15:02 +0200, Peter Zijlstra wrote: > On Fri, 2007-07-13 at 14:47 -0700, Zach Brown wrote: > > > Peter, do you have any interest in seeing how far we can get > > at tracking lock_page()? I'm not holding my breath, but any little bit > > would probably help. > > Would this be a valid report? ======================================================= [ INFO: possible circular locking dependency detected ] [ 2.6.22-rt3-dirty #35 ------------------------------------------------------- mkdir/1662 is trying to acquire lock: (lock_page_0){--..}, at: [] add_to_page_cache_lru+0xe/0x23 but task is already holding lock: (jbd_handle){--..}, at: [] journal_start+0x108/0x12c which lock already depends on the new lock. the existing dependency chain (in reverse order) is: -> #1 (jbd_handle){--..}: [] __lock_acquire+0xa72/0xc35 [] lock_acquire+0x48/0x61 [] journal_start+0x108/0x12c [] journal_start+0x124/0x12c [] ext3_prepare_write+0x42/0x17b [] generic_file_buffered_write+0x298/0x646 [] current_fs_time+0x3b/0x40 [] add_preempt_count+0x14/0xe4 [] __generic_file_aio_write_nolock+0x34f/0x3b9 [] put_lock_stats+0xe/0x2a [] generic_file_aio_write+0x4c/0xc4 [] generic_file_aio_write+0x61/0xc4 [] ext3_orphan_del+0x53/0x19f [] ext3_file_write+0x1c/0x9d [] do_sync_write+0xcc/0x10f [] autoremove_wake_function+0x0/0x2e [] get_lock_stats+0xe/0x3f [] lock_release_holdtime+0x41/0x4f [] put_lock_stats+0xe/0x2a [] sys_fchmod+0xa3/0xbd [] _mutex_unlock+0x17/0x20 [] vfs_write+0xb6/0x148 [] sys_write+0x48/0x74 [] system_call+0x7e/0x83 [] 0xffffffffffffffff -> #0 (lock_page_0){--..}: [] print_circular_bug_header+0xcc/0xd3 [] __lock_acquire+0x96e/0xc35 [] lock_acquire+0x48/0x61 [] add_to_page_cache_lru+0xe/0x23 [] add_to_page_cache+0x1de/0x2c1 [] add_to_page_cache_lru+0xe/0x23 [] find_or_create_page+0x4c/0x73 [] __getblk+0x118/0x23c [] ext3_getblk+0xf2/0x23b [] journal_dirty_metadata+0x1a8/0x1b3 [] __ext3_journal_dirty_metadata+0x1e/0x46 [] ext3_mark_iloc_dirty+0x293/0x30a [] ext3_mark_inode_dirty+0x3f/0x48 [] ext3_new_inode+0x8ff/0x943 [] ext3_bread+0x11/0x84 [] ext3_mkdir+0xdd/0x24f [] vfs_mkdir+0x6d/0xb5 [] sys_mkdirat+0xa1/0xec [] trace_hardirqs_on_thunk+0x3a/0x3c [] trace_hardirqs_on_caller+0x115/0x138 [] trace_hardirqs_on_thunk+0x3a/0x3c [] system_call+0x7e/0x83 [] 0xffffffffffffffff other info that might help us debug this: 2 locks held by mkdir/1662: #0: (&inode->i_mutex/1){--..}, at: [] lookup_create+0x26/0x8b #1: (jbd_handle){--..}, at: [] journal_start+0x108/0x12c stack backtrace: Call Trace: [] print_circular_bug_tail+0x69/0x72 [] print_circular_bug_header+0xcc/0xd3 [] __lock_acquire+0x96e/0xc35 [] lock_acquire+0x48/0x61 [] add_to_page_cache_lru+0xe/0x23 [] add_to_page_cache+0x1de/0x2c1 [] add_to_page_cache_lru+0xe/0x23 [] find_or_create_page+0x4c/0x73 [] __getblk+0x118/0x23c [] ext3_getblk+0xf2/0x23b [] journal_dirty_metadata+0x1a8/0x1b3 [] __ext3_journal_dirty_metadata+0x1e/0x46 [] ext3_mark_iloc_dirty+0x293/0x30a [] ext3_mark_inode_dirty+0x3f/0x48 [] ext3_new_inode+0x8ff/0x943 [] ext3_bread+0x11/0x84 [] ext3_mkdir+0xdd/0x24f [] vfs_mkdir+0x6d/0xb5 [] sys_mkdirat+0xa1/0xec [] trace_hardirqs_on_thunk+0x3a/0x3c [] trace_hardirqs_on_caller+0x115/0x138 [] trace_hardirqs_on_thunk+0x3a/0x3c [] system_call+0x7e/0x83 INFO: lockdep is turned off. --------------------------- | preempt count: 00000000 ] | 0-level deep critical section nesting: ----------------------------------------