linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Miao Xie <miaox@cn.fujitsu.com>
To: Itaru Kitayama <kitayama@cl.bb4u.ne.jp>
Cc: Chris Mason <chris.mason@oracle.com>,
	Linux Btrfs <linux-btrfs@vger.kernel.org>,
	Ito <t-itoh@jp.fujitsu.com>, David Sterba <dave@jikos.cz>
Subject: Re: [PATCH V5 2/2] btrfs: implement delayed inode items operation
Date: Sun, 27 Mar 2011 15:00:00 +0800	[thread overview]
Message-ID: <4D8EE070.6000700@cn.fujitsu.com> (raw)
In-Reply-To: <20110327143055.ae2d3c68.kitayama@cl.bb4u.ne.jp>

On sun, 27 Mar 2011 14:30:55 +0900, Itaru Kitayama wrote:
> Chris' stress test, stress.sh -n 50 -c /mnt/linux-2.6 /mnt gave me another lockdep splat
> (see below). I applied your V5 patches on top of the next-rc branch.

I got it. It is because the allocation flag of the metadata's page cache, which is stored in
the btree inode's i_mapping, was set to be GFP_HIGHUSER_MOVABLE. So if we allocate pages for
btree's page cache, this lockdep warning will be triggered.

I think even without my patch, this lockdep warning can also be triggered, btrfs_evict_inode()
do the similar operations like what I do in the btrfs_destroy_inode(). 
  Task1					Kswap0 task
  open()
    ...
    btrfs_search_slot()
      ...
      btrfs_cow_block()
	...
	alloc_page()
	  wait for reclaiming
					shrink_slab()
					  ...
					  shrink_icache_memory()
					    ...
					    btrfs_evict_inode()
					      ...
					      btrfs_search_slot()

If the path is locked by task1, the deadlock happens.

So the btree's page cache is different with the file's page cache, it can not allocate pages
by GFP_HIGHUSER_MOVABLE flag.

I will make a separate patch to fix it.

> I haven't triggered it in my actual testing, but do you think we can iterate a list of block 
> groups in an lockless manner using rcu?

May be we can use it, but AFAIK, the write-side of the sleepable RCU is quite slow. Though the
operations of the block group list are few, I think we should do some test to check the performance
regression.

Thanks
Miao

> 
> diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
> index 2164296..f40ff4e 100644
> --- a/fs/btrfs/ctree.h
> +++ b/fs/btrfs/ctree.h
> @@ -740,6 +740,7 @@ struct btrfs_space_info {
>  	struct list_head block_groups[BTRFS_NR_RAID_TYPES];
>  	spinlock_t lock;
>  	struct rw_semaphore groups_sem;
> +	struct srcu_struct groups_srcu;
>  	atomic_t caching_threads;
>  };
>  
> diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
> index 9e4c9f4..22d6dbb 100644
> --- a/fs/btrfs/extent-tree.c
> +++ b/fs/btrfs/extent-tree.c
> @@ -3003,6 +3003,7 @@ static int update_space_info(struct btrfs_fs_info *info, u64 flags,
>  	for (i = 0; i < BTRFS_NR_RAID_TYPES; i++)
>  		INIT_LIST_HEAD(&found->block_groups[i]);
>  	init_rwsem(&found->groups_sem);
> +	init_srcu_struct(&found->groups_srcu);
>  	spin_lock_init(&found->lock);
>  	found->flags = flags & (BTRFS_BLOCK_GROUP_DATA |
>  				BTRFS_BLOCK_GROUP_SYSTEM |
> @@ -4853,6 +4854,7 @@ static noinline int find_free_extent(struct btrfs_trans_handle *trans,
>  				     int data)
>  {
>  	int ret = 0;
> +	int idx;
>  	struct btrfs_root *root = orig_root->fs_info->extent_root;
>  	struct btrfs_free_cluster *last_ptr = NULL;
>  	struct btrfs_block_group_cache *block_group = NULL;
> @@ -4929,7 +4931,7 @@ ideal_cache:
>  		if (block_group && block_group_bits(block_group, data) &&
>  		    (block_group->cached != BTRFS_CACHE_NO ||
>  		     search_start == ideal_cache_offset)) {
> -			down_read(&space_info->groups_sem);
> +			idx = srcu_read_lock(&space_info->groups_srcu);
>  			if (list_empty(&block_group->list) ||
>  			    block_group->ro) {
>  				/*
> @@ -4939,7 +4941,7 @@ ideal_cache:
>  				 * valid
>  				 */
>  				btrfs_put_block_group(block_group);
> -				up_read(&space_info->groups_sem);
> +				srcu_read_unlock(&space_info->groups_srcu, idx);
>  			} else {
>  				index = get_block_group_index(block_group);
>  				goto have_block_group;
> @@ -4949,8 +4951,8 @@ ideal_cache:
>  		}
>  	}
>  search:
> -	down_read(&space_info->groups_sem);
> -	list_for_each_entry(block_group, &space_info->block_groups[index],
> +	idx = srcu_read_lock(&space_info->groups_srcu);
> +	list_for_each_entry_rcu(block_group, &space_info->block_groups[index],
>  			    list) {
>  		u64 offset;
>  		int cached;
> @@ -5197,8 +5199,8 @@ loop:
>  		BUG_ON(index != get_block_group_index(block_group));
>  		btrfs_put_block_group(block_group);
>  	}
> -	up_read(&space_info->groups_sem);
> -
> +	srcu_read_unlock(&space_info->groups_srcu, idx);
> +	
>  	if (!ins->objectid && ++index < BTRFS_NR_RAID_TYPES)
>  		goto search;
>  
> 
> 
> =========================================================
> [ INFO: possible irq lock inversion dependency detected ]
> 2.6.36-v5+ #2
> ---------------------------------------------------------
> kswapd0/49 just changed the state of lock:
>  (&delayed_node->mutex){+.+.-.}, at: [<ffffffff812131f7>] btrfs_remove_delayed_node+0x3e/0xd2
> but this lock took another, RECLAIM_FS-READ-unsafe lock in the past:
>  (&found->groups_sem){++++.+}
> 
> and interrupts could create inverse lock ordering between them.
> 
> 
> other info that might help us debug this:
> 2 locks held by kswapd0/49:
>  #0:  (shrinker_rwsem){++++..}, at: [<ffffffff810e242a>] shrink_slab+0x3d/0x164
>  #1:  (iprune_sem){++++.-}, at: [<ffffffff811316d0>] shrink_icache_memory+0x4d/0x213
> 
> the shortest dependencies between 2nd lock and 1st lock:
>  -> (&found->groups_sem){++++.+} ops: 1334 {
>     HARDIRQ-ON-W at:
>                           [<ffffffff81075ec0>] __lock_acquire+0x346/0xda6
>                           [<ffffffff81076a3d>] lock_acquire+0x11d/0x143
>                           [<ffffffff814c6a2a>] down_write+0x55/0x9b
>                           [<ffffffff811c352a>] __link_block_group+0x5a/0x83
>                           [<ffffffff811ca562>] btrfs_read_block_groups+0x2fb/0x56c
>                           [<ffffffff811d4921>] open_ctree+0xf78/0x14ab
>                           [<ffffffff811bafdf>] btrfs_get_sb+0x236/0x467
>                           [<ffffffff8111f25e>] vfs_kern_mount+0xbd/0x1a7
>                           [<ffffffff8111f3b0>] do_kern_mount+0x4d/0xed
>                           [<ffffffff8113668d>] do_mount+0x74e/0x7c5
>                           [<ffffffff8113678c>] sys_mount+0x88/0xc2
>                           [<ffffffff81002ddb>] system_call_fastpath+0x16/0x1b
>     HARDIRQ-ON-R at:
>                           [<ffffffff81075e98>] __lock_acquire+0x31e/0xda6
>                           [<ffffffff81076a3d>] lock_acquire+0x11d/0x143
>                           [<ffffffff814c6abc>] down_read+0x4c/0x91
>                           [<ffffffff811cb5b2>] find_free_extent+0x3ec/0xa86
>                           [<ffffffff811cbd00>] btrfs_reserve_extent+0xb4/0x142
>                           [<ffffffff811cbef5>] btrfs_alloc_free_block+0x167/0x2b2
>                           [<ffffffff811be610>] __btrfs_cow_block+0x103/0x346
>                           [<ffffffff811bedb8>] btrfs_cow_block+0x101/0x110
>                           [<ffffffff811c05d8>] btrfs_search_slot+0x143/0x513
>                           [<ffffffff811c1495>] btrfs_insert_empty_items+0x6a/0xbc
>                           [<ffffffff811ffb68>] btrfs_insert_orphan_item+0x5d/0x75
>                           [<ffffffff811df1a1>] btrfs_orphan_add+0x139/0x152
>                           [<ffffffff811e0dd3>] btrfs_setattr+0xff/0x253
>                           [<ffffffff8113201e>] notify_change+0x1a2/0x29d
>                           [<ffffffff8111bf08>] do_truncate+0x6c/0x89
>                           [<ffffffff81127a77>] do_last+0x579/0x57e
>                           [<ffffffff81129502>] do_filp_open+0x215/0x5ae
>                           [<ffffffff8111aec0>] do_sys_open+0x60/0xfc
>                           [<ffffffff8111af8f>] sys_open+0x20/0x22
>                           [<ffffffff81002ddb>] system_call_fastpath+0x16/0x1b
>     SOFTIRQ-ON-W at:
>                           [<ffffffff81075ee1>] __lock_acquire+0x367/0xda6
>                           [<ffffffff81076a3d>] lock_acquire+0x11d/0x143
>                           [<ffffffff814c6a2a>] down_write+0x55/0x9b
>                           [<ffffffff811c352a>] __link_block_group+0x5a/0x83
>                           [<ffffffff811ca562>] btrfs_read_block_groups+0x2fb/0x56c
>                           [<ffffffff811d4921>] open_ctree+0xf78/0x14ab
>                           [<ffffffff811bafdf>] btrfs_get_sb+0x236/0x467
>                           [<ffffffff8111f25e>] vfs_kern_mount+0xbd/0x1a7
>                           [<ffffffff8111f3b0>] do_kern_mount+0x4d/0xed
>                           [<ffffffff8113668d>] do_mount+0x74e/0x7c5
>                           [<ffffffff8113678c>] sys_mount+0x88/0xc2
>                           [<ffffffff81002ddb>] system_call_fastpath+0x16/0x1b
>     SOFTIRQ-ON-R at:
>                           [<ffffffff81075ee1>] __lock_acquire+0x367/0xda6
>                           [<ffffffff81076a3d>] lock_acquire+0x11d/0x143
>                           [<ffffffff814c6abc>] down_read+0x4c/0x91
>                           [<ffffffff811cb5b2>] find_free_extent+0x3ec/0xa86
>                           [<ffffffff811cbd00>] btrfs_reserve_extent+0xb4/0x142
>                           [<ffffffff811cbef5>] btrfs_alloc_free_block+0x167/0x2b2
>                           [<ffffffff811be610>] __btrfs_cow_block+0x103/0x346
>                           [<ffffffff811bedb8>] btrfs_cow_block+0x101/0x110
>                           [<ffffffff811c05d8>] btrfs_search_slot+0x143/0x513
>                           [<ffffffff811c1495>] btrfs_insert_empty_items+0x6a/0xbc
>                           [<ffffffff811ffb68>] btrfs_insert_orphan_item+0x5d/0x75
>                           [<ffffffff811df1a1>] btrfs_orphan_add+0x139/0x152
>                           [<ffffffff811e0dd3>] btrfs_setattr+0xff/0x253
>                           [<ffffffff8113201e>] notify_change+0x1a2/0x29d
>                           [<ffffffff8111bf08>] do_truncate+0x6c/0x89
>                           [<ffffffff81127a77>] do_last+0x579/0x57e
>                           [<ffffffff81129502>] do_filp_open+0x215/0x5ae
>                           [<ffffffff8111aec0>] do_sys_open+0x60/0xfc
>                           [<ffffffff8111af8f>] sys_open+0x20/0x22
>                           [<ffffffff81002ddb>] system_call_fastpath+0x16/0x1b
>     RECLAIM_FS-ON-R at:
>                              [<ffffffff81074292>] mark_held_locks+0x52/0x70
>                              [<ffffffff81074354>] lockdep_trace_alloc+0xa4/0xc2
>                              [<ffffffff810db873>] __alloc_pages_nodemask+0x96/0x841
>                              [<ffffffff81105bcb>] alloc_pages_current+0xa7/0xca
>                              [<ffffffff810d4d91>] __page_cache_alloc+0x85/0x8c
>                              [<ffffffff810ddef6>] __do_page_cache_readahead+0xb5/0x19d
>                              [<ffffffff810ddfff>] ra_submit+0x21/0x25
>                              [<ffffffff810de3b9>] ondemand_readahead+0x1b6/0x1c9
>                              [<ffffffff810de4b2>] page_cache_sync_readahead+0x3d/0x3f
>                              [<ffffffff8120798d>] load_free_space_cache+0x262/0x671
>                              [<ffffffff811c886f>] cache_block_group+0x97/0x233
>                              [<ffffffff811cb63f>] find_free_extent+0x479/0xa86
>                              [<ffffffff811cbd00>] btrfs_reserve_extent+0xb4/0x142
>                              [<ffffffff811cbef5>] btrfs_alloc_free_block+0x167/0x2b2
>                              [<ffffffff811be610>] __btrfs_cow_block+0x103/0x346
>                              [<ffffffff811bedb8>] btrfs_cow_block+0x101/0x110
>                              [<ffffffff811c05d8>] btrfs_search_slot+0x143/0x513
>                              [<ffffffff811c1495>] btrfs_insert_empty_items+0x6a/0xbc
>                              [<ffffffff811ffb68>] btrfs_insert_orphan_item+0x5d/0x75
>                              [<ffffffff811df1a1>] btrfs_orphan_add+0x139/0x152
>                              [<ffffffff811e0dd3>] btrfs_setattr+0xff/0x253
>                              [<ffffffff8113201e>] notify_change+0x1a2/0x29d
>                              [<ffffffff8111bf08>] do_truncate+0x6c/0x89
>                              [<ffffffff81127a77>] do_last+0x579/0x57e
>                              [<ffffffff81129502>] do_filp_open+0x215/0x5ae
>                              [<ffffffff8111aec0>] do_sys_open+0x60/0xfc
>                              [<ffffffff8111af8f>] sys_open+0x20/0x22
>                              [<ffffffff81002ddb>] system_call_fastpath+0x16/0x1b
>     INITIAL USE at:
>                          [<ffffffff81075f37>] __lock_acquire+0x3bd/0xda6
>                          [<ffffffff81076a3d>] lock_acquire+0x11d/0x143
>                          [<ffffffff814c6a2a>] down_write+0x55/0x9b
>                          [<ffffffff811c352a>] __link_block_group+0x5a/0x83
>                          [<ffffffff811ca562>] btrfs_read_block_groups+0x2fb/0x56c
>                          [<ffffffff811d4921>] open_ctree+0xf78/0x14ab
>                          [<ffffffff811bafdf>] btrfs_get_sb+0x236/0x467
>                          [<ffffffff8111f25e>] vfs_kern_mount+0xbd/0x1a7
>                          [<ffffffff8111f3b0>] do_kern_mount+0x4d/0xed
>                          [<ffffffff8113668d>] do_mount+0x74e/0x7c5
>                          [<ffffffff8113678c>] sys_mount+0x88/0xc2
>                          [<ffffffff81002ddb>] system_call_fastpath+0x16/0x1b
>   }
>   ... key      at: [<ffffffff82924fb8>] __key.40112+0x0/0x8
>   ... acquired at:
>    [<ffffffff81076a3d>] lock_acquire+0x11d/0x143
>    [<ffffffff814c6abc>] down_read+0x4c/0x91
>    [<ffffffff811cb48a>] find_free_extent+0x2c4/0xa86
>    [<ffffffff811cbd00>] btrfs_reserve_extent+0xb4/0x142
>    [<ffffffff811cbef5>] btrfs_alloc_free_block+0x167/0x2b2
>    [<ffffffff811be610>] __btrfs_cow_block+0x103/0x346
>    [<ffffffff811bedb8>] btrfs_cow_block+0x101/0x110
>    [<ffffffff811c05d8>] btrfs_search_slot+0x143/0x513
>    [<ffffffff811cf58b>] btrfs_lookup_inode+0x2f/0x8f
>    [<ffffffff812123e5>] btrfs_update_delayed_inode+0x75/0x135
>    [<ffffffff8121306e>] btrfs_async_run_delayed_node_done+0xd5/0x194
>    [<ffffffff811fb48e>] worker_loop+0x198/0x4dd
>    [<ffffffff81061a60>] kthread+0x9d/0xa5
>    [<ffffffff81003c14>] kernel_thread_helper+0x4/0x10
> 
> -> (&delayed_node->mutex){+.+.-.} ops: 8932 {
>    HARDIRQ-ON-W at:
>                         [<ffffffff81075ec0>] __lock_acquire+0x346/0xda6
>                         [<ffffffff81076a3d>] lock_acquire+0x11d/0x143
>                         [<ffffffff814c6291>] __mutex_lock_common+0x5a/0x444
>                         [<ffffffff814c6730>] mutex_lock_nested+0x39/0x3e
>                         [<ffffffff81211fb4>] btrfs_delayed_update_inode+0x45/0x101
>                         [<ffffffff811dc5a3>] btrfs_update_inode+0x2e/0x129
>                         [<ffffffff811e0c9a>] btrfs_truncate+0x43d/0x477
>                         [<ffffffff810dfb22>] vmtruncate+0x44/0x52
>                         [<ffffffff811e0ed6>] btrfs_setattr+0x202/0x253
>                         [<ffffffff8113201e>] notify_change+0x1a2/0x29d
>                         [<ffffffff8111bf08>] do_truncate+0x6c/0x89
>                         [<ffffffff81127a77>] do_last+0x579/0x57e
>                         [<ffffffff81129502>] do_filp_open+0x215/0x5ae
>                         [<ffffffff8111aec0>] do_sys_open+0x60/0xfc
>                         [<ffffffff8111af8f>] sys_open+0x20/0x22
>                         [<ffffffff81002ddb>] system_call_fastpath+0x16/0x1b
>    SOFTIRQ-ON-W at:
>                         [<ffffffff81075ee1>] __lock_acquire+0x367/0xda6
>                         [<ffffffff81076a3d>] lock_acquire+0x11d/0x143
>                         [<ffffffff814c6291>] __mutex_lock_common+0x5a/0x444
>                         [<ffffffff814c6730>] mutex_lock_nested+0x39/0x3e
>                         [<ffffffff81211fb4>] btrfs_delayed_update_inode+0x45/0x101
>                         [<ffffffff811dc5a3>] btrfs_update_inode+0x2e/0x129
>                         [<ffffffff811e0c9a>] btrfs_truncate+0x43d/0x477
>                         [<ffffffff810dfb22>] vmtruncate+0x44/0x52
>                         [<ffffffff811e0ed6>] btrfs_setattr+0x202/0x253
>                         [<ffffffff8113201e>] notify_change+0x1a2/0x29d
>                         [<ffffffff8111bf08>] do_truncate+0x6c/0x89
>                         [<ffffffff81127a77>] do_last+0x579/0x57e
>                         [<ffffffff81129502>] do_filp_open+0x215/0x5ae
>                         [<ffffffff8111aec0>] do_sys_open+0x60/0xfc
>                         [<ffffffff8111af8f>] sys_open+0x20/0x22
>                         [<ffffffff81002ddb>] system_call_fastpath+0x16/0x1b
>    IN-RECLAIM_FS-W at:
>                            [<ffffffff81075f1f>] __lock_acquire+0x3a5/0xda6
>                            [<ffffffff81076a3d>] lock_acquire+0x11d/0x143
>                            [<ffffffff814c6291>] __mutex_lock_common+0x5a/0x444
>                            [<ffffffff814c6730>] mutex_lock_nested+0x39/0x3e
>                            [<ffffffff812131f7>] btrfs_remove_delayed_node+0x3e/0xd2
>                            [<ffffffff811d77aa>] btrfs_destroy_inode+0x2ae/0x2d4
>                            [<ffffffff81130dc1>] destroy_inode+0x2f/0x45
>                            [<ffffffff811312ca>] dispose_list+0xaa/0xdf
>                            [<ffffffff81131866>] shrink_icache_memory+0x1e3/0x213
>                            [<ffffffff810e24cd>] shrink_slab+0xe0/0x164
>                            [<ffffffff810e4619>] balance_pgdat+0x2e8/0x50b
>                            [<ffffffff810e4bbc>] kswapd+0x380/0x3c0
>                            [<ffffffff81061a60>] kthread+0x9d/0xa5
>                            [<ffffffff81003c14>] kernel_thread_helper+0x4/0x10
>    INITIAL USE at:
>                        [<ffffffff81075f37>] __lock_acquire+0x3bd/0xda6
>                        [<ffffffff81076a3d>] lock_acquire+0x11d/0x143
>                        [<ffffffff814c6291>] __mutex_lock_common+0x5a/0x444
>                        [<ffffffff814c6730>] mutex_lock_nested+0x39/0x3e
>                        [<ffffffff81211fb4>] btrfs_delayed_update_inode+0x45/0x101
>                        [<ffffffff811dc5a3>] btrfs_update_inode+0x2e/0x129
>                        [<ffffffff811e0c9a>] btrfs_truncate+0x43d/0x477
>                        [<ffffffff810dfb22>] vmtruncate+0x44/0x52
>                        [<ffffffff811e0ed6>] btrfs_setattr+0x202/0x253
>                        [<ffffffff8113201e>] notify_change+0x1a2/0x29d
>                        [<ffffffff8111bf08>] do_truncate+0x6c/0x89
>                        [<ffffffff81127a77>] do_last+0x579/0x57e
>                        [<ffffffff81129502>] do_filp_open+0x215/0x5ae
>                        [<ffffffff8111aec0>] do_sys_open+0x60/0xfc
>                        [<ffffffff8111af8f>] sys_open+0x20/0x22
>                        [<ffffffff81002ddb>] system_call_fastpath+0x16/0x1b
>  }
>  ... key      at: [<ffffffff82925450>] __key.31289+0x0/0x8
>  ... acquired at:
>    [<ffffffff810749bf>] check_usage_forwards+0x71/0x7e
>    [<ffffffff81074162>] mark_lock+0x18c/0x26a
>    [<ffffffff81075f1f>] __lock_acquire+0x3a5/0xda6
>    [<ffffffff81076a3d>] lock_acquire+0x11d/0x143
>    [<ffffffff814c6291>] __mutex_lock_common+0x5a/0x444
>    [<ffffffff814c6730>] mutex_lock_nested+0x39/0x3e
>    [<ffffffff812131f7>] btrfs_remove_delayed_node+0x3e/0xd2
>    [<ffffffff811d77aa>] btrfs_destroy_inode+0x2ae/0x2d4
>    [<ffffffff81130dc1>] destroy_inode+0x2f/0x45
>    [<ffffffff811312ca>] dispose_list+0xaa/0xdf
>    [<ffffffff81131866>] shrink_icache_memory+0x1e3/0x213
>    [<ffffffff810e24cd>] shrink_slab+0xe0/0x164
>    [<ffffffff810e4619>] balance_pgdat+0x2e8/0x50b
>    [<ffffffff810e4bbc>] kswapd+0x380/0x3c0
>    [<ffffffff81061a60>] kthread+0x9d/0xa5
>    [<ffffffff81003c14>] kernel_thread_helper+0x4/0x10
> 
> 
> stack backtrace:
> Pid: 49, comm: kswapd0 Not tainted 2.6.36-v5+ #2
> Call Trace:
>  [<ffffffff8107493d>] print_irq_inversion_bug+0x124/0x135
>  [<ffffffff810749bf>] check_usage_forwards+0x71/0x7e
>  [<ffffffff8107494e>] ? check_usage_forwards+0x0/0x7e
>  [<ffffffff81074162>] mark_lock+0x18c/0x26a
>  [<ffffffff81075f1f>] __lock_acquire+0x3a5/0xda6
>  [<ffffffff81076911>] ? __lock_acquire+0xd97/0xda6
>  [<ffffffff812131f7>] ? btrfs_remove_delayed_node+0x3e/0xd2
>  [<ffffffff81076a3d>] lock_acquire+0x11d/0x143
>  [<ffffffff812131f7>] ? btrfs_remove_delayed_node+0x3e/0xd2
>  [<ffffffff812131f7>] ? btrfs_remove_delayed_node+0x3e/0xd2
>  [<ffffffff814c6291>] __mutex_lock_common+0x5a/0x444
>  [<ffffffff812131f7>] ? btrfs_remove_delayed_node+0x3e/0xd2
>  [<ffffffff81074604>] ? trace_hardirqs_on+0xd/0xf
>  [<ffffffff814c6730>] mutex_lock_nested+0x39/0x3e
>  [<ffffffff812131f7>] btrfs_remove_delayed_node+0x3e/0xd2
>  [<ffffffff811d77aa>] btrfs_destroy_inode+0x2ae/0x2d4
>  [<ffffffff81130dc1>] destroy_inode+0x2f/0x45
>  [<ffffffff811312ca>] dispose_list+0xaa/0xdf
>  [<ffffffff81131866>] shrink_icache_memory+0x1e3/0x213
>  [<ffffffff810e24cd>] shrink_slab+0xe0/0x164
>  [<ffffffff810e4619>] balance_pgdat+0x2e8/0x50b
>  [<ffffffff810e4bbc>] kswapd+0x380/0x3c0
>  [<ffffffff81062032>] ? autoremove_wake_function+0x0/0x39
>  [<ffffffff810e483c>] ? kswapd+0x0/0x3c0
>  [<ffffffff81061a60>] kthread+0x9d/0xa5
>  [<ffffffff81003c14>] kernel_thread_helper+0x4/0x10
>  [<ffffffff81038cd9>] ? finish_task_switch+0x70/0xb9
>  [<ffffffff814c8880>] ? restore_args+0x0/0x30
>  [<ffffffff810619c3>] ? kthread+0x0/0xa5
>  [<ffffffff81003c10>] ? kernel_thread_helper+0x0/0x10
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


  reply	other threads:[~2011-03-27  7:00 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-24 11:41 [PATCH V5 2/2] btrfs: implement delayed inode items operation Miao Xie
2011-03-24 23:55 ` David Sterba
2011-03-26 23:58 ` Chris Mason
2011-03-27  5:30 ` Itaru Kitayama
2011-03-27  7:00   ` Miao Xie [this message]
2011-03-27 11:09     ` Itaru Kitayama
2011-03-27 11:44       ` Miao Xie
2011-03-27 11:42         ` Chris Mason

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4D8EE070.6000700@cn.fujitsu.com \
    --to=miaox@cn.fujitsu.com \
    --cc=chris.mason@oracle.com \
    --cc=dave@jikos.cz \
    --cc=kitayama@cl.bb4u.ne.jp \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=t-itoh@jp.fujitsu.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).