fcntl spinlock in Linux?

Volker Lendecke Volker.Lendecke at SerNet.DE
Thu Aug 15 00:11:17 MDT 2013


On Wed, Aug 14, 2013 at 10:52:43AM -0400, Alex Korobkin wrote:
> Yes, sorry for bad wording. The machine was hung, not crashed.
> 
> Here is a trace from SysRq L:
> 
> [363278.604569] Call Trace:
> [363278.604578]  [<ffffffff8117e570>] lock_flocks+0x10/0x20
> [363278.604584]  [<ffffffff8117fbc1>] __posix_lock_file+0x41/0x5c0
> [363278.604590]  [<ffffffff8118033b>] vfs_lock_file+0x3b/0x40
> [363278.604596]  [<ffffffff8118064f>] fcntl_setlk+0x16f/0x320
> [363278.604603]  [<ffffffff811493b7>] sys_fcntl+0x167/0x5c0
> [363278.604609]  [<ffffffff8169e112>] system_call_fastpath+0x16/0x1b
> [363278.604613] Code: c3 0f 1f 84 00 00 00 00 00 55 b8 00 01 00 00 48 89 e5
> f0 66 0f c1 07 89 c2 66 c1 ea 08 38 c2 74 11 0f 1f 84 00 00 00 00 00 f3 90
> <0f> b6 07 38 c2 75 f7 c9 c3 0f 1f 44 00 00 55 48 89 e5 ff 14 25
> 
> Machine code quoted there can seemingly be translated back into
> 
> void lock_flocks(void)
> {
>        spin_lock(&file_lock_lock);
> }
> 
> in the kernel.
> 
> 
> > The discussion suggests this patch to try with the kernel:
> > > https://lists.samba.org/archive/samba-technical/2013-January/090224.html
> > >
> > > I'm not very confident about patching the kernel, and curious if there is
> > > anything I could try to mitigate it on Samba's side. What would you
> > > recommend?
> > >
> >
> > The 3.11 kernel will be getting a first round of patches that breaks up
> > the global file_lock_lock spinlock into a per-inode lock for the most
> > part, and makes some other scalability improvements. Without knowing
> > what specific problem you're having I can't really say whether those
> > changes will help you however.
> >
> > I'm also working on a set of patches to help address the thundering
> > herd problem when a lock is released. That was the main problem that
> > Volker saw. I have a scheme to address that too and a set of patches,
> > but it's 3.12 material at best (and probably more like 3.13).
> >
> > --
> > Jeff Layton <jlayton at redhat.com>
> >
> 
> I'm attaching a per-process stack trace as well for you to have a look.

Can you get us a few popular user space stack traces under
load as well? Maybe there are inefficiencies in the tdb use
in your case that we might fix in Samba itself.

Volker

-- 
SerNet GmbH, Bahnhofsallee 1b, 37081 Göttingen
phone: +49-551-370000-0, fax: +49-551-370000-9
AG Göttingen, HRB 2816, GF: Dr. Johannes Loxen
http://www.sernet.de, mailto:kontakt at sernet.de


More information about the samba-technical mailing list