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

Reply via email to