From mboxrd@z Thu Jan 1 00:00:00 1970 From: Liu Bo Subject: Re: [RFC PATCH 0/3] apply the Probabilistic Skiplist on btrfs Date: Fri, 06 Jan 2012 18:14:19 +0800 Message-ID: <4F06C97B.1030301@cn.fujitsu.com> References: <1325755822-13147-1-git-send-email-liubo2009@cn.fujitsu.com> <20120105235148.GQ7322@twin.jikos.cz> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Cc: linux-btrfs@vger.kernel.org, chris.mason@oracle.com, josef@redhat.com To: dave@jikos.cz Return-path: In-Reply-To: <20120105235148.GQ7322@twin.jikos.cz> List-ID: On 01/06/2012 07:51 AM, David Sterba wrote: > Hi, I've let it run through xfstests and ended at 091, patches applied > on top of 3.2, mount options > "compress-force=lzo,discard,inode_cache,space_cache,autodefrag" > fresh mkfs with defaults. > Hi David, Thanks a lot for your work! I also find this and fix it. I will send V2 patchset after it goes through xfstests. thanks, liubo > [ 1081.623819] btrfs: force lzo compression > [ 1081.629166] btrfs: enabling inode map caching > [ 1081.634853] btrfs: enabling auto defrag > [ 1081.638569] btrfs: disk space caching is enabled > [ 1119.693957] ------------[ cut here ]------------ > [ 1119.697876] kernel BUG at fs/btrfs/file.c:530! > [ 1119.697876] invalid opcode: 0000 [#1] SMP > [ 1119.697876] CPU 1 > [ 1119.697876] Modules linked in: loop btrfs aoe > [ 1119.697876] > [ 1119.697876] Pid: 25819, comm: fsx Not tainted 3.2.0-default+ #95 Intel Corporation Santa Rosa platform/Matanzas > [ 1119.697876] RIP: 0010:[] [] btrfs_drop_extent_cache+0x3f8/0x400 [btrfs] > [ 1119.697876] RSP: 0018:ffff88000c47f698 EFLAGS: 00010282 > [ 1119.697876] RAX: 00000000ffffffef RBX: ffff88006ff01e48 RCX: 0000000000026fff > [ 1119.697876] RDX: ffff88006ed5d830 RSI: 0000000000022000 RDI: 0000000000000000 > [ 1119.697876] RBP: ffff88000c47f738 R08: 0000000000000000 R09: 0000000000022000 > [ 1119.697876] R10: fffffffffffffffe R11: 0000000000026fff R12: ffff88001ada9e48 > [ 1119.697876] R13: 000000000001f000 R14: 0000000000000000 R15: ffff88000c47f708 > [ 1119.697876] FS: 00007f262e570700(0000) GS:ffff88007de00000(0000) knlGS:0000000000000000 > [ 1119.697876] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b > [ 1119.697876] CR2: 00007fc4364fc000 CR3: 0000000079435000 CR4: 00000000000006e0 > [ 1119.697876] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 > [ 1119.697876] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 > [ 1119.697876] Process fsx (pid: 25819, threadinfo ffff88000c47e000, task ffff880063640700) > [ 1119.697876] Stack: > [ 1119.697876] ffff880000000000 ffffffff81092040 ffff88000c47f6f0 0100000000000246 > [ 1119.697876] 0000000000000001 0000000000000000 0000000000003000 ffff88006e5c44f0 > [ 1119.697876] ffff88006e5c43e0 0000000000000000 0000000000000000 0000000000000000 > [ 1119.697876] Call Trace: > [ 1119.697876] [] ? trace_hardirqs_on_caller+0x20/0x1d0 > [ 1119.697876] [] ? csum_exist_in_range+0xa0/0xa0 [btrfs] > [ 1119.697876] [] cow_file_range+0x136/0x3e0 [btrfs] > [ 1119.697876] [] ? trace_hardirqs_on+0xd/0x10 > [ 1119.697876] [] run_delalloc_nocow+0x367/0x820 [btrfs] > [ 1119.697876] [] ? do_raw_spin_unlock+0x5e/0xb0 > [ 1119.697876] [] run_delalloc_range+0x369/0x370 [btrfs] > [ 1119.697876] [] __extent_writepage+0x5f0/0x750 [btrfs] > [ 1119.697876] [] ? radix_tree_gang_lookup_tag_slot+0x8d/0xd0 > [ 1119.697876] [] ? find_get_pages_tag+0x111/0x1b0 > [ 1119.697876] [] extent_write_cache_pages.clone.0+0x272/0x3f0 [btrfs] > [ 1119.697876] [] ? do_raw_spin_unlock+0x5e/0xb0 > [ 1119.697876] [] ? kfree+0xd4/0x180 > [ 1119.697876] [] ? trace_hardirqs_on_caller+0x20/0x1d0 > [ 1119.697876] [] extent_writepages+0x46/0x60 [btrfs] > [ 1119.697876] [] ? acls_after_inode_item+0xd0/0xd0 [btrfs] > [ 1119.697876] [] btrfs_writepages+0x27/0x30 [btrfs] > [ 1120.018734] [] do_writepages+0x24/0x40 > [ 1120.018734] [] __filemap_fdatawrite_range+0x5b/0x60 > [ 1120.018734] [] filemap_write_and_wait_range+0x5a/0x80 > [ 1120.018734] [] btrfs_file_aio_write+0x4da/0x560 [btrfs] > [ 1120.018734] [] do_sync_write+0xe2/0x120 > [ 1120.018734] [] ? __mutex_unlock_slowpath+0xdd/0x180 > [ 1120.018734] [] ? mutex_unlock+0xe/0x10 > [ 1120.018734] [] ? btrfs_file_llseek+0x6f/0x390 [btrfs] > [ 1120.018734] [] vfs_write+0xce/0x190 > [ 1120.018734] [] sys_write+0x54/0xa0 > [ 1120.018734] [] system_call_fastpath+0x16/0x1b > [ 1120.018734] Code: 5e 41 5f c9 c3 0f 0b be bf 01 00 00 48 c7 c7 e6 02 09 a0 48 89 95 68 ff ff ff e8 e4 a2 00 e1 48 8b 95 68 ff ff ff e9 3c fc ff ff <0f> 0b 0f 0b 0f 1f 40 00 55 48 89 e5 41 57 41 56 41 55 41 54 53 > [ 1120.018734] RIP [] btrfs_drop_extent_cache+0x3f8/0x400 [btrfs] > [ 1120.018734] RSP > [ 1120.047841] ---[ end trace ca0f509767e0195d ]--- > > xfstests/091 output: > > 091 57s ... [19:47:50] [19:48:28] [failed, exit status 1] - output mismatch (see 091.out.bad) > --- 091.out 2011-11-01 10:31:12.000000000 +0100 > +++ 091.out.bad 2012-01-05 19:48:28.000000000 +0100 > @@ -5,3 +5,41 @@ > fsx -N 10000 -o 8192 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W > fsx -N 10000 -o 32768 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W > fsx -N 10000 -o 128000 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -W > +./091: line 46: 25819 Segmentation fault $here/ltp/fsx $args $TEST_DIR/junk >> $seq.full 2>&1 > +fsx -N 10000 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W > +mapped writes DISABLED > +truncating to largest ever: 0x12a00 > +truncating to largest ever: 0x75400 > +fallocating to largest ever: 0x7a120 > +All operations completed A-OK! > +fsx -N 10000 -o 8192 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W > +mapped writes DISABLED > +truncating to largest ever: 0x12a00 > +truncating to largest ever: 0x75400 > +fallocating to largest ever: 0x79cbf > +fallocating to largest ever: 0x7a120 > +All operations completed A-OK! > +fsx -N 10000 -o 32768 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W > +mapped writes DISABLED > +truncating to largest ever: 0x12a00 > +truncating to largest ever: 0x75400 > +fallocating to largest ever: 0x7a120 > +All operations completed A-OK! > +fsx -N 10000 -o 8192 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W > +mapped writes DISABLED > +truncating to largest ever: 0x12a00 > +truncating to largest ever: 0x75400 > +fallocating to largest ever: 0x79cbf > +fallocating to largest ever: 0x7a120 > +All operations completed A-OK! > +fsx -N 10000 -o 32768 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W > +mapped writes DISABLED > +truncating to largest ever: 0x12a00 > +truncating to largest ever: 0x75400 > +fallocating to largest ever: 0x7a120 > +All operations completed A-OK! > +fsx -N 10000 -o 128000 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -W > +mapped writes DISABLED > +truncating to largest ever: 0x12a00 > +truncating to largest ever: 0x75400 > +fallocating to largest ever: 0x7a120 > > Crash site(fs/btrfs/file.c:530): > > 518 if (compressed) { > 519 split->block_len = em->block_len; > 520 split->block_start = em->block_start; > 521 split->orig_start = em->orig_start; > 522 } else { > 523 split->block_len = split->len; > 524 split->block_start = em->block_start + diff; > 525 split->orig_start = split->start; > 526 } > 527 > 528 ret = add_extent_mapping(em_tree, split, &to_free[2], > 529 &to_free[3]); > 530 BUG_ON(ret); > 531 free_extent_map(split); > 532 split = NULL; > > ret seems to be RAX = 0xEF == -17 == -EEXIST . > > > david > -- > 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 >