Re: [DEBUG PATCH] for anybody who gets a panic due to ENOSPC

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I've generated another allocation error with the debugging patch installed.

In order to get a better idea of disk usage around the period of the
allocation errors, I made up a bash script to dump 'df -T
/var/tmp/portage' every 3 seconds to the terminal (where my btrfs
drive is mounted at /var/tmp/portage) until 20 polls after dmesg goes
over 20 lines in length.

For this error, max usage was shown as:
Filesystem    Type   1K-blocks      Used Available Use% Mounted on
/dev/sdc2    btrfs     3510200    890424   2619776  26% /var/tmp/portage

The dmesg output did show '[ 4171.126131] space_info has 0 free, is
full', but this did not agree with the 'df -T' output.  Let me know if
you can think of something else I should be looking at here.

My test partition is ~3.3-3.4 GB (3,510,200 1K blocks).  I am mounting
btrfs with compression turned on.

The drive is 10 GB total, so I can increase size, but I'm trying to
select a size to highlight problems.  Let me know if you'd like to
test some other sizes.

Here's a summary of usage for this drive:
(1)  Create drive 'mkfs.btrfs'
(2)  Fill Drive to ~66% by uncompressing the FlightGear source package
multiple times.
(3)  Delete all files using 'rm -rf' (I was wondering if there was a
repeatable problem with this kind of operation, but it worked fine.
No errors to this point, and the drive indicated near-empty after this
(~300k still allocated)).
(4)  Beginning compiling Open Office with Gentoo Portage build manager
(portage uses /var/tmp/portage as a build directory).

During the OpenOffice build process, the build crashed in conjunction
with the following dmesg output:

[ 4171.126120] we were searching for 4096 bytes, num_bytes 4096, loop
2, allowed_alloc 1
[ 4171.126129] allocation failed flags 36, wanted 4096
[ 4171.126131] space_info has 0 free, is full
[ 4171.126523] block group 29360128 has 179699712 bytes, 167817216
used 11882496 pinned 0 reserved
[ 4171.126528] 0 blocks of free space at or bigger than bytes is
[ 4171.126582] ------------[ cut here ]------------
[ 4171.126585] kernel BUG at
/var/tmp/portage/sys-fs/btrfs-9998/work/btrfs-9998/extent-tree.c:3088!
[ 4171.126587] invalid opcode: 0000 [#1]
[ 4171.126589] Modules linked in: btrfs snd_pcm_oss snd_mixer_oss
snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device
ipv6 ppdev pcspkr nvidia(P) snd_intel8x0 snd_ac97_codec ac97_bus
snd_pcm snd_timer snd snd_page_alloc forcedeth ohci_hcd i2c_nforce2
ssb pcmcia i2c_core parport_pc parport nvidia_agp sr_mod
scsi_wait_scan sl811_hcd uhci_hcd ehci_hcd
[ 4171.126606]
[ 4171.126610] Pid: 1227, comm: find Tainted: P          (2.6.27-sabayon-r10 #1)
[ 4171.126613] EIP: 0060:[<f8e2f23e>] EFLAGS: 00210257 CPU: 0
[ 4171.126650] EIP is at __btrfs_reserve_extent+0x2be/0x430 [btrfs]
[ 4171.126653] EAX: ed75c940 EBX: f1e1b180 ECX: f4ea28a0 EDX: 00000001
[ 4171.126656] ESI: ed75c938 EDI: ed75c938 EBP: ed75c940 ESP: e4447c48
[ 4171.126658]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
[ 4171.126661] Process find (pid: 1227, ti=e4446000 task=f4ea28a0
task.ti=e4446000)
[ 4171.126663] Stack: f8e6d944 01c00000 00000000 0ab60000 00000000
0a00b000 00000000 00b55000
[ 4171.126668]        00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000024
[ 4171.126672]        0c75dfff 00000000 ed684e00 f20f9078 ed618000
00000005 00000000 ed684e00
[ 4171.126677] Call Trace:
[ 4171.126680]  [<f8e2f89f>] btrfs_alloc_extent+0x9f/0x140 [btrfs]
[ 4171.126700]  [<f8e2fa0e>] btrfs_alloc_free_block+0xce/0x110 [btrfs]
[ 4171.126718]  [<f8e242e9>] __btrfs_cow_block+0x219/0x870 [btrfs]
[ 4171.126737]  [<f8e392c2>] verify_parent_transid+0x62/0x1a0 [btrfs]
[ 4171.126755]  [<f8e24fec>] btrfs_cow_block+0x13c/0x1e0 [btrfs]
[ 4171.126773]  [<f8e28190>] btrfs_search_slot+0x1c0/0x7f0 [btrfs]
[ 4171.126791]  [<f8e5690c>] map_private_extent_buffer+0x8c/0x140 [btrfs]
[ 4171.126814]  [<c0195aa0>] path_walk+0x50/0x90
[ 4171.126822]  [<f8e38aac>] btrfs_lookup_inode+0x3c/0xc0 [btrfs]
[ 4171.126841]  [<f8e42906>] btrfs_update_inode+0x46/0xc0 [btrfs]
[ 4171.126861]  [<f8e43a7f>] btrfs_dirty_inode+0x3f/0x60 [btrfs]
[ 4171.126881]  [<c01a8c90>] __mark_inode_dirty+0x30/0x160
[ 4171.126887]  [<c0197f90>] filldir64+0x0/0xe0
[ 4171.126890]  [<c019f837>] touch_atime+0xc7/0xf0
[ 4171.126896]  [<c01981f6>] vfs_readdir+0xa6/0xb0
[ 4171.126898]  [<c019826f>] sys_getdents64+0x6f/0xc0
[ 4171.126901]  [<c010303d>] sysenter_do_call+0x12/0x21
[ 4171.126906]  =======================
[ 4171.126908] Code: 89 44 24 04 e8 f4 e8 2e c7 89 d8 8b 54 24 68 8b
4c 24 6c e8 c5 bf 03 00 8b 36 8b 06 0f 18 00 90 39 fe 75 90 89 e8 e8
82 29 30 c7 <0f> 0b eb fe 8b 5c 24 48 8b 74 24 50 8b 83 f4 00 00 00 8b
50 20
[ 4171.126927] EIP: [<f8e2f23e>] __btrfs_reserve_extent+0x2be/0x430
[btrfs] SS:ESP 0068:e4447c48
[ 4171.126947] ---[ end trace 91e641b298e7b0de ]---
[ 4171.129768] we were searching for 4096 bytes, num_bytes 4096, loop
2, allowed_alloc 1
[ 4171.129774] allocation failed flags 36, wanted 4096
[ 4171.129777] space_info has 0 free, is full
[ 4171.129779] block group 29360128 has 179699712 bytes, 167817216
used 11882496 pinned 0 reserved
[ 4171.129782] 0 blocks of free space at or bigger than bytes is
[ 4171.129817] ------------[ cut here ]------------
[ 4171.129819] kernel BUG at
/var/tmp/portage/sys-fs/btrfs-9998/work/btrfs-9998/extent-tree.c:3088!
[ 4171.129822] invalid opcode: 0000 [#2]
[ 4171.129824] Modules linked in: btrfs snd_pcm_oss snd_mixer_oss
snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device
ipv6 ppdev pcspkr nvidia(P) snd_intel8x0 snd_ac97_codec ac97_bus
snd_pcm snd_timer snd snd_page_alloc forcedeth ohci_hcd i2c_nforce2
ssb pcmcia i2c_core parport_pc parport nvidia_agp sr_mod
scsi_wait_scan sl811_hcd uhci_hcd ehci_hcd
[ 4171.129840]
[ 4171.129843] Pid: 30919, comm: localize-ooo Tainted: P      D
(2.6.27-sabayon-r10 #1)
[ 4171.129846] EIP: 0060:[<f8e2f23e>] EFLAGS: 00210257 CPU: 0
[ 4171.129874] EIP is at __btrfs_reserve_extent+0x2be/0x430 [btrfs]
[ 4171.129876] EAX: ed75c940 EBX: f1e1b180 ECX: f4ea2080 EDX: 00000001
[ 4171.129879] ESI: ed75c938 EDI: ed75c938 EBP: ed75c940 ESP: e93c7b2c
[ 4171.129881]  DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
[ 4171.129884] Process localize-ooo (pid: 30919, ti=e93c6000
task=f4ea2080 task.ti=e93c6000)
[ 4171.129886] Stack: f8e6d944 01c00000 00000000 0ab60000 00000000
0a00b000 00000000 00b55000
[ 4171.129891]        00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000024
[ 4171.129895]        c0133b7e 00000000 ed684e00 f20f9028 ed618000
00000005 00000000 ed684e00
[ 4171.129900] Call Trace:
[ 4171.129902]  [<c0133b7e>] update_wall_time+0x25e/0x7f0
[ 4171.129911]  [<f8e2f89f>] btrfs_alloc_extent+0x9f/0x140 [btrfs]
[ 4171.129930]  [<f8e2fa0e>] btrfs_alloc_free_block+0xce/0x110 [btrfs]
[ 4171.129949]  [<f8e242e9>] __btrfs_cow_block+0x219/0x870 [btrfs]
[ 4171.129967]  [<f8e392c2>] verify_parent_transid+0x62/0x1a0 [btrfs]
[ 4171.129985]  [<f8e24fec>] btrfs_cow_block+0x13c/0x1e0 [btrfs]
[ 4171.130003]  [<f8e28190>] btrfs_search_slot+0x1c0/0x7f0 [btrfs]
[ 4171.130010]  [<c0172735>] do_wp_page+0x315/0x4e0
[ 4171.130010]  [<f8e38aac>] btrfs_lookup_inode+0x3c/0xc0 [btrfs]
[ 4171.130010]  [<c011a819>] check_preempt_wakeup+0xe9/0x140
[ 4171.130010]  [<f8e42906>] btrfs_update_inode+0x46/0xc0 [btrfs]
[ 4171.130010]  [<f8e43a7f>] btrfs_dirty_inode+0x3f/0x60 [btrfs]
[ 4171.130010]  [<c01a8c90>] __mark_inode_dirty+0x30/0x160
[ 4171.130010]  [<c019f837>] touch_atime+0xc7/0xf0
[ 4171.130010]  [<c0165e9f>] generic_file_aio_read+0x56f/0x5f0
[ 4171.130010]  [<c018c275>] do_sync_read+0xd5/0x120
[ 4171.130010]  [<c010264a>] do_notify_resume+0x37a/0x750
[ 4171.130010]  [<c012e610>] autoremove_wake_function+0x0/0x40
[ 4171.130010]  [<c041c64c>] security_file_permission+0xc/0x10
[ 4171.130010]  [<c018c31e>] rw_verify_area+0x5e/0xd0
[ 4171.130010]  [<c018c1a0>] do_sync_read+0x0/0x120
[ 4171.130010]  [<c018cbad>] vfs_read+0x9d/0x160
[ 4171.130010]  [<c018cf01>] sys_read+0x41/0x70
[ 4171.130010]  [<c010303d>] sysenter_do_call+0x12/0x21
[ 4171.130010]  =======================
[ 4171.130010] Code: 89 44 24 04 e8 f4 e8 2e c7 89 d8 8b 54 24 68 8b
4c 24 6c e8 c5 bf 03 00 8b 36 8b 06 0f 18 00 90 39 fe 75 90 89 e8 e8
82 29 30 c7 <0f> 0b eb fe 8b 5c 24 48 8b 74 24 50 8b 83 f4 00 00 00 8b
50 20
[ 4171.130010] EIP: [<f8e2f23e>] __btrfs_reserve_extent+0x2be/0x430
[btrfs] SS:ESP 0068:e93c7b2c
[ 4171.130201] ---[ end trace 91e641b298e7b0de ]---
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux