Hi Chris, Your compilebench results are very interesting.
Here are my results with exactly the same benchmark: Btrfs: [r...@fc13 compilebench-0.6]# ./compilebench -D /mnt/btrfs -i 30 --makej using working directory /mnt/btrfs, 30 intial dirs 100 runs native unpatched native-0 222MB in 3.14 seconds (70.82 MB/s) native patched native-0 109MB in 0.69 seconds (158.94 MB/s) native patched compiled native-0 691MB in 1.86 seconds (371.83 MB/s) create dir kernel-0 222MB in 2.28 seconds (97.53 MB/s) create dir kernel-1 222MB in 3.45 seconds (64.46 MB/s) create dir kernel-2 222MB in 5.37 seconds (41.41 MB/s) create dir kernel-3 222MB in 3.37 seconds (65.99 MB/s) create dir kernel-4 222MB in 3.33 seconds (66.78 MB/s) create dir kernel-5 222MB in 3.56 seconds (62.46 MB/s) create dir kernel-6 222MB in 3.39 seconds (65.60 MB/s) create dir kernel-7 222MB in 3.76 seconds (59.14 MB/s) create dir kernel-8 222MB in 3.52 seconds (63.17 MB/s) create dir kernel-9 222MB in 3.62 seconds (61.43 MB/s) create dir kernel-10 222MB in 3.48 seconds (63.90 MB/s) create dir kernel-11 222MB in 3.32 seconds (66.98 MB/s) create dir kernel-12 222MB in 3.06 seconds (72.67 MB/s) create dir kernel-13 222MB in 2.64 seconds (84.23 MB/s) create dir kernel-14 222MB in 2.91 seconds (76.42 MB/s) create dir kernel-15 222MB in 3.25 seconds (68.42 MB/s) create dir kernel-16 222MB in 3.00 seconds (74.12 MB/s) create dir kernel-17 222MB in 3.14 seconds (70.82 MB/s) create dir kernel-18 222MB in 4.90 seconds (45.38 MB/s) create dir kernel-19 222MB in 3.14 seconds (70.82 MB/s) create dir kernel-20 222MB in 3.26 seconds (68.21 MB/s) create dir kernel-21 222MB in 3.10 seconds (71.73 MB/s) create dir kernel-22 222MB in 3.18 seconds (69.93 MB/s) create dir kernel-23 222MB in 2.97 seconds (74.87 MB/s) create dir kernel-24 222MB in 2.69 seconds (82.67 MB/s) create dir kernel-25 222MB in 2.90 seconds (76.68 MB/s) create dir kernel-26 222MB in 2.96 seconds (75.13 MB/s) create dir kernel-27 222MB in 2.94 seconds (75.64 MB/s) create dir kernel-28 222MB in 2.86 seconds (77.75 MB/s) create dir kernel-29 222MB in 3.09 seconds (71.97 MB/s) compile dir kernel-6 680MB in 1.35 seconds (504.17 MB/s) compile dir kernel-29 680MB in 2.93 seconds (232.30 MB/s) compile dir kernel-11 680MB in 3.24 seconds (210.07 MB/s) compile dir kernel-22 680MB in 3.12 seconds (218.15 MB/s) compile dir kernel-15 680MB in 3.25 seconds (209.43 MB/s) compile dir kernel-13 680MB in 3.23 seconds (210.72 MB/s) compile dir kernel-17 680MB in 3.19 seconds (213.36 MB/s) compile dir kernel-3 680MB in 3.35 seconds (203.17 MB/s) compile dir kernel-10 680MB in 3.25 seconds (209.43 MB/s) compile dir kernel-12 680MB in 3.59 seconds (189.59 MB/s) compile dir kernel-27 680MB in 4.05 seconds (168.06 MB/s) compile dir kernel-14 680MB in 3.29 seconds (206.88 MB/s) compile dir kernel-9 680MB in 3.22 seconds (211.38 MB/s) compile dir kernel-4 680MB in 3.29 seconds (206.88 MB/s) compile dir kernel-0 680MB in 3.25 seconds (209.43 MB/s) compile dir kernel-23 680MB in 3.20 seconds (212.70 MB/s) compile dir kernel-1 680MB in 3.23 seconds (210.72 MB/s) compile dir kernel-28 680MB in 3.42 seconds (199.02 MB/s) compile dir kernel-21 680MB in 3.33 seconds (204.39 MB/s) compile dir kernel-8 680MB in 3.90 seconds (174.52 MB/s) compile dir kernel-26 680MB in 4.07 seconds (167.23 MB/s) compile dir kernel-25 680MB in 3.20 seconds (212.70 MB/s) compile dir kernel-2 680MB in 3.22 seconds (211.38 MB/s) compile dir kernel-16 680MB in 3.27 seconds (208.15 MB/s) compile dir kernel-5 680MB in 3.30 seconds (206.25 MB/s) compile dir kernel-18 680MB in 3.45 seconds (197.29 MB/s) compile dir kernel-7 680MB in 3.66 seconds (185.97 MB/s) compile dir kernel-20 680MB in 3.40 seconds (200.19 MB/s) compile dir kernel-24 680MB in 3.51 seconds (193.91 MB/s) compile dir kernel-19 680MB in 4.38 seconds (155.40 MB/s) read dir kernel-11 in 36.13 24.99 MB/s read dir kernel-19 in 36.00 25.08 MB/s read dir kernel-8 in 37.51 24.07 MB/s delete kernel-6 in 7.11 seconds delete kernel-13 in 6.14 seconds delete kernel-27 in 6.56 seconds delete kernel-26 in 6.08 seconds delete kernel-1 in 6.08 seconds delete kernel-15 in 8.09 seconds delete kernel-14 in 5.33 seconds delete kernel-0 in 6.14 seconds delete kernel-20 in 5.96 seconds delete kernel-8 in 6.34 seconds delete kernel-22 in 5.50 seconds delete kernel-18 in 6.36 seconds delete kernel-17 in 6.23 seconds delete kernel-25 in 5.50 seconds delete kernel-9 in 5.83 seconds delete kernel-19 in 7.28 seconds delete kernel-21 in 6.05 seconds delete kernel-10 in 5.75 seconds delete kernel-29 in 6.28 seconds delete kernel-11 in 6.35 seconds delete kernel-4 in 5.55 seconds delete kernel-28 in 5.91 seconds delete kernel-3 in 5.56 seconds delete kernel-7 in 6.54 seconds delete kernel-23 in 5.22 seconds delete kernel-16 in 5.30 seconds delete kernel-2 in 5.62 seconds delete kernel-12 in 4.88 seconds delete kernel-5 in 5.65 seconds delete kernel-24 in 5.36 seconds Ext4: [r...@fc13 compilebench-0.6]# ./compilebench -D /mnt/ext4 -i 30 --makej using working directory /mnt/ext4, 30 intial dirs 100 runs native unpatched native-0 222MB in 2.34 seconds (95.03 MB/s) native patched native-0 109MB in 0.60 seconds (182.78 MB/s) native patched compiled native-0 691MB in 2.00 seconds (345.80 MB/s) create dir kernel-0 222MB in 2.16 seconds (102.95 MB/s) create dir kernel-1 222MB in 2.37 seconds (93.83 MB/s) create dir kernel-2 222MB in 3.11 seconds (71.50 MB/s) create dir kernel-3 222MB in 3.71 seconds (59.94 MB/s) create dir kernel-4 222MB in 3.55 seconds (62.64 MB/s) create dir kernel-5 222MB in 3.61 seconds (61.60 MB/s) create dir kernel-6 222MB in 3.34 seconds (66.58 MB/s) create dir kernel-7 222MB in 3.72 seconds (59.78 MB/s) create dir kernel-8 222MB in 2.66 seconds (83.60 MB/s) create dir kernel-9 222MB in 2.74 seconds (81.16 MB/s) create dir kernel-10 222MB in 2.67 seconds (83.29 MB/s) create dir kernel-11 222MB in 2.85 seconds (78.03 MB/s) create dir kernel-12 222MB in 2.21 seconds (100.62 MB/s) create dir kernel-13 222MB in 2.39 seconds (93.04 MB/s) create dir kernel-14 222MB in 2.18 seconds (102.01 MB/s) create dir kernel-15 222MB in 2.27 seconds (97.96 MB/s) create dir kernel-16 222MB in 2.45 seconds (90.76 MB/s) create dir kernel-17 222MB in 2.35 seconds (94.63 MB/s) create dir kernel-18 222MB in 2.37 seconds (93.83 MB/s) create dir kernel-19 222MB in 4.00 seconds (55.59 MB/s) create dir kernel-20 222MB in 2.38 seconds (93.43 MB/s) create dir kernel-21 222MB in 2.39 seconds (93.04 MB/s) create dir kernel-22 222MB in 2.31 seconds (96.27 MB/s) create dir kernel-23 222MB in 2.58 seconds (86.19 MB/s) create dir kernel-24 222MB in 2.56 seconds (86.86 MB/s) create dir kernel-25 222MB in 2.42 seconds (91.89 MB/s) create dir kernel-26 222MB in 2.51 seconds (88.60 MB/s) create dir kernel-27 222MB in 2.45 seconds (90.76 MB/s) create dir kernel-28 222MB in 2.53 seconds (87.89 MB/s) create dir kernel-29 222MB in 2.46 seconds (90.40 MB/s) compile dir kernel-6 680MB in 1.23 seconds (553.36 MB/s) compile dir kernel-29 680MB in 4.10 seconds (166.01 MB/s) compile dir kernel-11 680MB in 4.35 seconds (156.47 MB/s) compile dir kernel-22 680MB in 4.42 seconds (153.99 MB/s) compile dir kernel-15 680MB in 4.59 seconds (148.29 MB/s) compile dir kernel-13 680MB in 4.31 seconds (157.92 MB/s) compile dir kernel-17 680MB in 5.15 seconds (132.16 MB/s) compile dir kernel-3 680MB in 4.40 seconds (154.69 MB/s) compile dir kernel-10 680MB in 4.47 seconds (152.27 MB/s) compile dir kernel-12 680MB in 4.51 seconds (150.92 MB/s) compile dir kernel-27 680MB in 4.69 seconds (145.12 MB/s) compile dir kernel-14 680MB in 4.75 seconds (143.29 MB/s) compile dir kernel-9 680MB in 4.34 seconds (156.83 MB/s) compile dir kernel-4 680MB in 4.49 seconds (151.59 MB/s) compile dir kernel-0 680MB in 4.53 seconds (150.25 MB/s) compile dir kernel-23 680MB in 4.62 seconds (147.32 MB/s) compile dir kernel-1 680MB in 4.54 seconds (149.92 MB/s) compile dir kernel-28 680MB in 4.32 seconds (157.55 MB/s) compile dir kernel-21 680MB in 4.92 seconds (138.34 MB/s) compile dir kernel-8 680MB in 4.63 seconds (147.01 MB/s) compile dir kernel-26 680MB in 4.45 seconds (152.95 MB/s) compile dir kernel-25 680MB in 4.66 seconds (146.06 MB/s) compile dir kernel-2 680MB in 4.34 seconds (156.83 MB/s) compile dir kernel-16 680MB in 4.66 seconds (146.06 MB/s) compile dir kernel-5 680MB in 4.63 seconds (147.01 MB/s) compile dir kernel-18 680MB in 4.41 seconds (154.34 MB/s) compile dir kernel-7 680MB in 5.06 seconds (134.51 MB/s) compile dir kernel-20 680MB in 4.85 seconds (140.34 MB/s) compile dir kernel-24 680MB in 4.40 seconds (154.69 MB/s) compile dir kernel-19 680MB in 4.48 seconds (151.93 MB/s) read dir kernel-11 in 31.82 28.38 MB/s read dir kernel-19 in 35.85 25.19 MB/s read dir kernel-8 in 38.25 23.61 MB/s delete kernel-6 in 1.46 seconds delete kernel-13 in 1.43 seconds delete kernel-27 in 1.49 seconds delete kernel-26 in 1.59 seconds delete kernel-1 in 1.50 seconds delete kernel-15 in 1.52 seconds delete kernel-14 in 1.64 seconds delete kernel-0 in 1.50 seconds delete kernel-20 in 1.47 seconds delete kernel-8 in 1.60 seconds delete kernel-22 in 1.54 seconds delete kernel-18 in 1.50 seconds delete kernel-17 in 1.46 seconds delete kernel-25 in 1.88 seconds delete kernel-9 in 1.49 seconds delete kernel-19 in 1.51 seconds delete kernel-21 in 1.63 seconds delete kernel-10 in 1.47 seconds delete kernel-29 in 1.50 seconds delete kernel-11 in 1.83 seconds delete kernel-4 in 1.51 seconds delete kernel-28 in 1.51 seconds delete kernel-3 in 1.89 seconds delete kernel-7 in 1.54 seconds delete kernel-23 in 1.46 seconds delete kernel-16 in 2.88 seconds delete kernel-2 in 1.48 seconds delete kernel-12 in 1.51 seconds delete kernel-5 in 1.57 seconds delete kernel-24 in 1.52 seconds Best regards, Morten On Wed, Aug 18, 2010 at 4:25 PM, Chris Mason <chris.ma...@oracle.com> wrote: > On Wed, Aug 18, 2010 at 12:49:05PM +0200, Morten P.D. Stevens wrote: >> Hi, >> >> i can confirm this issue with poor create and delete performance. >> >> For example with unpacking and deleting the linux kernel: >> >> Btrfs: >> >> [r...@fc13 btrfs]# time tar xfj linux-2.6.36-rc1.tar.bz2 >> >> real 0m18.794s >> user 0m12.045s >> sys 0m8.241s >> [r...@fc13 btrfs]# time rm -rf linux-2.6.36-rc1 >> >> real 0m2.156s >> user 0m0.028s >> sys 0m2.118s >> >> ext4: >> >> [r...@fc13 ext4]# time tar xfj linux-2.6.36-rc1.tar.bz2 >> >> real 0m13.140s >> user 0m9.074s >> sys 0m6.327s >> [r...@fc13 ext4]# time rm -rf linux-2.6.36-rc1 >> >> real 0m0.781s >> user 0m0.031s >> sys 0m0.735s >> >> In all of our benchmarks, ext4 is still faster than btrfs. > > For this kind of benchmark, I use my compilebench program. We want to > time just the file creation and not how long it takes to uncompress or > read in the .tar.gz from the disk. > > The results from 2.6.35 on a single sata drive are not good for ext4 at > all. Btrfs is on par with where it always has been, but I'm > experimenting with other benchmarks to find the regression. Basically > when you are benchmarking this kind of thing you want to make sure > you're benchmarking how quickly you can write to the disk, and not to > cache. > > compilebench simulates this by creating files with the same size and > names as what you get from untarring kernel trees, and then it has a > phase where it creates files with the same size and names as the .o > files from compiling the kernel. > > Btrfs: > > # ./compilebench -i 30 --makej > creating /mnt/default > using working directory /mnt/default, 30 intial dirs 100 runs > native unpatched native-0 222MB in 1.76 seconds (126.35 MB/s) > native patched native-0 109MB in 0.51 seconds (215.04 MB/s) > native patched compiled native-0 691MB in 5.69 seconds (121.55 MB/s) > create dir kernel-0 222MB in 2.94 seconds (75.64 MB/s) > create dir kernel-1 222MB in 3.16 seconds (70.37 MB/s) > create dir kernel-2 222MB in 3.05 seconds (72.91 MB/s) > create dir kernel-3 222MB in 3.11 seconds (71.50 MB/s) > create dir kernel-4 222MB in 3.88 seconds (57.31 MB/s) > create dir kernel-5 222MB in 3.58 seconds (62.12 MB/s) > create dir kernel-6 222MB in 6.11 seconds (36.40 MB/s) > create dir kernel-7 222MB in 2.28 seconds (97.53 MB/s) > create dir kernel-8 222MB in 3.12 seconds (71.27 MB/s) > create dir kernel-9 222MB in 2.86 seconds (77.75 MB/s) > create dir kernel-10 222MB in 4.46 seconds (49.86 MB/s) > create dir kernel-11 222MB in 2.96 seconds (75.13 MB/s) > create dir kernel-12 222MB in 3.86 seconds (57.61 MB/s) > create dir kernel-13 222MB in 3.96 seconds (56.16 MB/s) > create dir kernel-14 222MB in 3.79 seconds (58.67 MB/s) > create dir kernel-15 222MB in 6.58 seconds (33.80 MB/s) > create dir kernel-16 222MB in 2.09 seconds (106.40 MB/s) > create dir kernel-17 222MB in 2.71 seconds (82.06 MB/s) > create dir kernel-18 222MB in 3.40 seconds (65.40 MB/s) > create dir kernel-19 222MB in 3.25 seconds (68.42 MB/s) > create dir kernel-20 222MB in 3.79 seconds (58.67 MB/s) > create dir kernel-21 222MB in 3.86 seconds (57.61 MB/s) > create dir kernel-22 222MB in 3.59 seconds (61.94 MB/s) > create dir kernel-23 222MB in 4.02 seconds (55.32 MB/s) > create dir kernel-24 222MB in 7.68 seconds (28.95 MB/s) > create dir kernel-25 222MB in 1.99 seconds (111.75 MB/s) > create dir kernel-26 222MB in 2.77 seconds (80.28 MB/s) > create dir kernel-27 222MB in 2.97 seconds (74.87 MB/s) > create dir kernel-28 222MB in 3.22 seconds (69.06 MB/s) > create dir kernel-29 222MB in 3.94 seconds (56.44 MB/s) > compile dir kernel-6 680MB in 3.78 seconds (180.06 MB/s) > compile dir kernel-29 680MB in 9.21 seconds (73.90 MB/s) > compile dir kernel-11 680MB in 9.38 seconds (72.56 MB/s) > compile dir kernel-22 680MB in 10.57 seconds (64.39 MB/s) > compile dir kernel-15 680MB in 7.68 seconds (88.62 MB/s) > compile dir kernel-13 680MB in 9.26 seconds (73.50 MB/s) > compile dir kernel-17 680MB in 9.44 seconds (72.10 MB/s) > compile dir kernel-3 680MB in 9.03 seconds (75.37 MB/s) > compile dir kernel-10 680MB in 9.30 seconds (73.19 MB/s) > compile dir kernel-12 680MB in 9.29 seconds (73.27 MB/s) > compile dir kernel-27 680MB in 10.84 seconds (62.79 MB/s) > compile dir kernel-14 680MB in 7.65 seconds (88.97 MB/s) > compile dir kernel-9 680MB in 9.55 seconds (71.27 MB/s) > compile dir kernel-4 680MB in 9.20 seconds (73.98 MB/s) > compile dir kernel-0 680MB in 12.06 seconds (56.44 MB/s) > compile dir kernel-23 680MB in 9.39 seconds (72.49 MB/s) > compile dir kernel-1 680MB in 9.06 seconds (75.13 MB/s) > > Ext4: > > ./compilebench -i 30 --makej > creating /mnt/default > using working directory /mnt/default, 30 intial dirs 100 runs > native unpatched native-0 222MB in 1.11 seconds (200.34 MB/s) > native patched native-0 109MB in 0.33 seconds (332.33 MB/s) > native patched compiled native-0 691MB in 5.38 seconds (128.55 MB/s) > create dir kernel-0 222MB in 1.05 seconds (211.78 MB/s) > create dir kernel-1 222MB in 4.60 seconds (48.34 MB/s) > create dir kernel-2 222MB in 4.30 seconds (51.71 MB/s) > create dir kernel-3 222MB in 5.71 seconds (38.94 MB/s) > create dir kernel-4 222MB in 4.82 seconds (46.14 MB/s) > create dir kernel-5 222MB in 4.91 seconds (45.29 MB/s) > create dir kernel-6 222MB in 5.70 seconds (39.01 MB/s) > create dir kernel-7 222MB in 4.76 seconds (46.72 MB/s) > create dir kernel-8 222MB in 6.40 seconds (34.75 MB/s) > create dir kernel-9 222MB in 5.37 seconds (41.41 MB/s) > create dir kernel-10 222MB in 5.51 seconds (40.36 MB/s) > create dir kernel-11 222MB in 6.77 seconds (32.85 MB/s) > create dir kernel-12 222MB in 5.88 seconds (37.82 MB/s) > create dir kernel-13 222MB in 8.92 seconds (24.93 MB/s) > create dir kernel-14 222MB in 5.44 seconds (40.88 MB/s) > create dir kernel-15 222MB in 6.21 seconds (35.81 MB/s) > create dir kernel-16 222MB in 4.85 seconds (45.85 MB/s) > create dir kernel-17 222MB in 8.83 seconds (25.18 MB/s) > create dir kernel-18 222MB in 6.82 seconds (32.61 MB/s) > create dir kernel-19 222MB in 4.86 seconds (45.76 MB/s) > create dir kernel-20 222MB in 10.48 seconds (21.22 MB/s) > create dir kernel-21 222MB in 4.85 seconds (45.85 MB/s) > create dir kernel-22 222MB in 8.30 seconds (26.79 MB/s) > create dir kernel-23 222MB in 6.38 seconds (34.85 MB/s) > create dir kernel-24 222MB in 7.30 seconds (30.46 MB/s) > create dir kernel-25 222MB in 3.83 seconds (58.06 MB/s) > create dir kernel-26 222MB in 9.70 seconds (22.93 MB/s) > create dir kernel-27 222MB in 5.39 seconds (41.26 MB/s) > create dir kernel-28 222MB in 6.96 seconds (31.95 MB/s) > create dir kernel-29 222MB in 8.16 seconds (27.25 MB/s) > compile dir kernel-6 680MB in 7.47 seconds (91.12 MB/s) > compile dir kernel-29 680MB in 16.37 seconds (41.58 MB/s) > compile dir kernel-11 680MB in 19.57 seconds (34.78 MB/s) > compile dir kernel-22 680MB in 17.17 seconds (39.64 MB/s) > compile dir kernel-15 680MB in 17.40 seconds (39.12 MB/s) > compile dir kernel-13 680MB in 17.87 seconds (38.09 MB/s) > compile dir kernel-17 680MB in 18.14 seconds (37.52 MB/s) > compile dir kernel-3 680MB in 17.43 seconds (39.05 MB/s) > compile dir kernel-10 680MB in 15.18 seconds (44.84 MB/s) > compile dir kernel-12 680MB in 17.14 seconds (39.71 MB/s) > compile dir kernel-27 680MB in 18.71 seconds (36.38 MB/s) > compile dir kernel-14 680MB in 17.47 seconds (38.96 MB/s) > compile dir kernel-9 680MB in 19.76 seconds (34.45 MB/s) > compile dir kernel-4 680MB in 17.53 seconds (38.83 MB/s) > compile dir kernel-0 680MB in 17.20 seconds (39.57 MB/s) > compile dir kernel-23 680MB in 17.31 seconds (39.32 MB/s) > compile dir kernel-1 680MB in 18.19 seconds (37.42 MB/s) > > -- > 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 -- 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