* bonnie triggers and endless numbers of stack traces
@ 2011-08-19 16:45 Bernd Schubert
2011-08-19 17:28 ` Bernd Schubert
2011-08-19 19:36 ` Josef Bacik
0 siblings, 2 replies; 6+ messages in thread
From: Bernd Schubert @ 2011-08-19 16:45 UTC (permalink / raw)
To: linux-btrfs
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] [<ffffffff8105c677>] ? console_unlock+0x227/0x290
> Aug 19 18:31:26 fslab2 kernel: [ 295.563111] [<ffffffff8105bb7f>] warn_slowpath_common+0x7f/0xc0
> Aug 19 18:31:26 fslab2 kernel: [ 295.569186] [<ffffffff8105bbda>] warn_slowpath_null+0x1a/0x20
> Aug 19 18:31:26 fslab2 kernel: [ 295.575096] [<ffffffffa013d0d0>] btrfs_alloc_free_block+0x200/0x360 [btrfs]
> Aug 19 18:31:26 fslab2 kernel: [ 295.582230] [<ffffffffa0165d10>] ? lock_delalloc_pages+0x1f0/0x1f0 [btrfs]
> Aug 19 18:31:26 fslab2 kernel: [ 295.589280] [<ffffffffa0127b6b>] __btrfs_cow_block+0x14b/0x6e0 [btrfs]
> Aug 19 18:31:26 fslab2 kernel: [ 295.595978] [<ffffffffa0179144>] ? btrfs_try_tree_write_lock+0x44/0x80 [btrfs]
> Aug 19 18:31:26 fslab2 kernel: [ 295.603394] [<ffffffffa0128217>] btrfs_cow_block+0x117/0x260 [btrfs]
> Aug 19 18:31:26 fslab2 kernel: [ 295.609920] [<ffffffffa012e455>] btrfs_search_slot+0x385/0xaa0 [btrfs]
> Aug 19 18:31:26 fslab2 kernel: [ 295.616621] [<ffffffffa0140f3f>] btrfs_lookup_inode+0x2f/0xa0 [btrfs]
> Aug 19 18:31:26 fslab2 kernel: [ 295.623236] [<ffffffffa0190eb3>] btrfs_update_delayed_inode+0x73/0x160 [btrfs]
> Aug 19 18:31:26 fslab2 kernel: [ 295.630644] [<ffffffff8137163e>] ? mutex_unlock+0xe/0x10
> Aug 19 18:31:26 fslab2 kernel: [ 295.636125] [<ffffffffa0192088>] btrfs_run_delayed_items+0xe8/0x120 [btrfs]
> Aug 19 18:31:26 fslab2 kernel: [ 295.643254] [<ffffffffa014a240>] btrfs_commit_transaction+0x230/0x870 [btrfs]
> Aug 19 18:31:26 fslab2 kernel: [ 295.650585] [<ffffffffa0149de9>] ? join_transaction+0x69/0x290 [btrfs]
> Aug 19 18:31:26 fslab2 kernel: [ 295.657274] [<ffffffff8107f410>] ? wake_up_bit+0x40/0x40
> Aug 19 18:31:26 fslab2 kernel: [ 295.662783] [<ffffffff81171700>] ? __sync_filesystem+0x90/0x90
> Aug 19 18:31:26 fslab2 kernel: [ 295.668783] [<ffffffffa0124ace>] btrfs_sync_fs+0x5e/0xd0 [btrfs]
> Aug 19 18:31:26 fslab2 kernel: [ 295.674951] [<ffffffff811716ce>] __sync_filesystem+0x5e/0x90
> Aug 19 18:31:26 fslab2 kernel: [ 295.680764] [<ffffffff8117171f>] sync_one_sb+0x1f/0x30
> Aug 19 18:31:26 fslab2 kernel: [ 295.686061] [<ffffffff8114751f>] iterate_supers+0x7f/0xe0
> Aug 19 18:31:26 fslab2 kernel: [ 295.691613] [<ffffffff81171775>] sys_sync+0x45/0x70
> Aug 19 18:31:26 fslab2 kernel: [ 295.696648] [<ffffffff8137b4c2>] 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...
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: bonnie triggers and endless numbers of stack traces
2011-08-19 16:45 bonnie triggers and endless numbers of stack traces Bernd Schubert
@ 2011-08-19 17:28 ` Bernd Schubert
2011-08-19 19:36 ` Josef Bacik
1 sibling, 0 replies; 6+ messages in thread
From: Bernd Schubert @ 2011-08-19 17:28 UTC (permalink / raw)
To: linux-btrfs
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.schubert@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.schubert@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) {
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: bonnie triggers and endless numbers of stack traces
2011-08-19 16:45 bonnie triggers and endless numbers of stack traces Bernd Schubert
2011-08-19 17:28 ` Bernd Schubert
@ 2011-08-19 19:36 ` Josef Bacik
2011-08-19 23:45 ` David Sterba
2011-08-22 8:17 ` Bernd Schubert
1 sibling, 2 replies; 6+ messages in thread
From: Josef Bacik @ 2011-08-19 19:36 UTC (permalink / raw)
To: Bernd Schubert; +Cc: linux-btrfs
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
Thanks,
Josef
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: bonnie triggers and endless numbers of stack traces
2011-08-19 19:36 ` Josef Bacik
@ 2011-08-19 23:45 ` David Sterba
2011-08-22 8:17 ` Bernd Schubert
1 sibling, 0 replies; 6+ messages in thread
From: David Sterba @ 2011-08-19 23:45 UTC (permalink / raw)
To: Josef Bacik; +Cc: Bernd Schubert, linux-btrfs
On Fri, Aug 19, 2011 at 03:36:55PM -0400, Josef Bacik wrote:
> 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
pulled on top of latest linus', with top commit:
"Btrfs: fix space leak when we fail to make an allocation"
but I still see it, xfstests/013.
david
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: bonnie triggers and endless numbers of stack traces
2011-08-19 19:36 ` Josef Bacik
2011-08-19 23:45 ` David Sterba
@ 2011-08-22 8:17 ` Bernd Schubert
2011-08-29 18:42 ` [PATCH debug] btrfs: ratelimit WARN_ON in use_block_rsv David Sterba
1 sibling, 1 reply; 6+ messages in thread
From: Bernd Schubert @ 2011-08-22 8:17 UTC (permalink / raw)
To: Josef Bacik; +Cc: linux-btrfs
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
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH debug] btrfs: ratelimit WARN_ON in use_block_rsv
2011-08-22 8:17 ` Bernd Schubert
@ 2011-08-29 18:42 ` David Sterba
0 siblings, 0 replies; 6+ messages in thread
From: David Sterba @ 2011-08-29 18:42 UTC (permalink / raw)
To: linux-btrfs; +Cc: David Sterba
A debugging helper, not really intended for merge.
From: David Sterba <dsterba@suse.cz>
Signed-off-by: David Sterba <dsterba@suse.cz>
---
fs/btrfs/extent-tree.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 44a3107..c5c1e7d 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -23,6 +23,7 @@
#include <linux/rcupdate.h>
#include <linux/kthread.h>
#include <linux/slab.h>
+#include <linux/ratelimit.h>
#include "compat.h"
#include "hash.h"
#include "ctree.h"
@@ -5703,7 +5704,13 @@ use_block_rsv(struct btrfs_trans_handle *trans,
if (!ret)
return block_rsv;
if (ret) {
- WARN_ON(1);
+ static DEFINE_RATELIMIT_STATE(_rs,
+ DEFAULT_RATELIMIT_INTERVAL,
+ /*DEFAULT_RATELIMIT_BURST*/ 2);
+ if (__ratelimit(&_rs)) {
+ printk(KERN_DEBUG "btrfs: block rsv returned %d\n", ret);
+ WARN_ON(1);
+ }
ret = reserve_metadata_bytes(trans, root, block_rsv, blocksize,
0);
if (!ret) {
--
1.7.6
^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2011-08-29 18:42 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-08-19 16:45 bonnie triggers and endless numbers of stack traces Bernd Schubert
2011-08-19 17:28 ` Bernd Schubert
2011-08-19 19:36 ` Josef Bacik
2011-08-19 23:45 ` David Sterba
2011-08-22 8:17 ` Bernd Schubert
2011-08-29 18:42 ` [PATCH debug] btrfs: ratelimit WARN_ON in use_block_rsv David Sterba
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.