On Wed, 2008-07-30 at 16:43 -0400, Chris Mason wrote: > On Wed, 2008-07-30 at 22:13 +0200, Jens Axboe wrote: > > [ rcu page cache ] > > > > > For btrfs's usage, it should be safe with a simple rcu_read_lock(), if > > > > the return is referenced safely. > > > > > > > > > > This btrfs code is basically a find_get_page without the get. It should > > > only be called when I know I already have a reference on the page. > > > > Then it's definitely safe ;-) > > > > Yeah, I'm testing on the latest git now and it all seems ok. I'll push > this out, thanks Sven.
Seems to crash for me with Linus' current tree. I thought it was something to do with my fixes for NFS export, but now I've hooked up a serial console and managed to catch it, I suspect not... BUG: unable to handle kernel paging request at ffff880107c2aa00 IP: [<ffffffffa03e73bc>] end_bio_extent_writepage+0x1f4/0x29c [btrfs] PGD 202063 PUD c067 PMD 10a844163 PTE 8000000107c2a160 Oops: 0000 [1] SMP DEBUG_PAGEALLOC CPU 3 Modules linked in: btrfs libcrc32c nfsd lockd nfs_acl auth_rpcgss exportfs mtdram jffs2 mtd zlib_deflate i915 drm bridge stp bnep rfcomm l2cap bluetooth fuse sunrpc ipv6 cpufreq_ondemand acpi_cpufreq freq_table dm_mirror dm_log dm_multipath dm_mod snd_pcsp snd_hda_intel snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device sr_mod cdrom snd_pcm_oss snd_mixer_oss firewire_ohci firewire_core snd_pcm floppy i2c_i801 i2c_core snd_timer pata_marvell crc_itu_t iTCO_wdt e1000e snd_hwdep snd_page_alloc ata_generic iTCO_vendor_support pata_acpi snd soundcore ahci ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd [last unloaded: jffs2] Pid: 3273, comm: btrfs Tainted: G W 2.6.27-rc1 #1 RIP: 0010:[<ffffffffa03e73bc>] [<ffffffffa03e73bc>] end_bio_extent_writepage+0x1f4/0x29c [btrfs] RSP: 0018:ffff88010e581e10 EFLAGS: 00010082 RAX: 0000000000000002 RBX: ffff880107c2aae0 RCX: 0000000000000001 RDX: 0000000000000005 RSI: ffff880107c2aae0 RDI: ffffffff810644db RBP: ffff88010e581e80 R08: ffff88010e581cb0 R09: ffff88000000d000 R10: 0000000000000002 R11: ffff88010e581d30 R12: ffff880107c2aa08 R13: ffff880107c2a9f8 R14: 0000000000080000 R15: ffffe200063eb920 FS: 0000000000000000(0000) GS:ffff880127c41e10(0000) knlGS:0000000000000000 CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b CR2: ffff880107c2aa00 CR3: 000000010b5b0000 CR4: 00000000000006e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process btrfs (pid: 3273, threadinfo ffff88010e580000, task ffff88010b190000) Stack: ffff88010b58e540 0000000000001000 ffff88010c60f1d8 0000000181065346 ffff88010a995d70 ffff88010c60f1b8 0000000000080000 0000000000000282 000000010e581e90 0000000000000000 ffff88010b5ff620 ffff88010b58e540 Call Trace: [<ffffffff810f1aa4>] bio_endio+0x2f/0x31 [<ffffffffa03d0bbf>] end_workqueue_fn+0x108/0x114 [btrfs] [<ffffffffa03ebdc8>] worker_loop+0x6b/0x14e [btrfs] [<ffffffffa03ebd5d>] ? worker_loop+0x0/0x14e [btrfs] [<ffffffff81057b34>] kthread+0x4e/0x7b [<ffffffff81011849>] child_rip+0xa/0x11 [<ffffffff81010b5e>] ? restore_args+0x0/0x30 [<ffffffff81057ae6>] ? kthread+0x0/0x7b [<ffffffff8101183f>] ? child_rip+0x0/0x11 Code: de e8 15 d5 ff ff 4c 39 75 c0 74 1a 73 13 be d5 05 00 00 48 c7 c7 fc fd 3e a0 e8 1c c5 c5 e0 eb 05 4d 85 e4 75 a4 4d 85 ed 74 19 <49> 8b 45 08 48 ff c0 4c 39 f0 75 0a 41 f6 85 80 00 00 00 02 75 RIP [<ffffffffa03e73bc>] end_bio_extent_writepage+0x1f4/0x29c [btrfs] RSP <ffff88010e581e10> CR2: ffff880107c2aa00 ---[ end trace 4eaa2a86a8e2da22 ]--- BUG: unable to handle kernel paging request at ffff880107ced918 IP: [<ffffffffa03e73bc>] end_bio_extent_writepage+0x1f4/0x29c [btrfs] PGD 202063 PUD c067 PMD 10a844163 PTE 8000000107ced160 Oops: 0000 [2] SMP DEBUG_PAGEALLOC CPU 3 Modules linked in: btrfs libcrc32c nfsd lockd nfs_acl auth_rpcgss exportfs mtdram jffs2 mtd zlib_deflate i915 drm bridge stp bnep rfcomm l2cap bluetooth fuse sunrpc ipv6 cpufreq_ondemand acpi_cpufreq freq_table dm_mirror dm_log dm_multipath dm_mod snd_pcsp snd_hda_intel snd_seq_dummy snd_seq_oss snd_seq_midi_event snd_seq snd_seq_device sr_mod cdrom snd_pcm_oss snd_mixer_oss firewire_ohci firewire_core snd_pcm floppy i2c_i801 i2c_core snd_timer pata_marvell crc_itu_t iTCO_wdt e1000e snd_hwdep snd_page_alloc ata_generic iTCO_vendor_support pata_acpi snd soundcore ahci ext3 jbd mbcache uhci_hcd ohci_hcd ehci_hcd [last unloaded: jffs2] Pid: 3274, comm: btrfs Tainted: G D W 2.6.27-rc1 #1 RIP: 0010:[<ffffffffa03e73bc>] [<ffffffffa03e73bc>] end_bio_extent_writepage+0x1f4/0x29c [btrfs] RSP: 0018:ffff88010b95fe10 EFLAGS: 00010082 RAX: 0000000000000002 RBX: ffff880107ced9f8 RCX: 0000000000000001 RDX: 0000000000000005 RSI: ffff880107ced9f8 RDI: ffffffff810644db RBP: ffff88010b95fe80 R08: ffff88010b95fcb0 R09: ffff88000000d000 R10: 0000000000000002 R11: ffff88010b95fd30 R12: ffff880107ced920 R13: ffff880107ced910 R14: 0000000000080000 R15: ffffe20006321d20 FS: 0000000000000000(0000) GS:ffff880127c41e10(0000) knlGS:0000000000000000 CS: 0010 DS: 0018 ES: 0018 CR0: 000000008005003b CR2: ffff880107ced918 CR3: 000000010b5b0000 CR4: 00000000000006e0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process btrfs (pid: 3274, threadinfo ffff88010b95e000, task ffff88010b192580) Stack: ffff88010a879240 0000000000001000 ffff88010c7a71d8 0000000181065346 ffff88010a9e3b70 ffff88010c7a71b8 0000000000080000 0000000000000282 000000010b95fe90 0000000000000000 ffff88010e59d8c0 ffff88010a879240 Call Trace: [<ffffffff810f1aa4>] bio_endio+0x2f/0x31 [<ffffffffa03d0bbf>] end_workqueue_fn+0x108/0x114 [btrfs] [<ffffffffa03ebdc8>] worker_loop+0x6b/0x14e [btrfs] [<ffffffffa03ebd5d>] ? worker_loop+0x0/0x14e [btrfs] [<ffffffff81057b34>] kthread+0x4e/0x7b [<ffffffff81011849>] child_rip+0xa/0x11 [<ffffffff81010b5e>] ? restore_args+0x0/0x30 [<ffffffff81057ae6>] ? kthread+0x0/0x7b [<ffffffff8101183f>] ? child_rip+0x0/0x11 Code: de e8 15 d5 ff ff 4c 39 75 c0 74 1a 73 13 be d5 05 00 00 48 c7 c7 fc fd 3e a0 e8 1c c5 c5 e0 eb 05 4d 85 e4 75 a4 4d 85 ed 74 19 <49> 8b 45 08 48 ff c0 4c 39 f0 75 0a 41 f6 85 80 00 00 00 02 75 RIP [<ffffffffa03e73bc>] end_bio_extent_writepage+0x1f4/0x29c [btrfs] RSP <ffff88010b95fe10> CR2: ffff880107ced918 ---[ end trace 4eaa2a86a8e2da22 ]--- -- David Woodhouse Open Source Technology Centre [EMAIL PROTECTED] Intel Corporation -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html