Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 14 Apr 2008 08:55:49 +0100
From:      Doug Rabson <dfr@rabson.org>
To:        Oliver Brandmueller <ob@e-Gitt.NET>
Cc:        Doug Rabson <dfr@FreeBSD.org>, freebsd-stable@freebsd.org
Subject:   Re: panic with smbfs after MFC of kernel space locking
Message-ID:  <DF95DA37-D9D2-4BB4-AC73-9ED4621F704B@rabson.org>
In-Reply-To: <20080414071957.GJ37437@e-Gitt.NET>
References:  <20080414071957.GJ37437@e-Gitt.NET>

next in thread | previous in thread | raw e-mail | index | archive | help

On 14 Apr 2008, at 08:19, Oliver Brandmueller wrote:

> Hello and good morning,
>
> I upgraded to 7-STABLE after the MFC of the kernel space locking.  
> Since
> then I experience panics with programs that strongly rely in file
> locking on CIFS (smbfs) mounts:
>
> Fatal trap 12: page fault while in kernel mode
> cpuid = 0; apic id = 00
> fault virtual address   = 0x13bf2a8
> fault code              = supervisor read data, page not present
> instruction pointer     = 0x8:0xffffffff8023305a
> stack pointer           = 0x10:0xffffffffc72d7920
> frame pointer           = 0x10:0xffffffffc72d7950
> code segment            = base 0x0, limit 0xfffff, type 0x1b
>                        = DPL 0, pres 1, long 1, def32 0, gran 1
> processor eflags        = interrupt enabled, resume, IOPL = 0
> current process         = 42037 (perl)
> [thread pid 42037 tid 100124 ]
> Stopped at      lf_getblock+0x2a:       cmpq    %r12,0x8(%rbx)
> db> bt
> Tracing pid 42037 tid 100124 td 0xffffff00037dc350
> lf_getblock() at lf_getblock+0x2a
> lf_advlockasync() at lf_advlockasync+0x4f5
> lf_advlock() at lf_advlock+0x47
> smbfs_advlock() at smbfs_advlock+0x19a
> flock() at flock+0x150
> syscall() at syscall+0x256
> Xfast_syscall() at Xfast_syscall+0xab
> --- syscall (131, FreeBSD ELF64, flock), rip = 0x800c0a3fc, rsp =
> 0x7fffffffecc8, rbp = 0x8325e8 ---
>
> As far as I can see there were changes for all kinds of file systems
> with the MFC, but no change in the smbfs filesystem. I also couldn't
> find any change in HEAD's smbfs, so it was not a missing MFC, but
> probably the fs was missed in the changes at all.
>
> Could anyone with a little better programming skills than me probably
> have a look at it? From the diffs of the other filesystems it seems  
> like
> it's not a real big change, but mainly adding the function.

I added a new vnode operation to support the new lock manager but this  
operation only needs to be implemented on filesystems that can be  
exported via NFS. I assumed that this was not the case for SMBFS.  
Could you find me a line number for lf_getblock+0x2a - something like  
this should do it:

	# gdb /boot/kernel/kernel
	(gdb) l *(lf_getblock+0x2a)





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?DF95DA37-D9D2-4BB4-AC73-9ED4621F704B>