Sure thing! I'll get some feedback to you tomorrowish. Thanks. ~Milo
On Jan 27, 2010, at 9:58 AM, Phil Carns wrote: > Hi Andrew and Milo, > > If you are still interested in trying PVFS on 2.6.32, could you try the > current CVS version of PVFS along with the attached patch? > > This isn't the final fix, but it would be helpful if you could confirm that > it at least works around the problem. This patch keeps the module from using > the kernel's BDI infrastructure, which changed quite a bit in 2.6.32. You > shouldn't notice any difference in functionality. > > thanks! > -Phil > > Andrew Fischer wrote: >> Not to jump in unannounced, but I just saw this same behavior on my system. >> I built the CVS branch pvfs-2-8-branch against the 2.6.32 kernel >> today. Loading the module results in the same warning: >> WARNING: at fs/super.c:954 vfs_kern_mount >> And trying to access the mount point, either with a file operation or >> a simple 'ls' results in: >> BUG: unable to handle kernel NULL pointer dereference >> This also hangs the machine, requiring a reboot. In my case, I was the >> root user at the time. >>> build a module for the 2.6.32 kernel, >>> >>> Message: 1 >>> Date: Tue, 5 Jan 2010 17:50:56 -0500 >>> From: Milo <[email protected]> >>> Subject: [Pvfs2-users] PVFS2 (cvs) on Kernel 2.6.32 >>> To: Sam Lang <[email protected]> >>> Cc: Jason Sommerfield <[email protected]>, pvfs2-users >>> <[email protected]> >>> Message-ID: <[email protected]> >>> Content-Type: text/plain; charset=us-ascii >>> >>> Hi, Sam. We've recently tried to use your pvfs-2-8-branch CVS branch to >>> build a module for the 2.6.32 kernel, following your instructions to >>> Christian. We're getting the following kernel panics, however. The following >>> is from Jason Sommerfield's email to me: >>> >>> When I run the init script that loads the kernel module, the following comes >>> up on the serial console (but the system does NOT crash): >>> >>> ------------------------------------------------------------------------ >>> >>> cloud3u4 login: [ 788.802335] pvfs2: module version 2.8.1 loaded >>> [ 788.881766] ------------[ cut here ]------------ >>> [ 788.937066] WARNING: at fs/super.c:954 vfs_kern_mount+0x192/0x1a0() >>> [ 789.012140] Hardware name: empty >>> [ 789.050833] pvfs2 set sb->s_maxbytes to negative value >>> (-9223372036854775808) >>> [ 789.136334] Modules linked in: pvfs2 w83627hf_wdt nfs lockd nfs_acl >>> auth_rpcgss sunrpc fuse coretemp w83627ehf w83793 hwmon_vid i5k_amb i2c_i801 >>> i5400_edac tpm_infineon pcspkr serio_raw tpm tpm_bios edac_core mptsas >>> mptscsih mptbase ehci_hcd scsi_transport_sas uhci_hcd e1000e netxen_nic >>> floppy [last unloaded: scsi_wait_scan] >>> [ 789.485468] Pid: 18550, comm: mount Tainted: G W 2.6.32-js6 #11 >>> [ 789.564643] Call Trace: >>> [ 789.593974] [<ffffffff81125c92>] ? vfs_kern_mount+0x192/0x1a0 >>> [ 789.663872] [<ffffffff8105c4a8>] warn_slowpath_common+0x78/0xd0 >>> [ 789.735845] [<ffffffff8105c584>] warn_slowpath_fmt+0x64/0x70 >>> [ 789.804701] [<ffffffffa020183e>] ? pvfs2_get_sb+0x28e/0x320 [pvfs2] >>> [ 789.880845] [<ffffffff8111d48b>] ? __alloc_percpu+0xb/0x10 >>> [ 789.947612] [<ffffffff81213211>] ? security_sb_kern_mount+0x11/0x20 >>> [ 790.023747] [<ffffffff81125c92>] vfs_kern_mount+0x192/0x1a0 >>> [ 790.091570] [<ffffffff81125d0e>] do_kern_mount+0x4e/0x110 >>> [ 790.157295] [<ffffffff81140380>] do_mount+0x290/0x910 >>> [ 790.218870] [<ffffffff810f8d63>] ? strndup_user+0x83/0xc0 >>> [ 790.284601] [<ffffffff81140ab3>] sys_mount+0xb3/0xe0 >>> [ 790.345138] [<ffffffff81448959>] ? lockdep_sys_exit_thunk+0x35/0x67 >>> [ 790.421274] [<ffffffff81011f82>] system_call_fastpath+0x16/0x1b >>> [ 790.493249] ---[ end trace 4eaa2a86a8e2da24 ]--- >>> >>> ------------------------------------------------------------------------ >>> >>> >>> >>> When I try to do an 'ls /pvfs2/' (as clouduser, not root FWIW), the machine >>> appears to crash (serial console output) : >>> >>> ------------------------------------------------------------------------ >>> >>> [ 1072.353527] BUG: unable to handle kernel NULL pointer dereference at >>> 0000000000000030 >>> [ 1072.363488] IP: [<ffffffff81145068>] __mark_inode_dirty+0xd8/0x180 >>> [ 1072.363488] PGD 42eb6d067 PUD 42b877067 PMD 0 >>> [ 1072.363488] Oops: 0000 [#1] SMP >>> [ 1072.363488] last sysfs file: /sys/devices/platform/coretemp.7/temp1_label >>> [ 1072.363488] CPU 7 >>> [ 1072.363488] Modules linked in: pvfs2 w83627hf_wdt nfs lockd nfs_acl >>> auth_rpcgss sunrpc fuse coretemp w83627ehf w83793 hwmon_vid i5k_amb i2c_i801 >>> i5400_edac tpm_infineon pcspkr serio_raw tpm tpm_bios edac_core mptsas >>> mptscsih mptbase ehci_hcd scsi_transport_sas uhci_hcd e1000e netxen_nic >>> floppy [last unloaded: scsi_wait_scan] >>> [ 1072.363488] Pid: 19287, comm: ls Tainted: G W 2.6.32-js6 #11 >>> empty >>> [ 1072.363488] RIP: 0010:[<ffffffff81145068>] [<ffffffff81145068>] >>> __mark_inode_dirty+0xd8/0x180 >>> [ 1072.363488] RSP: 0018:ffff88042cd3be08 EFLAGS: 00010246 >>> [ 1072.363488] RAX: ffff8804232c03c8 RBX: 0000000000000000 RCX: >>> 0000000000000000 >>> [ 1072.363488] RDX: 0000000000000000 RSI: ffff8800434100e0 RDI: >>> 0000000000000246 >>> [ 1072.363488] RBP: ffff88042cd3be28 R08: ffffffff8166c398 R09: >>> 0000000000000001 >>> [ 1072.363488] R10: 0000000000000000 R11: 00000000000001e1 R12: >>> ffff8804232c0198 >>> [ 1072.363488] R13: ffffffffa020e2a0 R14: 000000000000000a R15: >>> ffff88042bd8c8c0 >>> [ 1072.363488] FS: 00007f7aaef15770(0000) GS:ffff880043400000(0000) >>> knlGS:0000000000000000 >>> [ 1072.363488] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b >>> [ 1072.363488] CR2: 0000000000000030 CR3: 000000042a847000 CR4: >>> 00000000000406e0 >>> [ 1072.363488] DR0: 0000000000000000 DR1: 0000000000000000 DR2: >>> 0000000000000000 >>> [ 1072.363488] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: >>> 0000000000000400 >>> [ 1072.363488] Process ls (pid: 19287, threadinfo ffff88042cd3a000, task >>> ffff88042b234620) >>> [ 1072.363488] Stack: >>> [ 1072.363488] ffff88042cd3be28 ffff8804232c0198 0000000000000009 >>> ffffc900025320dc >>> [ 1072.363488] <0> ffff88042cd3bee8 ffffffffa01ffaaa ffffffff81133b10 >>> ffff88042cd3bf38 >>> [ 1072.363488] <0> 000000092cd3a000 0000000100000000 ffff88037d571000 >>> ffff88042de60000 >>> [ 1072.363488] Call Trace: >>> [ 1072.363488] [<ffffffffa01ffaaa>] pvfs2_readdir+0x58a/0x890 [pvfs2] >>> [ 1072.363488] [<ffffffff81133b10>] ? filldir+0x0/0xe0 >>> [ 1072.363488] [<ffffffff81133b10>] ? filldir+0x0/0xe0 >>> [ 1072.363488] [<ffffffff81133d95>] vfs_readdir+0xb5/0xd0 >>> [ 1072.363488] [<ffffffff81133f0b>] sys_getdents+0x8b/0x100 >>> [ 1072.363488] [<ffffffff81449aca>] ? error_exit+0x6a/0xb0 >>> [ 1072.363488] [<ffffffff81011f82>] system_call_fastpath+0x16/0x1b >>> [ 1072.363488] Code: 83 7c 24 08 00 74 7c 83 e2 60 75 77 83 e1 07 0f 1f 40 >>> 00 75 6e 49 8b 84 24 28 02 00 00 4c 8b a8 e8 00 00 00 49 8b 9d f0 01 00 00 >>> <f6> 43 30 02 75 06 f6 43 28 10 74 73 48 8b 05 45 38 58 00 49 8b >>> [ 1072.363488] RIP [<ffffffff81145068>] __mark_inode_dirty+0xd8/0x180 >>> [ 1072.363488] RSP <ffff88042cd3be08> >>> [ 1072.363488] CR2: 0000000000000030 >>> [ 1075.435146] ---[ end trace 4eaa2a86a8e2da25 ]--- >>> >>> ------------------------------------------------------------------------ >>> >>> Looks like a null pointer in pvfs2_readdir? Any ideas? >>> >>> ~Milo >>> >>> >>> ------------------------------ >>> >>> _______________________________________________ >>> Pvfs2-users mailing list >>> [email protected] >>> http://www.beowulf-underground.org/mailman/listinfo/pvfs2-users >>> >>> >>> End of Pvfs2-users Digest, Vol 48, Issue 2 >>> ****************************************** >>> > > Index: src/kernel/linux-2.6/file.c > =================================================================== > RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/file.c,v > retrieving revision 1.153 > diff -a -u -p -r1.153 file.c > --- src/kernel/linux-2.6/file.c 1 Oct 2009 16:51:37 -0000 1.153 > +++ src/kernel/linux-2.6/file.c 27 Jan 2010 14:51:48 -0000 > @@ -71,9 +71,6 @@ int pvfs2_file_open( > > inode->i_mapping->host = inode; > inode->i_mapping->a_ops = &pvfs2_address_operations; > -#ifndef PVFS2_LINUX_KERNEL_2_4 > - inode->i_mapping->backing_dev_info = &pvfs2_backing_dev_info; > -#endif > > if (S_ISDIR(inode->i_mode)) > { > @@ -3044,8 +3041,6 @@ static int pvfs2_file_mmap(struct file * > vma->vm_flags &= ~VM_MAYWRITE; > return generic_file_mmap(file, vma); > #else > - /* backing_dev_info isn't present on 2.4.x */ > - inode->i_mapping->backing_dev_info = &pvfs2_backing_dev_info; > return generic_file_readonly_mmap(file, vma); > #endif > } > Index: src/kernel/linux-2.6/inode.c > =================================================================== > RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/inode.c,v > retrieving revision 1.88 > diff -a -u -p -r1.88 inode.c > --- src/kernel/linux-2.6/inode.c 30 Jun 2009 16:25:38 -0000 1.88 > +++ src/kernel/linux-2.6/inode.c 27 Jan 2010 14:51:48 -0000 > @@ -131,16 +131,6 @@ static int pvfs2_releasepage(struct page > return 0; > } > > -struct backing_dev_info pvfs2_backing_dev_info = > -{ > - .ra_pages = 0, > -#ifdef HAVE_BDI_MEMORY_BACKED > - /* old interface, up through 2.6.11 */ > - .memory_backed = 1 /* does not contribute to dirty memory */ > -#else > - .capabilities = BDI_CAP_NO_ACCT_DIRTY | BDI_CAP_NO_WRITEBACK, > -#endif > -}; > #endif /* !PVFS2_LINUX_KERNEL_2_4 */ > > /** PVFS2 implementation of address space operations */ > @@ -152,7 +142,7 @@ struct address_space_operations pvfs2_ad > .readpage = pvfs2_readpage, > .readpages = pvfs2_readpages, > .invalidatepage = pvfs2_invalidatepage, > - .releasepage = pvfs2_releasepage > + .releasepage = pvfs2_releasepage, > #endif > }; > > @@ -577,9 +567,6 @@ struct inode *pvfs2_get_custom_inode_com > inode->i_bdev = NULL; > inode->i_cdev = NULL; > inode->i_mapping->a_ops = &pvfs2_address_operations; > -#ifndef PVFS2_LINUX_KERNEL_2_4 > - inode->i_mapping->backing_dev_info = &pvfs2_backing_dev_info; > -#endif > > gossip_debug(GOSSIP_INODE_DEBUG, "pvfs2_get_custom_inode: inode %p > allocated\n " > "(pvfs2_inode is %p | sb is %p)\n", inode, > Index: src/kernel/linux-2.6/super.c > =================================================================== > RCS file: /projects/cvsroot/pvfs2-1/src/kernel/linux-2.6/super.c,v > retrieving revision 1.115 > diff -a -u -p -r1.115 super.c > --- src/kernel/linux-2.6/super.c 26 Jan 2010 01:23:40 -0000 1.115 > +++ src/kernel/linux-2.6/super.c 27 Jan 2010 14:51:49 -0000 > @@ -1448,22 +1448,6 @@ free_op: > static void pvfs2_flush_sb( > struct super_block *sb) > { > -#ifdef HAVE_SB_DIRTY_LIST > - if (!list_empty(&sb->s_dirty)) > -#else > - if (!list_empty(&sb->s_bdi->wb.b_dirty)) > -#endif > - { > - struct inode *inode = NULL; > -#ifdef HAVE_SB_DIRTY_LIST > - list_for_each_entry (inode, &sb->s_dirty, i_list) > -#else > - list_for_each_entry (inode, &sb->s_bdi->wb.b_dirty, i_list) > -#endif > - { > - pvfs2_flush_inode(inode); > - } > - } > return; > } > _______________________________________________ Pvfs2-users mailing list [email protected] http://www.beowulf-underground.org/mailman/listinfo/pvfs2-users
