Linux Btrfs filesystem development
 help / color / mirror / Atom feed
From: Jan Schmidt <list.btrfs@jan-o-sch.net>
To: Josef Bacik <jbacik@fusionio.com>
Cc: linux-btrfs@vger.kernel.org, daniel@quora.org,
	clmason@fusionio.com, sensille@gmx.net
Subject: Re: [PATCH] Btrfs: allow delayed refs to be merged
Date: Wed, 11 Jul 2012 15:19:29 +0200	[thread overview]
Message-ID: <4FFD7D61.8070502@jan-o-sch.net> (raw)
In-Reply-To: <1341946331-18058-1-git-send-email-jbacik@fusionio.com>

Hi Josef,

I hit a warning with this patch on top of the current cmason/for-linus
branch. Takes about 15 minutes to produce when running xfstest 278 in
a loop and, in another shell, doing fsstress on the same volume to
force metadata modifications.

fs/btrfs/extent-tree.c
...
5032         } else if (ret == -ENOENT) {
5033                 btrfs_print_leaf(extent_root, path->nodes[0]);
5034                 WARN_ON(1);
5035                 printk(KERN_ERR "btrfs unable to find ref byte nr %llu "
5036                        "parent %llu root %llu  owner %llu offset %llu\n",
5037                        (unsigned long long)bytenr,
5038                        (unsigned long long)parent,
5039                        (unsigned long long)root_objectid,
5040                        (unsigned long long)owner_objectid,
5041                        (unsigned long long)owner_offset);
5042         } else {

<6>[469120.918975] leaf 133349376 total ptrs 36 free space 1187
<6>[469120.918978]      item 0 key (1070149632 a8 53248) itemoff 3942 itemsize 53
<6>[469120.918981]              extent refs 1 gen 358 flags 1
<6>[469120.918983]              extent data backref root 5 objectid 40286 offset 0 count 1
<6>[469120.918986]      item 1 key (1070202880 a8 53248) itemoff 3889 itemsize 53
<6>[469120.918988]              extent refs 1 gen 358 flags 1
<6>[469120.918989]              extent data backref root 5 objectid 40287 offset 0 count 1
<6>[469120.918992]      item 2 key (1070256128 a8 53248) itemoff 3836 itemsize 53
<6>[469120.918994]              extent refs 1 gen 358 flags 1
<6>[469120.918996]              extent data backref root 5 objectid 40288 offset 0 count 1
<6>[469120.918998]      item 3 key (1070309376 a8 53248) itemoff 3783 itemsize 53
<6>[469120.919000]              extent refs 1 gen 358 flags 1
<6>[469120.919002]              extent data backref root 5 objectid 40289 offset 0 count 1
<6>[469120.919004]      item 4 key (1070362624 a8 53248) itemoff 3730 itemsize 53
<6>[469120.919006]              extent refs 1 gen 358 flags 1
<6>[469120.919008]              extent data backref root 5 objectid 40290 offset 0 count 1
<6>[469120.919010]      item 5 key (1070415872 a8 53248) itemoff 3677 itemsize 53
<6>[469120.919012]              extent refs 1 gen 358 flags 1
<6>[469120.919014]              extent data backref root 5 objectid 40291 offset 0 count 1
<6>[469120.919016]      item 6 key (1070469120 a8 53248) itemoff 3624 itemsize 53
<6>[469120.919018]              extent refs 1 gen 358 flags 1
<6>[469120.919020]              extent data backref root 5 objectid 40292 offset 0 count 1
<6>[469120.919022]      item 7 key (1070522368 a8 53248) itemoff 3571 itemsize 53
<6>[469120.919024]              extent refs 1 gen 358 flags 1
<6>[469120.919026]              extent data backref root 5 objectid 40293 offset 0 count 1
<6>[469120.919028]      item 8 key (1070575616 a8 53248) itemoff 3518 itemsize 53
<6>[469120.919030]              extent refs 1 gen 358 flags 1
<6>[469120.919032]              extent data backref root 5 objectid 40294 offset 0 count 1
<6>[469120.919034]      item 9 key (1070628864 a8 53248) itemoff 3465 itemsize 53
<6>[469120.919036]              extent refs 1 gen 358 flags 1
<6>[469120.919038]              extent data backref root 5 objectid 40295 offset 0 count 1
<6>[469120.919040]      item 10 key (1070682112 a8 53248) itemoff 3412 itemsize 53
<6>[469120.919042]              extent refs 1 gen 358 flags 1
<6>[469120.919044]              extent data backref root 5 objectid 40296 offset 0 count 1
<6>[469120.919046]      item 11 key (1070735360 a8 53248) itemoff 3359 itemsize 53
<6>[469120.919048]              extent refs 1 gen 358 flags 1
<6>[469120.919050]              extent data backref root 5 objectid 40297 offset 0 count 1
<6>[469120.919052]      item 12 key (1071714304 a8 32768) itemoff 3306 itemsize 53
<6>[469120.919054]              extent refs 1 gen 791704 flags 1
<6>[469120.919056]              extent data backref root 5 objectid 14760797 offset 475136 count 1
<6>[469120.919059]      item 13 key (1071755264 a8 49152) itemoff 3253 itemsize 53
<6>[469120.919061]              extent refs 1 gen 791702 flags 1
<6>[469120.919062]              extent data backref root 5 objectid 14760670 offset 651264 count 1
<6>[469120.919065]      item 14 key (1072099328 a8 258048) itemoff 3200 itemsize 53
<6>[469120.919067]              extent refs 1 gen 791694 flags 1
<6>[469120.919069]              extent data backref root 5 objectid 14760709 offset 548864 count 1
<6>[469120.919071]      item 15 key (1072410624 a8 94208) itemoff 3147 itemsize 53
<6>[469120.919073]              extent refs 1 gen 791690 flags 1
<6>[469120.919075]              extent data backref root 5 objectid 14760670 offset 4096 count 1
<6>[469120.919077]      item 16 key (1072635904 a8 86016) itemoff 3094 itemsize 53
<6>[469120.919079]              extent refs 1 gen 791697 flags 1
<6>[469120.919081]              extent data backref root 5 objectid 14760652 offset 864256 count 1
<6>[469120.919084]      item 17 key (1072734208 a8 102400) itemoff 3041 itemsize 53
<6>[469120.919086]              extent refs 1 gen 791690 flags 1
<6>[469120.919088]              extent data backref root 5 objectid 14760665 offset 937984 count 1
<6>[469120.919090]      item 18 key (1072836608 a8 163840) itemoff 2988 itemsize 53
<6>[469120.919092]              extent refs 1 gen 791697 flags 1
<6>[469120.919094]              extent data backref root 5 objectid 14760641 offset 339968 count 1
<6>[469120.919096]      item 19 key (1073119232 a8 106496) itemoff 2935 itemsize 53
<6>[469120.919098]              extent refs 1 gen 791697 flags 1
<6>[469120.919100]              extent data backref root 5 objectid 14760665 offset 688128 count 1
<6>[469120.919103]      item 20 key (1073225728 a8 45056) itemoff 2882 itemsize 53
<6>[469120.919104]              extent refs 1 gen 791699 flags 1
<6>[469120.919106]              extent data backref root 5 objectid 14760674 offset 909312 count 1
<6>[469120.919109]      item 21 key (1073270784 a8 69632) itemoff 2829 itemsize 53
<6>[469120.919111]              extent refs 1 gen 791700 flags 1
<6>[469120.919113]              extent data backref root 5 objectid 14760665 offset 3403776 count 1
<6>[469120.919115]      item 22 key (1073356800 a8 73728) itemoff 2776 itemsize 53
<6>[469120.919117]              extent refs 1 gen 791699 flags 1
<6>[469120.919119]              extent data backref root 5 objectid 14760683 offset 1835008 count 1
<6>[469120.919121]      item 23 key (1073430528 a8 57344) itemoff 2723 itemsize 53
<6>[469120.919123]              extent refs 1 gen 791699 flags 1
<6>[469120.919125]              extent data backref root 5 objectid 14760713 offset 266240 count 1
<6>[469120.919128]      item 24 key (1073487872 a8 65536) itemoff 2670 itemsize 53
<6>[469120.919130]              extent refs 1 gen 791700 flags 1
<6>[469120.919131]              extent data backref root 1 objectid 260 offset 0 count 1
<6>[469120.919134]      item 25 key (1073553408 a8 40960) itemoff 2617 itemsize 53
<6>[469120.919136]              extent refs 1 gen 791701 flags 1
<6>[469120.919138]              extent data backref root 5 objectid 14760660 offset 1241088 count 1
<6>[469120.919140]      item 26 key (1073602560 a8 131072) itemoff 2564 itemsize 53
<6>[469120.919142]              extent refs 1 gen 791691 flags 1
<6>[469120.919144]              extent data backref root 5 objectid 14760686 offset 212992 count 1
<6>[469120.919146]      item 27 key (1073733632 a8 180224) itemoff 2511 itemsize 53
<6>[469120.919148]              extent refs 1 gen 791691 flags 1
<6>[469120.919150]              extent data backref root 5 objectid 14760686 offset 32768 count 1
<6>[469120.919153]      item 28 key (1073913856 a8 245760) itemoff 2458 itemsize 53
<6>[469120.919155]              extent refs 3 gen 791691 flags 1
<6>[469120.919157]              extent data backref root 5 objectid 14760686 offset 344064 count 3
<6>[469120.919159]      item 29 key (1074159616 a8 131072) itemoff 2405 itemsize 53
<6>[469120.919161]              extent refs 1 gen 791691 flags 1
<6>[469120.919163]              extent data backref root 5 objectid 14760655 offset 147456 count 1
<6>[469120.919165]      item 30 key (1074290688 a8 724992) itemoff 2352 itemsize 53
<6>[469120.919167]              extent refs 1 gen 791693 flags 1
<6>[469120.919169]              extent data backref root 5 objectid 14760673 offset 2031616 count 1
<6>[469120.919172]      item 31 key (1075015680 a8 270336) itemoff 2299 itemsize 53
<6>[469120.919174]              extent refs 1 gen 791704 flags 1
<6>[469120.919175]              extent data backref root 5 objectid 14760728 offset 413696 count 1
<6>[469120.919178]      item 32 key (1075625984 a8 126976) itemoff 2246 itemsize 53
<6>[469120.919180]              extent refs 1 gen 791704 flags 1
<6>[469120.919182]              extent data backref root 5 objectid 14760670 offset 1712128 count 1
<6>[469120.919184]      item 33 key (1075867648 a8 61440) itemoff 2193 itemsize 53
<6>[469120.919186]              extent refs 1 gen 791704 flags 1
<6>[469120.919188]              extent data backref root 5 objectid 14760743 offset 512000 count 1
<6>[469120.919190]      item 34 key (1075953664 a8 131072) itemoff 2140 itemsize 53
<6>[469120.919192]              extent refs 1 gen 791698 flags 1
<6>[469120.919194]              extent data backref root 5 objectid 14760673 offset 1437696 count 1
<6>[469120.919197]      item 35 key (1076084736 a8 118784) itemoff 2087 itemsize 53
<6>[469120.919199]              extent refs 1 gen 791704 flags 1
<6>[469120.919201]              extent data backref root 5 objectid 14760683 offset 561152 count 1
<4>[469120.919202] ------------[ cut here ]------------
<4>[469120.919216] WARNING: at fs/btrfs/extent-tree.c:5034 __btrfs_free_extent+0x675/0x740 [btrfs]()
<4>[469120.919218] Hardware name: X8SIL
<4>[469120.919220] Modules linked in: btrfs mpt2sas scsi_transport_sas raid_class [last unloaded: btrfs]
<4>[469120.919228] Pid: 31351, comm: rm Tainted: G        W    3.4.0+ #25
<4>[469120.919230] Call Trace:
<4>[469120.919235]  [<ffffffff8108101a>] warn_slowpath_common+0x7a/0xb0
<4>[469120.919238]  [<ffffffff81081065>] warn_slowpath_null+0x15/0x20
<4>[469120.919249]  [<ffffffffa0136bc5>] __btrfs_free_extent+0x675/0x740 [btrfs]
<4>[469120.919260]  [<ffffffffa01374fd>] run_clustered_refs+0x86d/0x9d0 [btrfs]
<4>[469120.919270]  [<ffffffffa0137802>] btrfs_run_delayed_refs+0x1a2/0x500 [btrfs]
<4>[469120.919283]  [<ffffffffa01485e5>] __btrfs_end_transaction+0xa5/0x270 [btrfs]
<4>[469120.919295]  [<ffffffffa0148810>] btrfs_end_transaction+0x10/0x20 [btrfs]
<4>[469120.919308]  [<ffffffffa014ed14>] btrfs_evict_inode+0x254/0x300 [btrfs]
<4>[469120.919312]  [<ffffffff811ab34a>] evict+0x9a/0x190
<4>[469120.919315]  [<ffffffff811ab54c>] iput+0x10c/0x200
<4>[469120.919318]  [<ffffffff811a1347>] do_unlinkat+0x167/0x1d0
<4>[469120.919322]  [<ffffffff811cef5e>] ? fsnotify_find_inode_mark+0x3e/0x50
<4>[469120.919326]  [<ffffffff8190eac7>] ? sysret_check+0x1b/0x56
<4>[469120.919330]  [<ffffffff810d9aa5>] ? trace_hardirqs_on_caller+0x105/0x190
<4>[469120.919334]  [<ffffffff8142628e>] ? trace_hardirqs_on_thunk+0x3a/0x3f
<4>[469120.919337]  [<ffffffff811a152d>] sys_unlinkat+0x1d/0x40
<4>[469120.919340]  [<ffffffff8190eaa2>] system_call_fastpath+0x16/0x1b
<4>[469120.919342] ---[ end trace 1dfd6883330a5208 ]---
<3>[469120.919345] btrfs unable to find ref byte nr 1072283648 parent 0 root 5  owner 14760652 offset 819200

-Jan

  parent reply	other threads:[~2012-07-11 13:19 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-07-10 18:52 [PATCH] Btrfs: allow delayed refs to be merged Josef Bacik
2012-07-10 19:39 ` Arne Jansen
2012-07-10 19:52   ` Josef Bacik
2012-07-11 13:19 ` Jan Schmidt [this message]
2012-07-12 17:05   ` Josef Bacik
2012-07-12 18:41     ` Jan Schmidt

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=4FFD7D61.8070502@jan-o-sch.net \
    --to=list.btrfs@jan-o-sch.net \
    --cc=clmason@fusionio.com \
    --cc=daniel@quora.org \
    --cc=jbacik@fusionio.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=sensille@gmx.net \
    /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