statfs f_bfree vs. f_bavail

2014-01-21 Thread Bernd Schubert
Hi all,

I just noticed a mismatch between statfs.f_bfree and statfs.f_bavail, i.e.

(squeeze)fslab2:~# ./statfs /data/fhgfs/storage1/

/data/fhgfs/storage1/: avail: 3162112 free: 801586610176

(with 
uint64_t avail = statbuf.f_bavail * statbuf.f_bsize;
uint64_t free  = statbuf.f_bfree * statbuf.f_bsize;
)

Given the fact that I write much data to this file system anymore, 
f_bavail seems to be give the number I'm interested in.


According to 'man 2 statfs'

fsblkcnt_t   f_bfree;   /* free blocks in fs */
fsblkcnt_t   f_bavail;  /* free blocks available to
   unprivileged user */

f_bfree and f_bavail shouldn't differ too much. 
But btrfs uses two entirely different calculations for that
(btrfs_statfs).


f_bavail = disk_with_block_groups_total_ - disk_used - block_group_space + 
free_data_space
f_bfree = all_disk_blocks - total_used

Now for any raid level (I'm using raid6) using the sum of all
data disk blocks without substracting redundancy blocks doesn't seem
to be something the user is interested in. 
In our particular case we are using f_bavail if fhgfs-storage was started
as root and f_bfree when it started from non-root (extN root user space
reservation). Now with btrfs this entirely fails and even confuses our
low target pool detection. I could add a workaround for btrfs for that
into our code based on f_type, but I wonder if it wouldn't be better to 
improve btrfs_statfs. 
What is the actual intention for the current f_bfree value?


Thanks,
Bernd


--
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


Re: raid6: rmw writes all the time?

2013-05-24 Thread Bernd Schubert

Hello Chris,

On 05/23/2013 10:33 PM, Chris Mason wrote:

But I was using 8 drives.  I'll try with 12.



My benchmarks were on flash, so the rmw I was seeing may not have had as
big an impact.



I just further played with it and simply introduced a requeue in 
raid56_rmw_stripe() if the rbio is 'younger' than 50 jiffies. I can 
still see reads, but by a factor 10 lower than before. And this is 
sufficient to bring performance almost to that of direc-io.
This is certainly no upstream code, I hope I find some time over the 
weekend to come up with something better.


Btw, I also noticed the cache logic copies pages from those rmw-threads. 
Well, this a numa system and memory bandwith is terribly bad from the 
remote cpu. These worker threads probably should numa aware and only 
handle rbios from their own cpu.



Cheers,
Bernd
--
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


raid6: rmw writes all the time?

2013-05-23 Thread Bernd Schubert

Hi all,

we got a new test system here and I just also tested btrfs raid6 on 
that. Write performance is slightly lower than hw-raid (LSI megasas) and 
md-raid6, but it probably would be much better than any of these two, if 
it wouldn't read all the during the writes. Is this a known issue? This 
is with linux-3.9.2.


Thanks,
Bernd

--
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


Re: raid6: rmw writes all the time?

2013-05-23 Thread Bernd Schubert

On 05/23/2013 03:11 PM, Chris Mason wrote:

Quoting Bernd Schubert (2013-05-23 08:55:47)

Hi all,

we got a new test system here and I just also tested btrfs raid6 on
that. Write performance is slightly lower than hw-raid (LSI megasas) and
md-raid6, but it probably would be much better than any of these two, if
it wouldn't read all the during the writes. Is this a known issue? This
is with linux-3.9.2.


Hi Bernd,

Any time you do a write smaller than a full stripe, we'll have to do a
read/modify/write cycle to satisfy it.  This is true of md raid6 and the
hw-raid as well, but their reads don't show up in vmstat (try iostat
instead).


Yeah, I know and I'm using iostat already. md raid6 does not do rmw, but 
does not fill the device queue, afaik it flushes the underlying devices 
quickly as it does not have barrier support - that is another topic, but 
was the reason why I started to test btrfs.




So the bigger question is where are your small writes coming from.  If
they are metadata, you can use raid1 for the metadata.


I used this command

/tmp/mkfs.btrfs -L test2 -f -d raid6 -m raid10 /dev/sd[m-x]

so meta-data should be raid10. And I'm using this iozone command:



iozone -e -i0 -i1 -r1m -l 5 -u 5 -s20g -+n \
-F /data/fhgfs/storage/md126/testfile1 
/data/fhgfs/storage/md126/testfile2 /data/fhgfs/storage/md126/testfile3 \
   /data/fhgfs/storage/md127/testfile1 
/data/fhgfs/storage/md127/testfile2 /data/fhgfs/storage/md127/testfile3



Higher IO sizes (e.g. -r16m) don't make a difference, it goes through 
the page cache anyway.
I'm not familiar with btrfs code at all, but maybe writepages() submits 
too small IOs?


Hrmm, just wanted to try direct IO, but then just noticed it went into 
RO mode before already:



May 23 14:59:33 c8220a kernel: WARNING: at fs/btrfs/super.c:255 
__btrfs_abort_transaction+0xdf/0x100 [btrfs]()



ay 23 14:59:33 c8220a kernel: [8105db76] warn_slowpath_fmt+0x46/0x50
May 23 14:59:33 c8220a kernel: [a0b5428a] ? btrfs_free_path+0x2a/0x40 
[btrfs]
May 23 14:59:33 c8220a kernel: [a0b4e18f] 
__btrfs_abort_transaction+0xdf/0x100 [btrfs]
May 23 14:59:33 c8220a kernel: [a0b70b2f] 
btrfs_save_ino_cache+0x22f/0x310 [btrfs]
May 23 14:59:33 c8220a kernel: [a0b793e2] commit_fs_roots+0xd2/0x1c0 
[btrfs]
May 23 14:59:33 c8220a kernel: [815eb3fe] ? mutex_lock+0x1e/0x50
May 23 14:59:33 c8220a kernel: [a0b7a555] 
btrfs_commit_transaction+0x495/0xa40 [btrfs]
May 23 14:59:33 c8220a kernel: [a0b7af7b] ? 
start_transaction+0xab/0x4d0 [btrfs]
May 23 14:59:33 c8220a kernel: [81082f30] ? wake_up_bit+0x40/0x40
May 23 14:59:33 c8220a kernel: [a0b72b96] 
transaction_kthread+0x1a6/0x220 [btrfs]



May 23 14:59:33 c8220a kernel: ---[ end trace 3d91874abeab5984 ]---
May 23 14:59:33 c8220a kernel: BTRFS error (device sdx) in 
btrfs_save_ino_cache:471: error 28
May 23 14:59:33 c8220a kernel: btrfs is forced readonly
May 23 14:59:33 c8220a kernel: BTRFS warning (device sdx): Skipping commit of 
aborted transaction.
May 23 14:59:33 c8220a kernel: BTRFS error (device sdx) in 
cleanup_transaction:1455: error 28


errno 28 - out of disk space?

Going to recreate it and will play with it later on again.


Thanks,
Bernd
--
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


Re: raid6: rmw writes all the time?

2013-05-23 Thread Bernd Schubert
On 05/23/2013 03:41 PM, Bob Marley wrote:
 On 23/05/2013 15:22, Bernd Schubert wrote:

 Yeah, I know and I'm using iostat already. md raid6 does not do rmw,
 but does not fill the device queue, afaik it flushes the underlying
 devices quickly as it does not have barrier support - that is another
 topic, but was the reason why I started to test btrfs.
 
 MD raid6 DOES have barrier support!
 

For underlying devices yes, but it does not further use it for
additional buffering.
--
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


Re: raid6: rmw writes all the time?

2013-05-23 Thread Bernd Schubert
On 05/23/2013 03:34 PM, Chris Mason wrote:
 Quoting Bernd Schubert (2013-05-23 09:22:41)
 On 05/23/2013 03:11 PM, Chris Mason wrote:
 Quoting Bernd Schubert (2013-05-23 08:55:47)
 Hi all,

 we got a new test system here and I just also tested btrfs raid6 on
 that. Write performance is slightly lower than hw-raid (LSI megasas) and
 md-raid6, but it probably would be much better than any of these two, if
 it wouldn't read all the during the writes. Is this a known issue? This
 is with linux-3.9.2.

 Hi Bernd,

 Any time you do a write smaller than a full stripe, we'll have to do a
 read/modify/write cycle to satisfy it.  This is true of md raid6 and the
 hw-raid as well, but their reads don't show up in vmstat (try iostat
 instead).

 Yeah, I know and I'm using iostat already. md raid6 does not do rmw, but 
 does not fill the device queue, afaik it flushes the underlying devices 
 quickly as it does not have barrier support - that is another topic, but 
 was the reason why I started to test btrfs.
 
 md should support barriers with recent kernels.  You might want to
 verify with blktrace that md raid6 isn't doing r/m/w.
 


 So the bigger question is where are your small writes coming from.  If
 they are metadata, you can use raid1 for the metadata.

 I used this command

 /tmp/mkfs.btrfs -L test2 -f -d raid6 -m raid10 /dev/sd[m-x]
 
 Ok, the stripe size is 64KB, so you want to do IO in multiples of 64KB
 times the number of devices on the FS.  If you have 13 devices, that's
 832K.

Actually I have 12 devices, but we have to subtract 2 parity disks. In
the mean time I also patched btrfsprogs to use a chunksize of 256K. So
that should be 2560kiB now if I found the right places.
Btw, any chance to generally use chunksize/chunklen instead of stripe,
such as the md layer does it? IMHO it is less confusing to use
n-datadisks * chunksize = stripesize.

 
 Using buffered writes makes it much more likely the VM will break up the
 IOs as they go down.  The btrfs writepages code does try to do full
 stripe IO, and it also caches stripes as the IO goes down.  But for
 buffered IO it is surprisingly hard to get a 100% hit rate on full
 stripe IO at larger stripe sizes.

I have not found that part yet, somehow it looks like as if writepages
would submit single pages to another layer. I'm going to look into it
again during the weekend. I can reserve the hardware that long, but I
think we first need to fix striped writes in general.

 

 so meta-data should be raid10. And I'm using this iozone command:


 iozone -e -i0 -i1 -r1m -l 5 -u 5 -s20g -+n \
 -F /data/fhgfs/storage/md126/testfile1 
 /data/fhgfs/storage/md126/testfile2 /data/fhgfs/storage/md126/testfile3 \
/data/fhgfs/storage/md127/testfile1 
 /data/fhgfs/storage/md127/testfile2 /data/fhgfs/storage/md127/testfile3


 Higher IO sizes (e.g. -r16m) don't make a difference, it goes through 
 the page cache anyway.
 I'm not familiar with btrfs code at all, but maybe writepages() submits 
 too small IOs?

 Hrmm, just wanted to try direct IO, but then just noticed it went into 
 RO mode before already:
 
 Direct IO will make it easier to get full stripe writes.  I thought I
 had fixed this abort, but it is just running out of space to write the
 inode cache.  For now, please just don't mount with the inode cache
 enabled, I'll send in a fix for the next rc.

Thanks, I already noticed and disabled the inode cache.

Direct-io works as expected and without any RMW cycles. And that
provides more than 40% better performance than the Megasas controller or
buffered MD writes (I didn't compare with direct-io MD, as that is very
slow).


Cheers,
Bernd

--
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


Re: raid6: rmw writes all the time?

2013-05-23 Thread Bernd Schubert
On 05/23/2013 09:37 PM, Chris Mason wrote:
 Quoting Bernd Schubert (2013-05-23 15:33:24)
 Btw, any chance to generally use chunksize/chunklen instead of stripe,
 such as the md layer does it? IMHO it is less confusing to use
 n-datadisks * chunksize = stripesize.
 
 Definitely, it will become much more configurable.

Actually I meant in the code. I'm going to write a patch during the weekend.

 


 Using buffered writes makes it much more likely the VM will break up the
 IOs as they go down.  The btrfs writepages code does try to do full
 stripe IO, and it also caches stripes as the IO goes down.  But for
 buffered IO it is surprisingly hard to get a 100% hit rate on full
 stripe IO at larger stripe sizes.

 I have not found that part yet, somehow it looks like as if writepages
 would submit single pages to another layer. I'm going to look into it
 again during the weekend. I can reserve the hardware that long, but I
 think we first need to fix striped writes in general.
 
 The VM calls writepages and btrfs tries to suck down all the pages that
 belong to the same extent.  And we try to allocate the extents on
 boundaries.  There is definitely some bleeding into rmw when I do it
 here, but overall it does well.
 
 But I was using 8 drives.  I'll try with 12.

Hmm, I already tried with 10 drives (8+2), doesn't make a difference for
RMW.

 
 Direct-io works as expected and without any RMW cycles. And that
 provides more than 40% better performance than the Megasas controller or
 buffered MD writes (I didn't compare with direct-io MD, as that is very
 slow).
 
 You can improve MD performance quite a lot by increasing the size of the
 stripe cache.

I'm already doing that, without a higher stripe cache the performance is
much lower.

--
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


Re: No space left on device although df reports only 55% in use

2013-03-27 Thread Bernd Schubert

On 03/27/2013 10:18 AM, Hugo Mills wrote:

On Wed, Mar 27, 2013 at 12:28:23AM +0100, Clemens Eisserer wrote:

I am using a btrfs loopback mounted file with lzo-compression on
Linux-3.7.9, and I ran into No space left on device messages,
although df reports only 55% of space is used:

# touch testfile
touch: cannot touch `testfile': No space left on device

# df
Filesystem 1K-blocks  Used Available Use% Mounted on
/dev/loop0  32768000  17383924  14649172  55% /home/ce/anditest

# btrfs filesystem df .
Data: total=28.22GB, used=14.25GB
System, DUP: total=8.00MB, used=12.00KB
System: total=4.00MB, used=0.00
Metadata, DUP: total=1.50GB, used=1.16GB


Your metadata is close to full -- we need quite a lot of working


Almost 400MB are not sufficient to do simple touch? What is it doing?


Cheers,
Bernd


--
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


Re: abort transaction and RO

2013-01-15 Thread Bernd Schubert

On 01/15/2013 02:35 PM, Bernd Schubert wrote:

Hrmm, that bug then seems to cause another bug. After the file system
went into RO, I simply umounted and mounted again and a few seconds
after that my entire system failed. Relevant logs are attached.



Further log attachment:

btrfsck /dev/vg_fuj2/test  /tmp/btrfs.log 21


checking extents
ref mismatch on [12689408 262144] extent item 1, found 0
Incorrect local backref count on 12689408 root 1 owner 256 offset 0 found 0 wanted 1 back 0x1869ef0
backpointer mismatch on [12689408 262144]
owner ref check failed [12689408 262144]
ref mismatch on [12951552 262144] extent item 0, found 1
Backref 12951552 root 1 owner 256 offset 0 num_refs 0 not found in extent tree
Incorrect local backref count on 12951552 root 1 owner 256 offset 0 found 1 wanted 0 back 0x185faa0
backpointer mismatch on [12951552 262144]
ref mismatch on [13213696 262144] extent item 1, found 0
Incorrect local backref count on 13213696 root 1 owner 273 offset 0 found 0 wanted 1 back 0x1869fd0
backpointer mismatch on [13213696 262144]
owner ref check failed [13213696 262144]
ref mismatch on [13475840 262144] extent item 1, found 0
Incorrect local backref count on 13475840 root 1 owner 259 offset 0 found 0 wanted 1 back 0x186a0b0
backpointer mismatch on [13475840 262144]
owner ref check failed [13475840 262144]
ref mismatch on [13737984 262144] extent item 1, found 0
Incorrect local backref count on 13737984 root 1 owner 260 offset 0 found 0 wanted 1 back 0x186a190
backpointer mismatch on [13737984 262144]
owner ref check failed [13737984 262144]
ref mismatch on [14000128 262144] extent item 1, found 0
Incorrect local backref count on 14000128 root 1 owner 261 offset 0 found 0 wanted 1 back 0x186a270
backpointer mismatch on [14000128 262144]
owner ref check failed [14000128 262144]
ref mismatch on [14262272 262144] extent item 1, found 0
Incorrect local backref count on 14262272 root 1 owner 257 offset 0 found 0 wanted 1 back 0x186a350
backpointer mismatch on [14262272 262144]
owner ref check failed [14262272 262144]
ref mismatch on [14524416 262144] extent item 1, found 0
Incorrect local backref count on 14524416 root 1 owner 262 offset 0 found 0 wanted 1 back 0x186a430
backpointer mismatch on [14524416 262144]
owner ref check failed [14524416 262144]
ref mismatch on [14786560 262144] extent item 1, found 0
Incorrect local backref count on 14786560 root 1 owner 263 offset 0 found 0 wanted 1 back 0x186a510
backpointer mismatch on [14786560 262144]
owner ref check failed [14786560 262144]
ref mismatch on [15048704 262144] extent item 1, found 0
Incorrect local backref count on 15048704 root 1 owner 264 offset 0 found 0 wanted 1 back 0x186a5f0
backpointer mismatch on [15048704 262144]
owner ref check failed [15048704 262144]
ref mismatch on [15310848 262144] extent item 1, found 0
Incorrect local backref count on 15310848 root 1 owner 265 offset 0 found 0 wanted 1 back 0x186a6d0
backpointer mismatch on [15310848 262144]
owner ref check failed [15310848 262144]
ref mismatch on [15572992 262144] extent item 1, found 0
Incorrect local backref count on 15572992 root 1 owner 266 offset 0 found 0 wanted 1 back 0x186a7b0
backpointer mismatch on [15572992 262144]
owner ref check failed [15572992 262144]
ref mismatch on [15835136 262144] extent item 1, found 0
Incorrect local backref count on 15835136 root 1 owner 267 offset 0 found 0 wanted 1 back 0x186a890
backpointer mismatch on [15835136 262144]
owner ref check failed [15835136 262144]
ref mismatch on [16097280 262144] extent item 1, found 0
Incorrect local backref count on 16097280 root 1 owner 268 offset 0 found 0 wanted 1 back 0x186a970
backpointer mismatch on [16097280 262144]
owner ref check failed [16097280 262144]
ref mismatch on [16359424 262144] extent item 1, found 0
Incorrect local backref count on 16359424 root 1 owner 269 offset 0 found 0 wanted 1 back 0x186aa50
backpointer mismatch on [16359424 262144]
owner ref check failed [16359424 262144]
ref mismatch on [16621568 262144] extent item 1, found 0
Incorrect local backref count on 16621568 root 1 owner 270 offset 0 found 0 wanted 1 back 0x186ab30
backpointer mismatch on [16621568 262144]
owner ref check failed [16621568 262144]
ref mismatch on [16883712 262144] extent item 1, found 0
Incorrect local backref count on 16883712 root 1 owner 271 offset 0 found 0 wanted 1 back 0x186ac10
backpointer mismatch on [16883712 262144]
owner ref check failed [16883712 262144]
ref mismatch on [17145856 262144] extent item 1, found 0
Incorrect local backref count on 17145856 root 1 owner 272 offset 0 found 0 wanted 1 back 0x186acf0
backpointer mismatch on [17145856 262144]
owner ref check failed [17145856 262144]
ref mismatch on [17408000 262144] extent item 1, found 0
Incorrect local backref count on 17408000 root 1 owner 281 offset 0 found 0 wanted 1 back 0x186add0
backpointer mismatch on [17408000 262144]
owner ref check failed [17408000 262144]
ref mismatch on [17670144 262144] extent item 1, found 0

Re: bonnie triggers and endless numbers of stack traces

2011-08-22 Thread Bernd Schubert

On 08/19/2011 09:36 PM, Josef Bacik wrote:

On 08/19/2011 12:45 PM, Bernd Schubert wrote:

Just for performance tests I run:

./bonnie++ -d /mnt/btrfs -s0 -n 1:256:256:1 -r 0

and this causes and endless number of stack traces. Those seem to
come from:

use_block_rsv()

ret = block_rsv_use_bytes(block_rsv, blocksize);
if (!ret)
return block_rsv;
if (ret) {
WARN_ON(1);
ret = reserve_metadata_bytes(trans, root, block_rsv, blocksize,


Why is there a WARN_ON(1)? Running the bonnie benchmark is basically impossible
that.


This is being worked on, if you really don't like it pull my git tree
and test it out and see if the errors go away

git://git.kernel.org/pub/scm/linux/kernel/git/josef/btrfs-work.git


Do you plan to fix it for 3.1? If not, any chance to at least update it 
to WARN_ON_ONCE?



Thanks,
Bernd
--
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


bonnie triggers and endless numbers of stack traces

2011-08-19 Thread Bernd Schubert
Just for performance tests I run:

./bonnie++ -d /mnt/btrfs -s0 -n 1:256:256:1 -r 0

and this causes and endless number of stack traces. Those seem to 
come from:

use_block_rsv()

ret = block_rsv_use_bytes(block_rsv, blocksize);
if (!ret)
return block_rsv;
if (ret) {
WARN_ON(1);
ret = reserve_metadata_bytes(trans, root, block_rsv, blocksize,


Why is there a WARN_ON(1)? Running the bonnie benchmark is basically impossible
that.

Thanks,
Bernd


 Aug 19 18:30:56 fslab2 kernel: [  265.255644] Loglevel set to 9
 Aug 19 18:31:26 fslab2 kernel: [  295.490858] [ cut here 
 ]
 Aug 19 18:31:26 fslab2 kernel: [  295.495589] WARNING: at 
 fs/btrfs/extent-tree.c:5711 btrfs_alloc_free_block+0x200/0x360 [btrfs]()
 Aug 19 18:31:26 fslab2 kernel: [  295.504472] Hardware name: H8DCE
 Aug 19 18:31:26 fslab2 kernel: [  295.507750] Modules linked in: nfsd ib_umad 
 rdma_ucm rdma_cm iw_cm ib_addr ib_uverbs sg ib_ipoib ib_cm ib_sa ip
 v6 sd_mod crc_t10dif loop arcmsr md_mod ib_mthca ib_mad pcspkr ib_core 
 8250_pnp fuse af_packet nfs lockd fscache auth_rpcgss nfs_acl sunrpc btrfs
  lzo_decompress lzo_compress zlib_deflate crc32c libcrc32c crypto_hash 
 crypto_algapi ata_generic pata_acpi e1000 pata_amd sata_nv libata scsi_mod
  unix [last unloaded: scsi_wait_scan]
 Aug 19 18:31:26 fslab2 kernel: [  295.548618] Pid: 2074, comm: bonnie++ Not 
 tainted 3.1.0-rc2+ #34
 Aug 19 18:31:26 fslab2 kernel: [  295.554695] Call Trace:
 Aug 19 18:31:26 fslab2 kernel: [  295.557209]  [8105c677] ? 
 console_unlock+0x227/0x290
 Aug 19 18:31:26 fslab2 kernel: [  295.563111]  [8105bb7f] 
 warn_slowpath_common+0x7f/0xc0
 Aug 19 18:31:26 fslab2 kernel: [  295.569186]  [8105bbda] 
 warn_slowpath_null+0x1a/0x20
 Aug 19 18:31:26 fslab2 kernel: [  295.575096]  [a013d0d0] 
 btrfs_alloc_free_block+0x200/0x360 [btrfs]
 Aug 19 18:31:26 fslab2 kernel: [  295.582230]  [a0165d10] ? 
 lock_delalloc_pages+0x1f0/0x1f0 [btrfs]
 Aug 19 18:31:26 fslab2 kernel: [  295.589280]  [a0127b6b] 
 __btrfs_cow_block+0x14b/0x6e0 [btrfs]
 Aug 19 18:31:26 fslab2 kernel: [  295.595978]  [a0179144] ? 
 btrfs_try_tree_write_lock+0x44/0x80 [btrfs]
 Aug 19 18:31:26 fslab2 kernel: [  295.603394]  [a0128217] 
 btrfs_cow_block+0x117/0x260 [btrfs]
 Aug 19 18:31:26 fslab2 kernel: [  295.609920]  [a012e455] 
 btrfs_search_slot+0x385/0xaa0 [btrfs]
 Aug 19 18:31:26 fslab2 kernel: [  295.616621]  [a0140f3f] 
 btrfs_lookup_inode+0x2f/0xa0 [btrfs]
 Aug 19 18:31:26 fslab2 kernel: [  295.623236]  [a0190eb3] 
 btrfs_update_delayed_inode+0x73/0x160 [btrfs]
 Aug 19 18:31:26 fslab2 kernel: [  295.630644]  [8137163e] ? 
 mutex_unlock+0xe/0x10
 Aug 19 18:31:26 fslab2 kernel: [  295.636125]  [a0192088] 
 btrfs_run_delayed_items+0xe8/0x120 [btrfs]
 Aug 19 18:31:26 fslab2 kernel: [  295.643254]  [a014a240] 
 btrfs_commit_transaction+0x230/0x870 [btrfs]
 Aug 19 18:31:26 fslab2 kernel: [  295.650585]  [a0149de9] ? 
 join_transaction+0x69/0x290 [btrfs]
 Aug 19 18:31:26 fslab2 kernel: [  295.657274]  [8107f410] ? 
 wake_up_bit+0x40/0x40
 Aug 19 18:31:26 fslab2 kernel: [  295.662783]  [81171700] ? 
 __sync_filesystem+0x90/0x90
 Aug 19 18:31:26 fslab2 kernel: [  295.668783]  [a0124ace] 
 btrfs_sync_fs+0x5e/0xd0 [btrfs]
 Aug 19 18:31:26 fslab2 kernel: [  295.674951]  [811716ce] 
 __sync_filesystem+0x5e/0x90
 Aug 19 18:31:26 fslab2 kernel: [  295.680764]  [8117171f] 
 sync_one_sb+0x1f/0x30
 Aug 19 18:31:26 fslab2 kernel: [  295.686061]  [8114751f] 
 iterate_supers+0x7f/0xe0
 Aug 19 18:31:26 fslab2 kernel: [  295.691613]  [81171775] 
 sys_sync+0x45/0x70
 Aug 19 18:31:26 fslab2 kernel: [  295.696648]  [8137b4c2] 
 system_call_fastpath+0x16/0x1b
 Aug 19 18:31:26 fslab2 kernel: [  295.702726] ---[ end trace 5328a9730b4cdff4 
 ]---
 Aug 19 18:31:26 fslab2 kernel: [  295.707533] [ cut here 
 ]
 Aug 19 18:31:26 fslab2 kernel: [  295.712230] WARNING: at 
 fs/btrfs/extent-tree.c:5711 btrfs_alloc_free_block+0x200/0x360 [btrfs]()
 Aug 19 18:31:26 fslab2 kernel: [  295.721114] Hardware name: H8DCE
 Aug 19 18:31:26 fslab2 kernel: [  295.724410] Modules linked in: nfsd ib_umad 
 rdma_ucm rdma_cm iw_cm ib_addr ib_uverbs sg ib_ipoib ib_cm ib_sa ip
 v6 sd_mod crc_t10dif loop arcmsr md_mod ib_mthca ib_mad pcspkr ib_core 
 8250_pnp fuse af_packet nfs lockd fscache auth_rpcgss nfs_acl sunrpc btrfs
  lzo_decompress lzo_compress zlib_deflate crc32c libcrc32c crypto_hash 
 crypto_algapi ata_generic pata_acpi e1000 pata_amd sata_nv libata scsi_mod
[...]
repeats at least a few thousand times and fills the logs...



--
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


Re: bonnie triggers and endless numbers of stack traces

2011-08-19 Thread Bernd Schubert
I think we either should remove it or replace by WARN_ON_ONCE()


Remove WARN_ON(1) in a common code path

From: Bernd Schubert bernd.schub...@itwm.fraunhofer.de

Something like bonnie++ -d /mnt/btrfs -s0 -n 1:256:256:1 -r 0
will trigger lots of those WARN_ON(1), so lets remove it.


Signed-off-by: Bernd Schubert bernd.schub...@itwm.fraunhofer.de
---
 fs/btrfs/extent-tree.c |1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 80d6148..1d1a8d0 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -5708,7 +5708,6 @@ use_block_rsv(struct btrfs_trans_handle *trans,
if (!ret)
return block_rsv;
if (ret) {
-   WARN_ON(1);
ret = reserve_metadata_bytes(trans, root, block_rsv, blocksize,
 0);
if (!ret) {




--
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