* [PATCH 00/18] Make the big kernel lock optional
@ 2010-09-14 19:34 Arnd Bergmann
2010-09-14 19:35 ` [PATCH 13/18] i4l: kill big kernel lock Arnd Bergmann
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Arnd Bergmann @ 2010-09-14 19:34 UTC (permalink / raw)
To: arnd
Cc: linux-sh, Roman Zippel, linux-pci, Heiko Carstens, Bob Picco,
Jaroslav Kysela, Stephen Rothwell, Jesper Nilsson, Mark Gross,
Helge Deller, James E.J. Bottomley, Geert Uytterhoeven,
Matt Turner, linux-media, user-mode-linux-devel, linux-s390,
Clemens Ladisch, Jeff Dike, Mauro Carvalho Chehab, Mikael Starvik,
Tejun Heo, linux-m68k, Ivan Kokshaysky, Jesse Barnes, Thomas
This is a set of simple patches to remove the big kernel
lock in some remaining areas and introduce a Kconfig
option which I'd like to have included in linux-next
and get included in the 2.6.37 merge window.
I have a total of five topic branches, which together
remove the BKL from all code except those modules
which get marked as 'depends on BKL' in the final
patch of this series.
It's fine if maintainers want to add some of these
patches to their own queue, as long as they all make
it into linux-next.
Stephen, please add
git+ssh://master.kernel.org/pub/scm/linux/kernel/git/arnd/bkl.git config
Arnd Bergmann (17):
hpet: kill BKL, add compat_ioctl
proc/pci: kill BKL
s390/block: kill the big kernel lock
isapnp: BKL removal
alpha: kill big kernel lock
cris: autoconvert trivial BKL users
m68k: remove big kernel lock
parisc: remove big kernel lock
sh: kill big kernel lock
uml: kill big kernel lock
tlclk: remove big kernel lock
i4l: kill big kernel lock
misdn: kill big kernel lock
dvb/bt8xx: kill the big kernel lock
dvb-core: kill the big kernel lock
rtmutex-tester: make it build without BKL
BKL: introduce CONFIG_BKL.
Al Viro (1):
fix rawctl compat ioctls breakage on amd64 and itanic
arch/alpha/kernel/osf_sys.c | 5 -
arch/alpha/kernel/traps.c | 3 -
arch/cris/arch-v10/drivers/ds1302.c | 7 +-
arch/cris/arch-v10/drivers/pcf8563.c | 6 +-
arch/cris/arch-v10/drivers/sync_serial.c | 11 +-
arch/cris/arch-v32/drivers/cryptocop.c | 4 +-
arch/cris/arch-v32/drivers/mach-a3/gpio.c | 11 +-
arch/cris/arch-v32/drivers/mach-fs/gpio.c | 11 +-
arch/cris/arch-v32/drivers/pcf8563.c | 6 +-
arch/cris/arch-v32/drivers/sync_serial.c | 11 +-
arch/m68k/kernel/sys_m68k.c | 7 +-
arch/parisc/kernel/perf.c | 4 -
arch/sh/kernel/ptrace_64.c | 9 +-
arch/um/drivers/harddog_kern.c | 13 +-
arch/um/drivers/hostaudio_kern.c | 8 +-
arch/um/drivers/ubd_kern.c | 8 +-
arch/um/kernel/exec.c | 2 -
drivers/char/hpet.c | 98 +++++++----
drivers/char/raw.c | 243 +++++++++++++++-----------
drivers/char/tlclk.c | 6 +-
drivers/gpu/drm/Kconfig | 5 +-
drivers/isdn/capi/Kconfig | 2 +-
drivers/isdn/i4l/isdn_tty.c | 11 +-
drivers/isdn/mISDN/stack.c | 7 -
drivers/media/Kconfig | 1 +
drivers/media/dvb/bt8xx/dst_ca.c | 7 +-
drivers/media/dvb/dvb-core/dmxdev.c | 17 +--
drivers/media/dvb/dvb-core/dvb_ca_en50221.c | 8 +-
drivers/media/dvb/dvb-core/dvb_net.c | 9 +-
drivers/media/dvb/dvb-core/dvbdev.c | 17 +-
drivers/net/appletalk/Kconfig | 1 +
drivers/pci/proc.c | 4 +-
drivers/pnp/isapnp/proc.c | 13 +-
drivers/s390/block/dasd.c | 6 -
drivers/s390/block/dasd_ioctl.c | 17 +--
drivers/s390/block/dcssblk.c | 5 -
drivers/staging/cx25821/Kconfig | 1 +
drivers/staging/easycap/Kconfig | 1 +
drivers/staging/go7007/Kconfig | 1 +
drivers/staging/usbip/Kconfig | 2 +-
drivers/usb/gadget/Kconfig | 2 +-
fs/Kconfig | 1 +
fs/adfs/Kconfig | 1 +
fs/afs/Kconfig | 1 +
fs/autofs/Kconfig | 1 +
fs/autofs4/Kconfig | 1 +
fs/ceph/Kconfig | 1 +
fs/coda/Kconfig | 1 +
fs/compat_ioctl.c | 70 --------
fs/ecryptfs/Kconfig | 1 +
fs/freevxfs/Kconfig | 1 +
fs/hpfs/Kconfig | 1 +
fs/jffs2/Kconfig | 1 +
fs/ncpfs/Kconfig | 1 +
fs/nfs/Kconfig | 1 +
fs/nfsd/Kconfig | 1 +
fs/ocfs2/Kconfig | 1 +
fs/qnx4/Kconfig | 1 +
fs/reiserfs/Kconfig | 1 +
fs/smbfs/Kconfig | 1 +
fs/squashfs/Kconfig | 1 +
fs/udf/Kconfig | 1 +
fs/ufs/Kconfig | 1 +
include/linux/smp_lock.h | 7 +-
init/Kconfig | 2 +-
kernel/rtmutex-tester.c | 6 +
kernel/trace/Kconfig | 1 +
lib/Kconfig.debug | 9 +
net/ipx/Kconfig | 1 +
net/irda/Kconfig | 1 +
net/irda/irnet/Kconfig | 1 +
net/x25/Kconfig | 1 +
72 files changed, 355 insertions(+), 375 deletions(-)
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: Bob Picco <bob.picco@hp.com>
Cc: Clemens Ladisch <clemens@ladisch.de>
Cc: Geert Uytterhoeven <geert@linux-m68k.org>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Helge Deller <deller@gmx.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Ivan Kokshaysky <ink@jurassic.park.msu.ru>
Cc: "James E.J. Bottomley" <jejb@parisc-linux.org>
Cc: Jaroslav Kysela <perex@perex.cz>
Cc: Jeff Dike <jdike@addtoit.com>
Cc: Jesper Nilsson <jesper.nilsson@axis.com>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Karsten Keil <isdn@linux-pingi.de>
Cc: Kyle McMartin <kyle@mcmartin.ca>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Mark Gross <mark.gross@intel.com>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Matt Turner <mattst88@gmail.com>
Cc: Mauro Carvalho Chehab <mchehab@infradead.org>
Cc: Mikael Starvik <starvik@axis.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Richard Henderson <rth@twiddle.net>
Cc: Roman Zippel <zippel@linux-m68k.org>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Tejun Heo <tj@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-alpha@vger.kernel.org
Cc: linux-cris-kernel@axis.com
Cc: linux-m68k@lists.linux-m68k.org
Cc: linux-media@vger.kernel.org
Cc: linux-parisc@vger.kernel.org
Cc: linux-pci@vger.kernel.org
Cc: linux-s390@vger.kernel.org
Cc: linux-sh@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: user-mode-linux-devel@lists.sourceforge.net
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 13/18] i4l: kill big kernel lock
2010-09-14 19:34 [PATCH 00/18] Make the big kernel lock optional Arnd Bergmann
@ 2010-09-14 19:35 ` Arnd Bergmann
2010-09-16 2:31 ` David Miller
2010-09-14 19:35 ` [PATCH 14/18] misdn: " Arnd Bergmann
2010-09-15 9:37 ` [PATCH 00/18] Make the big kernel lock optional Stephen Rothwell
2 siblings, 1 reply; 6+ messages in thread
From: Arnd Bergmann @ 2010-09-14 19:35 UTC (permalink / raw)
To: arnd; +Cc: Karsten Keil, netdev
The isdn4linux driver uses the big kernel lock only
to serialize access to a few fields in its own
modem_info structure.
The easiest replacement is a driver-wide mutex.
More fine-grained locking would be more appropriate
here, but likely harder to implement.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Karsten Keil <isdn@linux-pingi.de>
Cc: netdev@vger.kernel.org
---
drivers/isdn/i4l/isdn_tty.c | 11 ++++++-----
1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c
index 51dc60d..981f7ab 100644
--- a/drivers/isdn/i4l/isdn_tty.c
+++ b/drivers/isdn/i4l/isdn_tty.c
@@ -14,7 +14,7 @@
#include <linux/isdn.h>
#include <linux/slab.h>
#include <linux/delay.h>
-#include <linux/smp_lock.h>
+#include <linux/mutex.h>
#include "isdn_common.h"
#include "isdn_tty.h"
#ifdef CONFIG_ISDN_AUDIO
@@ -28,6 +28,7 @@
/* Prototypes */
+static DEFINE_MUTEX(modem_info_mutex);
static int isdn_tty_edit_at(const char *, int, modem_info *);
static void isdn_tty_check_esc(const u_char *, u_char, int, int *, u_long *);
static void isdn_tty_modem_reset_regs(modem_info *, int);
@@ -1354,14 +1355,14 @@ isdn_tty_tiocmget(struct tty_struct *tty, struct file *file)
if (tty->flags & (1 << TTY_IO_ERROR))
return -EIO;
- lock_kernel();
+ mutex_lock(&modem_info_mutex);
#ifdef ISDN_DEBUG_MODEM_IOCTL
printk(KERN_DEBUG "ttyI%d ioctl TIOCMGET\n", info->line);
#endif
control = info->mcr;
status = info->msr;
- unlock_kernel();
+ mutex_unlock(&modem_info_mutex);
return ((control & UART_MCR_RTS) ? TIOCM_RTS : 0)
| ((control & UART_MCR_DTR) ? TIOCM_DTR : 0)
| ((status & UART_MSR_DCD) ? TIOCM_CAR : 0)
@@ -1385,7 +1386,7 @@ isdn_tty_tiocmset(struct tty_struct *tty, struct file *file,
printk(KERN_DEBUG "ttyI%d ioctl TIOCMxxx: %x %x\n", info->line, set, clear);
#endif
- lock_kernel();
+ mutex_lock(&modem_info_mutex);
if (set & TIOCM_RTS)
info->mcr |= UART_MCR_RTS;
if (set & TIOCM_DTR) {
@@ -1407,7 +1408,7 @@ isdn_tty_tiocmset(struct tty_struct *tty, struct file *file,
isdn_tty_modem_hup(info, 1);
}
}
- unlock_kernel();
+ mutex_unlock(&modem_info_mutex);
return 0;
}
--
1.7.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 14/18] misdn: kill big kernel lock
2010-09-14 19:34 [PATCH 00/18] Make the big kernel lock optional Arnd Bergmann
2010-09-14 19:35 ` [PATCH 13/18] i4l: kill big kernel lock Arnd Bergmann
@ 2010-09-14 19:35 ` Arnd Bergmann
2010-09-16 2:31 ` David Miller
2010-09-15 9:37 ` [PATCH 00/18] Make the big kernel lock optional Stephen Rothwell
2 siblings, 1 reply; 6+ messages in thread
From: Arnd Bergmann @ 2010-09-14 19:35 UTC (permalink / raw)
To: arnd; +Cc: Karsten Keil, netdev
The use of the big kernel lock in misdn is completely
bogus, so let's just remove it.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Cc: Karsten Keil <isdn@linux-pingi.de>
Cc: netdev@vger.kernel.org
---
drivers/isdn/mISDN/stack.c | 7 -------
1 files changed, 0 insertions(+), 7 deletions(-)
diff --git a/drivers/isdn/mISDN/stack.c b/drivers/isdn/mISDN/stack.c
index b159bd5..a5b632e 100644
--- a/drivers/isdn/mISDN/stack.c
+++ b/drivers/isdn/mISDN/stack.c
@@ -18,7 +18,6 @@
#include <linux/slab.h>
#include <linux/mISDNif.h>
#include <linux/kthread.h>
-#include <linux/smp_lock.h>
#include "core.h"
static u_int *debug;
@@ -205,13 +204,7 @@ mISDNStackd(void *data)
struct mISDNstack *st = data;
int err = 0;
-#ifdef CONFIG_SMP
- lock_kernel();
-#endif
sigfillset(¤t->blocked);
-#ifdef CONFIG_SMP
- unlock_kernel();
-#endif
if (*debug & DEBUG_MSG_THREAD)
printk(KERN_DEBUG "mISDNStackd %s started\n",
dev_name(&st->dev->dev));
--
1.7.1
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 00/18] Make the big kernel lock optional
2010-09-14 19:34 [PATCH 00/18] Make the big kernel lock optional Arnd Bergmann
2010-09-14 19:35 ` [PATCH 13/18] i4l: kill big kernel lock Arnd Bergmann
2010-09-14 19:35 ` [PATCH 14/18] misdn: " Arnd Bergmann
@ 2010-09-15 9:37 ` Stephen Rothwell
2 siblings, 0 replies; 6+ messages in thread
From: Stephen Rothwell @ 2010-09-15 9:37 UTC (permalink / raw)
To: Arnd Bergmann
Cc: Matt, linux-sh, Roman Zippel, linux-pci, Heiko Carstens, Picco,
Jaroslav Kysela, netdev, Thomas Gleixner, linux-s390,
Jesper Nilsson, Mark Gross, Helge Deller, James E.J. Bottomley,
Uytterhoeven, Karsten, Geert, Ingo Molnar, linux-media,
user-mode-linux-devel, Clemens Ladisch, Jeff Dike,
Mauro Carvalho Chehab, Mikael Starvik, Tejun Heo, linux-m68k,
Ivan Kokshaysky, Jesse Barnes
[-- Attachment #1.1: Type: text/plain, Size: 1739 bytes --]
On Tue, 14 Sep 2010 21:34:51 +0200 Arnd Bergmann <arnd@arndb.de> wrote:
>
> Stephen, please add
> git+ssh://master.kernel.org/pub/scm/linux/kernel/git/arnd/bkl.git config
Added from today.
Thanks for adding your subsystem tree as a participant of linux-next. As
you may know, this is not a judgment of your code. The purpose of
linux-next is for integration testing and to lower the impact of
conflicts between subsystems in the next merge window.
You will need to ensure that the patches/commits in your tree/series have
been:
* submitted under GPL v2 (or later) and include the Contributor's
Signed-off-by,
* posted to the relevant mailing list,
* reviewed by you (or another maintainer of your subsystem tree),
* successfully unit tested, and
* destined for the current or next Linux merge window.
Basically, this should be just what you would send to Linus (or ask him
to fetch). It is allowed to be rebased if you deem it necessary.
--
Cheers,
Stephen Rothwell
sfr@canb.auug.org.au
Legal Stuff:
By participating in linux-next, your subsystem tree contributions are
public and will be included in the linux-next trees. You may be sent
e-mail messages indicating errors or other issues when the
patches/commits from your subsystem tree are merged and tested in
linux-next. These messages may also be cross-posted to the linux-next
mailing list, the linux-kernel mailing list, etc. The linux-next tree
project and IBM (my employer) make no warranties regarding the linux-next
project, the testing procedures, the results, the e-mails, etc. If you
don't agree to these ground rules, let me know and I'll remove your tree
from participation in linux-next.
[-- Attachment #1.2: Type: application/pgp-signature, Size: 490 bytes --]
[-- Attachment #2: Type: text/plain, Size: 276 bytes --]
------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
[-- Attachment #3: Type: text/plain, Size: 194 bytes --]
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 13/18] i4l: kill big kernel lock
2010-09-14 19:35 ` [PATCH 13/18] i4l: kill big kernel lock Arnd Bergmann
@ 2010-09-16 2:31 ` David Miller
0 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2010-09-16 2:31 UTC (permalink / raw)
To: arnd; +Cc: isdn, netdev
From: Arnd Bergmann <arnd@arndb.de>
Date: Tue, 14 Sep 2010 21:35:04 +0200
> The isdn4linux driver uses the big kernel lock only
> to serialize access to a few fields in its own
> modem_info structure.
>
> The easiest replacement is a driver-wide mutex.
> More fine-grained locking would be more appropriate
> here, but likely harder to implement.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Applied.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 14/18] misdn: kill big kernel lock
2010-09-14 19:35 ` [PATCH 14/18] misdn: " Arnd Bergmann
@ 2010-09-16 2:31 ` David Miller
0 siblings, 0 replies; 6+ messages in thread
From: David Miller @ 2010-09-16 2:31 UTC (permalink / raw)
To: arnd; +Cc: isdn, netdev
From: Arnd Bergmann <arnd@arndb.de>
Date: Tue, 14 Sep 2010 21:35:05 +0200
> The use of the big kernel lock in misdn is completely
> bogus, so let's just remove it.
>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Applied.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2010-09-16 2:31 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-14 19:34 [PATCH 00/18] Make the big kernel lock optional Arnd Bergmann
2010-09-14 19:35 ` [PATCH 13/18] i4l: kill big kernel lock Arnd Bergmann
2010-09-16 2:31 ` David Miller
2010-09-14 19:35 ` [PATCH 14/18] misdn: " Arnd Bergmann
2010-09-16 2:31 ` David Miller
2010-09-15 9:37 ` [PATCH 00/18] Make the big kernel lock optional Stephen Rothwell
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).