On Mon, Jun 20, 2011 at 08:41:39AM +0900, Tsutomu Itoh wrote: > (2011/06/19 13:34), Tsutomu Itoh wrote: > >> I've fixed this up by moving the delayed metadata run down into the > >> snapshot creation code, please take a look. If nobody objects I'll have > >> this in the pull I send to Linus this weekend. > > > > > I ran my balance test script about 12 hours, any problem didn't occur. > > But, following panics still occur if inode_cache is specified. > > [75164.963860] btrfs: relocating block group 18551406592 flags 18 > [75165.565282] btrfs: relocating block group 18282971136 flags 20 > [75165.883577] ------------[ cut here ]------------ > [75165.883779] kernel BUG at fs/btrfs/relocation.c:2502! > [75165.883992] invalid opcode: 0000 [#1] SMP > [75165.884002] CPU 0 > [75165.884002] Modules linked in: autofs4 sunrpc 8021q garp stp llc > cpufreq_ondemand acpi_cpufreq freq_table mperf ipv6 btrfs zlib_deflate crc32c > libcrc32c ext3 jbd dm_mirror dm_region_hash dm_log dm_mod kvm uinput ppdev > parport_pc parport sg pcspkr i2c_i801 i2c_core iTCO_wdt iTCO_vendor_support > tg3 shpchp pci_hotplug i3000_edac edac_core ext4 mbcache jbd2 crc16 sd_mod > crc_t10dif sr_mod cdrom megaraid_sas pata_acpi ata_generic ata_piix libata > scsi_mod floppy [last unloaded: microcode] > [75165.884002] > [75165.884002] Pid: 18615, comm: btrfs Not tainted 3.0.0-rc3test #1 > FUJITSU-SV PRIMERGY /D2399 > [75165.884002] RIP: 0010:[<ffffffffa02dede3>] [<ffffffffa02dede3>] > do_relocation+0x163/0x44b [btrfs] > [75165.884002] RSP: 0018:ffff8801026f7a08 EFLAGS: 00010202 > [75165.884002] RAX: 0000000000000001 RBX: ffff8801949e7c00 RCX: > 0000000000000002 > [75165.884002] RDX: 0000000000000001 RSI: 0000000000000001 RDI: > 0000000000000000 > [75165.884002] RBP: ffff8801026f7ad8 R08: 00000000000006c7 R09: > ffff8801026f78f0 > [75165.884002] R10: ffff88009f9d7800 R11: 0000000442149000 R12: > ffff880037c99180 > [75165.884002] R13: ffff880152695f30 R14: ffff88009f9d4800 R15: > ffff88013cfdbf78 > [75165.884002] FS: 00007f490c045740(0000) GS:ffff88019fc00000(0000) > knlGS:0000000000000000 > [75165.884002] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b > [75165.884002] CR2: 00000033cfea6a60 CR3: 0000000100d47000 CR4: > 00000000000006f0 > [75165.884002] DR0: 0000000000000000 DR1: 0000000000000000 DR2: > 0000000000000000 > [75165.884002] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: > 0000000000000400 > [75165.884002] Process btrfs (pid: 18615, threadinfo ffff8801026f6000, task > ffff880102060000) > [75165.884002] Stack: > [75165.884002] ffff88000516d000 ffff88009f9d7d80 00000001026f7a98 > ffff880037c99180 > [75165.884002] ffff880037c991c0 000000019f9d7820 ffff88011bf09ba0 > ffff88009f9d7800 > [75165.884002] ffff8801026f7ad8 ffff88011bf094c0 ffff88013cfdbf78 > 00ff88009f9d7800 > [75165.884002] Call Trace: > [75165.884002] [<ffffffffa02926ec>] ? block_rsv_add_bytes+0x24/0x4d [btrfs] > [75165.884002] [<ffffffffa02e137a>] relocate_tree_blocks+0x2fb/0x4a9 [btrfs] > [75165.884002] [<ffffffffa02de227>] ? add_tree_block+0xff/0x121 [btrfs] > [75165.884002] [<ffffffffa02e1b13>] relocate_block_group+0x214/0x4dc [btrfs] > [75165.884002] [<ffffffffa02e1f26>] btrfs_relocate_block_group+0x14b/0x285 > [btrfs] > [75165.884002] [<ffffffffa02c7183>] ? btrfs_relocate_chunk+0x4a4/0x50d > [btrfs] > [75165.884002] [<ffffffffa02c6d48>] btrfs_relocate_chunk+0x69/0x50d [btrfs] > [75165.884002] [<ffffffffa028b3f5>] ? btrfs_item_key_to_cpu+0x1a/0x36 [btrfs] > [75165.884002] [<ffffffffa02c0d0f>] ? read_extent_buffer+0xba/0xf6 [btrfs] > [75165.884002] [<ffffffffa02c561a>] ? btrfs_item_key_to_cpu+0x2a/0x46 [btrfs] > [75165.884002] [<ffffffffa02c77be>] btrfs_balance+0x1ca/0x219 [btrfs] > [75165.884002] [<ffffffffa02cfcbd>] btrfs_ioctl+0x922/0xc19 [btrfs] > [75165.884002] [<ffffffff810e88e4>] ? handle_mm_fault+0x233/0x24a > [75165.884002] [<ffffffff813a6be5>] ? do_page_fault+0x340/0x3b2 > [75165.884002] [<ffffffff8111d828>] do_vfs_ioctl+0x474/0x4c3 > [75165.884002] [<ffffffff810ffe41>] ? virt_to_head_page+0xe/0x31 > [75165.884002] [<ffffffff811010e8>] ? kmem_cache_free+0x20/0xae > [75165.884002] [<ffffffff8111d8cd>] sys_ioctl+0x56/0x79 > [75165.884002] [<ffffffff813aa302>] system_call_fastpath+0x16/0x1b > [75165.884002] Code: 00 00 48 8b 95 60 ff ff ff 45 31 c0 41 b9 01 00 00 00 4c > 89 e9 4c 89 f6 4c 89 ff e8 52 15 fb ff 83 f8 00 0f 8c e6 02 00 00 74 04 <0f> > 0b eb fe 48 8b 53 68 0f b6 43 70 48 85 d2 75 14 49 8b 54 c5 > [75165.884002] RIP [<ffffffffa02dede3>] do_relocation+0x163/0x44b [btrfs] > [75165.884002] RSP <ffff8801026f7a08> > > (gdb) l *do_relocation+0x163 > 0x58e07 is in do_relocation (fs/btrfs/relocation.c:2502). > 2497 ret = btrfs_search_slot(trans, root, key, > path, 0, 1); > 2498 if (ret < 0) { > 2499 err = ret; > 2500 break; > 2501 } > 2502 BUG_ON(ret > 0);
this translates btrfs_search_slot() result to 1600 * If the key isn't found, the path points to the slot where it should 1601 * be inserted, and 1 is returned. If there are other errors during the 1602 * search a negative error number is returned. ie. the key is not in the tree. If you can reproduce it reliably, add some printks about the key and path's ->search_commit_root, ->skip_locking, and ->leave_spinning which are accessed within btrfs_search_slot(). david -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html