From: Oliver Neukum <oliver@neukum.name>
To: Dave Hansen <haveblue@us.ibm.com>
Cc: Thunder from the hill <thunder@ngforever.de>,
Greg KH <greg@kroah.com>,
kernel-janitor-discuss
<kernel-janitor-discuss@lists.sourceforge.net>,
linux-kernel@vger.kernel.org
Subject: Re: BKL removal
Date: Mon, 8 Jul 2002 08:34:09 +0200 [thread overview]
Message-ID: <200207080834.09231.oliver@neukum.name> (raw)
In-Reply-To: <3D28D291.3020706@us.ibm.com>
> > The BKL, unless used unbalanced, can never cause a bug. It could be
> > insufficient or superfluous, but never be really buggy in itself.
>
> Does incredibly high lock contention qualify as a bug?
Only if it occurs at a place that is used often. Even then it's
a minor bug, while a race is always a race.
> >> Is it really okay to "lock the whole kernel" because of one
> >> struct file? This brings us back to spinlocks...
> >>
> >> You're possibly right about this one. What did Greg K-H say?
> >
> > I don't speak for Greg, but in this example it could be dropped
> > IMO. The spinlock protects the critical section anyway. As a rule,
> > if you do a kmalloc without GFP_ATOMIC under BKL you are doing
> > either insufficient locking (you may need a semaphore) or useless
> > locking.
>
> Don't forget that the BKL is released on sleep. It is OK to hold it
Exactly therefore it won't protect you from reentrance if you do
something that sleeps. If that's the case, you've found a race condition.
> over a schedule()able operation. If I remember right, there is no
> real protection needed for the file->private_data either because there
> is 1 and only 1 struct file per open, and the data is not shared among
> struct files.
But between threads. Anyway, this was an open, if you use struct file
before open returns even the BKL can't help you.
> > This should have been posted on linux-usb long ago.
>
> I just pulled it out of thin air 10 minutes ago!
Yes, I understand. But this is a symptom. We should have heard
about it.
You need to understand that people who run UP mostly won't
care about SMP beyond making sure that the drivers are SMP-safe.
This is not true for core kernel code, but for devices outside
the block layer and perhaps some network drivers, that's the case.
So you do the greps and question locking usage on the right lists.
It's quite important, you might uncover bugs and speed up the kernel.
And you need to be persistent about it. Take your time to find out why
the lock is used. Or why it makes no sense.
You should be able to improve the locking situation that way, with respect
to BKL contention and driver quality.
Regards
Oliver
next prev parent reply other threads:[~2002-07-08 6:30 UTC|newest]
Thread overview: 98+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <Pine.LNX.4.44L.0207061306440.8346-100000@imladris.surriel.com>
[not found] ` <3D27390E.5060208@us.ibm.com>
2002-07-07 20:55 ` BKL removal Greg KH
2002-07-07 21:28 ` Oliver Neukum
2002-07-07 21:58 ` Dave Hansen
2002-07-07 22:38 ` Oliver Neukum
2002-07-07 21:35 ` Dave Hansen
2002-07-07 21:55 ` Thunder from the hill
2002-07-07 22:42 ` Dave Hansen
2002-07-07 23:07 ` Thunder from the hill
2002-07-07 23:23 ` Dave Hansen
2002-07-07 23:34 ` Thunder from the hill
2002-07-07 23:42 ` Sean Neakums
2002-07-07 23:31 ` Oliver Neukum
2002-07-07 23:45 ` Dave Hansen
2002-07-08 2:34 ` Matthew Wilcox
2002-07-08 2:52 ` Dave Hansen
2002-07-08 3:06 ` Alexander Viro
2002-07-08 12:33 ` Matthew Wilcox
2002-07-08 14:53 ` Dave Hansen
2002-07-08 12:29 ` Matthew Wilcox
2002-07-08 2:58 ` Alexander Viro
2002-07-08 3:06 ` Dave Hansen
2002-07-08 12:15 ` Matthew Wilcox
2002-07-08 6:34 ` Oliver Neukum [this message]
2002-07-07 23:23 ` Oliver Neukum
2002-07-07 23:31 ` Dave Hansen
2002-07-07 23:51 ` Greg KH
2002-07-08 0:07 ` Dave Hansen
2002-07-08 2:12 ` Greg KH
2002-07-09 1:46 ` Rick Lindsley
2002-07-09 4:38 ` Greg KH
2002-07-09 19:31 ` Rick Lindsley
2002-07-09 20:17 ` Greg KH
2002-07-09 20:55 ` Rick Lindsley
2002-07-09 21:00 ` William Lee Irwin III
2002-07-09 21:12 ` Robert Love
2002-07-09 14:19 ` Dave Hansen
2002-07-09 21:29 ` Robert Love
2002-07-09 14:44 ` Dave Hansen
2002-07-09 21:47 ` Robert Love
2002-07-10 1:15 ` Arnaldo Carvalho de Melo
2002-07-10 3:27 ` Alexander Viro
2002-07-09 20:49 ` Dave Hansen
2002-07-10 5:30 ` Alexander Viro
2002-07-10 10:28 ` Sandy Harris
2002-07-18 0:30 ` David Wagner
2002-07-18 1:03 ` Daniel Phillips
2002-07-09 21:59 ` William Lee Irwin III
2002-07-09 22:21 ` Alan Cox
2002-07-10 13:31 ` jlnance
2002-07-10 14:17 ` Alan Cox
2002-07-15 20:53 ` Alexander Hoogerhuis
2002-07-15 22:07 ` Rik van Riel
2002-07-15 22:25 ` Thunder from the hill
2002-07-09 19:33 ` Rick Lindsley
2002-07-09 20:12 ` Greg KH
2002-07-09 4:49 ` Drew P. Vogel
2002-07-09 5:25 ` Dave Hansen
2002-07-09 5:21 ` Larry McVoy
2002-07-09 7:59 ` Roman Zippel
2002-07-10 10:03 ` Marco Colombo
2002-07-10 14:40 ` Matthew Wilcox
2002-07-10 16:46 ` William Lee Irwin III
2002-07-11 9:57 ` Marco Colombo
2002-07-10 21:28 ` Rick Lindsley
2002-07-10 22:24 ` Daniel Phillips
2002-07-10 23:36 ` spinlock assertion macros Jesse Barnes
2002-07-11 0:54 ` Andreas Dilger
2002-07-11 1:10 ` Jesse Barnes
2002-07-11 5:31 ` Daniel Phillips
2002-07-11 7:19 ` george anzinger
2002-07-11 16:35 ` Oliver Xymoron
2002-07-11 23:52 ` Sandy Harris
2002-07-12 0:56 ` Daniel Phillips
2002-07-12 3:22 ` Oliver Xymoron
2002-07-11 18:03 ` Jesse Barnes
2002-07-11 19:17 ` Daniel Phillips
2002-07-12 12:07 ` Dave Jones
2002-07-12 12:55 ` Daniel Phillips
2002-07-12 19:24 ` Arnd Bergmann
2002-07-12 17:42 ` Daniel Phillips
2002-07-17 2:22 ` Jesse Barnes
2002-07-17 6:34 ` Daniel Phillips
2002-07-18 23:36 ` [PATCH] spinlock assertion macros for 2.5.26 Jesse Barnes
2002-07-17 11:09 ` spinlock assertion macros Arnd Bergmann
2002-07-12 20:41 ` Oliver Xymoron
2002-07-13 3:21 ` Daniel Phillips
2002-07-12 17:49 ` Robert Love
2002-07-12 17:58 ` Dave Jones
2002-07-11 10:51 ` Arnd Bergmann
2002-07-07 22:24 ` BKL removal Greg KH
2002-07-08 0:56 ` Bernd Eckenfels
2002-07-10 0:30 ` Pavel Machek
2002-07-10 7:32 dan carpenter
[not found] <0C01A29FBAE24448A792F5C68F5EA47D2B0C8A@nasdaq.ms.ensim.com>
2002-07-08 19:00 ` pmenage
2002-07-08 21:45 ` Oliver Neukum
[not found] <3D23F306.50703@us.ibm.com>
2002-07-04 12:41 ` Matthew Wilcox
2002-07-04 18:44 ` Dave Hansen
2002-07-04 18:56 ` Dave Hansen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200207080834.09231.oliver@neukum.name \
--to=oliver@neukum.name \
--cc=greg@kroah.com \
--cc=haveblue@us.ibm.com \
--cc=kernel-janitor-discuss@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=thunder@ngforever.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.