All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC 00/20] Proposal for remaining BKL users
@ 2011-01-25 22:17 ` Arnd Bergmann
  0 siblings, 0 replies; 65+ messages in thread
From: Arnd Bergmann @ 2011-01-25 22:17 UTC (permalink / raw)
  To: linux-kernel
  Cc: Mauro Carvalho Chehab, Frederic Weisbecker, dri-devel,
	Mikulas Patocka, H. Peter Anvin, Ian Kent, linux-cifs,
	Nick Bowler, Jeff Layton, Takahiro Hirofuchi, Ross Cohen,
	Arnaldo Carvalho de Melo, Evgeniy Dushistov, Arnd Bergmann,
	Stuart Swales, Thomas Gleixner, Arjan van de Ven, autofs,
	linux-x25, netdev, Greg Kroah-Hartman, Palash Bandyopadhyay,
	linux-fsdevel, A

I've gone through all the code in the kernel that
uses the big kernel lock and come up with a solution
that seems at least half-reasonable for each of them.

The decisions are somewhat arbitrary, but here is
what I'd suggest we do:

* Remove in 2.6.39:
   i830, autofs3, smbfs

* Move to staging now, kill in 2.6.41 (or later):
   appletalk, hpfs

* Work around in an ugly way, but keep alive:
   * ufs, ipx, i810, cx25721

* Fix properly:
   * usbip, go7007, adfs, x25

Some of the patches are rather tricky and I haven't
really done much proper testing, so I'd much prefer
the maintainers to pick up the patches and do the
necessary testing where possible, or even come up
with a better solution.

Arnd Bergmann (20):
  drm/i810: remove the BKL
  drm: remove i830 driver
  staging/usbip: convert to kthread
  staging/cx25721: serialize access to devlist
  staging/go7007: remove the BKL
  staging: Remove autofs3
  staging: remove smbfs
  adfs: remove the big kernel lock
  hpfs: rename big kernel lock to hpfs_lock
  hpfs: replace BKL with a global mutex
  hpfs: move to drivers/staging
  x25: remove the BKL
  appletalk: move to staging
  staging/appletalk: remove the BKL
  ufs: remove the BKL
  ipx: remove the BKL
  tracing: don't trace the BKL
  rtmutex-tester: remove BKL tests
  drivers: remove extraneous includes of smp_lock.h
  BKL: That's all, folks

 MAINTAINERS                                        |   11 +-
 drivers/gpu/drm/Kconfig                            |   47 +-
 drivers/gpu/drm/Makefile                           |    1 -
 drivers/gpu/drm/i810/i810_dma.c                    |   18 +-
 drivers/gpu/drm/i810/i810_drv.c                    |    6 +-
 drivers/gpu/drm/i830/Makefile                      |    8 -
 drivers/gpu/drm/i830/i830_dma.c                    | 1560 ---------
 drivers/gpu/drm/i830/i830_drv.c                    |  107 -
 drivers/gpu/drm/i830/i830_drv.h                    |  295 --
 drivers/gpu/drm/i830/i830_irq.c                    |  186 --
 drivers/net/Makefile                               |    1 -
 drivers/net/appletalk/Makefile                     |    7 -
 drivers/scsi/megaraid/megaraid_sas_fp.c            |    1 -
 drivers/scsi/megaraid/megaraid_sas_fusion.c        |    1 -
 drivers/staging/Kconfig                            |    8 +-
 drivers/staging/Makefile                           |    4 +-
 drivers/{net => staging}/appletalk/Kconfig         |    1 -
 {net => drivers/staging}/appletalk/Makefile        |    7 +-
 {net => drivers/staging}/appletalk/aarp.c          |    2 +-
 .../linux => drivers/staging/appletalk}/atalk.h    |    0
 {net => drivers/staging}/appletalk/atalk_proc.c    |    2 +-
 drivers/{net => staging}/appletalk/cops.c          |    2 +-
 drivers/{net => staging}/appletalk/cops.h          |    0
 drivers/{net => staging}/appletalk/cops_ffdrv.h    |    0
 drivers/{net => staging}/appletalk/cops_ltdrv.h    |    0
 {net => drivers/staging}/appletalk/ddp.c           |   44 +-
 {net => drivers/staging}/appletalk/dev.c           |    0
 drivers/{net => staging}/appletalk/ipddp.c         |    2 +-
 drivers/{net => staging}/appletalk/ipddp.h         |    0
 drivers/{net => staging}/appletalk/ltpc.c          |    2 +-
 drivers/{net => staging}/appletalk/ltpc.h          |    0
 .../staging}/appletalk/sysctl_net_atalk.c          |    2 +-
 drivers/staging/autofs/Kconfig                     |   22 -
 drivers/staging/autofs/Makefile                    |    7 -
 drivers/staging/autofs/TODO                        |    8 -
 drivers/staging/autofs/autofs_i.h                  |  165 -
 drivers/staging/autofs/dirhash.c                   |  260 --
 drivers/staging/autofs/init.c                      |   52 -
 drivers/staging/autofs/inode.c                     |  288 --
 drivers/staging/autofs/root.c                      |  648 ----
 drivers/staging/autofs/symlink.c                   |   26 -
 drivers/staging/autofs/waitq.c                     |  205 --
 drivers/staging/cx25821/Kconfig                    |    1 -
 drivers/staging/cx25821/cx25821-alsa.c             |    2 +
 drivers/staging/cx25821/cx25821-core.c             |   16 +-
 drivers/staging/cx25821/cx25821-video.c            |    9 +-
 drivers/staging/cx25821/cx25821.h                  |    3 +-
 drivers/staging/easycap/easycap.h                  |    1 -
 drivers/staging/easycap/easycap_ioctl.c            |    1 -
 drivers/staging/go7007/Kconfig                     |    1 -
 drivers/staging/go7007/s2250-loader.c              |    3 -
 {fs => drivers/staging}/hpfs/Kconfig               |    5 +-
 {fs => drivers/staging}/hpfs/Makefile              |    0
 drivers/staging/hpfs/TODO                          |    5 +
 {fs => drivers/staging}/hpfs/alloc.c               |    0
 {fs => drivers/staging}/hpfs/anode.c               |    0
 {fs => drivers/staging}/hpfs/buffer.c              |    0
 {fs => drivers/staging}/hpfs/dentry.c              |    0
 {fs => drivers/staging}/hpfs/dir.c                 |   23 +-
 {fs => drivers/staging}/hpfs/dnode.c               |    0
 {fs => drivers/staging}/hpfs/ea.c                  |    0
 {fs => drivers/staging}/hpfs/file.c                |    9 +-
 {fs => drivers/staging}/hpfs/hpfs.h                |    0
 {fs => drivers/staging}/hpfs/hpfs_fn.h             |   36 +
 {fs => drivers/staging}/hpfs/inode.c               |    9 +-
 {fs => drivers/staging}/hpfs/map.c                 |    0
 {fs => drivers/staging}/hpfs/name.c                |    0
 {fs => drivers/staging}/hpfs/namei.c               |   49 +-
 {fs => drivers/staging}/hpfs/super.c               |   21 +-
 drivers/staging/smbfs/Kconfig                      |   56 -
 drivers/staging/smbfs/Makefile                     |   18 -
 drivers/staging/smbfs/TODO                         |    8 -
 drivers/staging/smbfs/cache.c                      |  208 --
 drivers/staging/smbfs/dir.c                        |  699 ----
 drivers/staging/smbfs/file.c                       |  456 ---
 drivers/staging/smbfs/getopt.c                     |   64 -
 drivers/staging/smbfs/getopt.h                     |   14 -
 drivers/staging/smbfs/inode.c                      |  854 -----
 drivers/staging/smbfs/ioctl.c                      |   68 -
 drivers/staging/smbfs/proc.c                       | 3502 --------------------
 drivers/staging/smbfs/proto.h                      |   89 -
 drivers/staging/smbfs/request.c                    |  817 -----
 drivers/staging/smbfs/request.h                    |   70 -
 drivers/staging/smbfs/smb.h                        |  118 -
 drivers/staging/smbfs/smb_debug.h                  |   34 -
 drivers/staging/smbfs/smb_fs.h                     |  153 -
 drivers/staging/smbfs/smb_fs_i.h                   |   37 -
 drivers/staging/smbfs/smb_fs_sb.h                  |  100 -
 drivers/staging/smbfs/smb_mount.h                  |   65 -
 drivers/staging/smbfs/smbfs.txt                    |    8 -
 drivers/staging/smbfs/smbiod.c                     |  343 --
 drivers/staging/smbfs/smbno.h                      |  363 --
 drivers/staging/smbfs/sock.c                       |  385 ---
 drivers/staging/smbfs/symlink.c                    |   67 -
 drivers/staging/usbip/Kconfig                      |    2 +-
 drivers/staging/usbip/stub.h                       |    4 +-
 drivers/staging/usbip/stub_dev.c                   |   13 +-
 drivers/staging/usbip/stub_rx.c                    |   13 +-
 drivers/staging/usbip/stub_tx.c                    |   14 +-
 drivers/staging/usbip/usbip_common.c               |  105 -
 drivers/staging/usbip/usbip_common.h               |   20 +-
 drivers/staging/usbip/usbip_event.c                |   31 +-
 drivers/staging/usbip/vhci.h                       |    4 +-
 drivers/staging/usbip/vhci_hcd.c                   |   10 +-
 drivers/staging/usbip/vhci_rx.c                    |   16 +-
 drivers/staging/usbip/vhci_sysfs.c                 |    9 +-
 drivers/staging/usbip/vhci_tx.c                    |   14 +-
 drivers/target/target_core_device.c                |    1 -
 drivers/target/target_core_fabric_lib.c            |    1 -
 drivers/target/target_core_file.c                  |    1 -
 drivers/target/target_core_hba.c                   |    1 -
 drivers/target/target_core_iblock.c                |    1 -
 drivers/target/target_core_pscsi.c                 |    1 -
 drivers/target/target_core_rd.c                    |    1 -
 drivers/target/target_core_tpg.c                   |    1 -
 drivers/target/target_core_transport.c             |    1 -
 drivers/tty/n_hdlc.c                               |    1 -
 drivers/tty/n_r3964.c                              |    1 -
 drivers/tty/pty.c                                  |    1 -
 drivers/tty/tty_io.c                               |    1 -
 drivers/tty/tty_ldisc.c                            |    2 -
 drivers/tty/vt/selection.c                         |    1 -
 drivers/tty/vt/vc_screen.c                         |    1 -
 drivers/tty/vt/vt.c                                |    1 -
 drivers/tty/vt/vt_ioctl.c                          |    1 -
 fs/Kconfig                                         |    1 -
 fs/Makefile                                        |    1 -
 fs/adfs/Kconfig                                    |    1 -
 fs/adfs/dir.c                                      |    6 -
 fs/adfs/inode.c                                    |    6 -
 fs/adfs/super.c                                    |   13 +-
 fs/compat_ioctl.c                                  |    1 -
 fs/ufs/Kconfig                                     |    1 -
 fs/ufs/inode.c                                     |   78 +-
 fs/ufs/namei.c                                     |   35 +-
 fs/ufs/super.c                                     |   55 +-
 fs/ufs/truncate.c                                  |    5 +-
 fs/ufs/ufs.h                                       |    6 +-
 include/drm/Kbuild                                 |    1 -
 include/drm/i830_drm.h                             |  342 --
 include/linux/Kbuild                               |    1 -
 include/linux/hardirq.h                            |    9 +-
 include/linux/smp_lock.h                           |   65 -
 include/trace/events/bkl.h                         |   61 -
 init/Kconfig                                       |    5 -
 kernel/rtmutex-tester.c                            |   39 +-
 kernel/sched.c                                     |    7 -
 lib/Makefile                                       |    1 -
 lib/kernel_lock.c                                  |  143 -
 net/Kconfig                                        |    1 -
 net/Makefile                                       |    1 -
 net/ipx/Kconfig                                    |    1 -
 net/ipx/af_ipx.c                                   |   52 +-
 net/socket.c                                       |    1 -
 net/x25/Kconfig                                    |    1 -
 net/x25/af_x25.c                                   |   61 +-
 net/x25/x25_out.c                                  |    7 +-
 157 files changed, 356 insertions(+), 13722 deletions(-)
 delete mode 100644 drivers/gpu/drm/i830/Makefile
 delete mode 100644 drivers/gpu/drm/i830/i830_dma.c
 delete mode 100644 drivers/gpu/drm/i830/i830_drv.c
 delete mode 100644 drivers/gpu/drm/i830/i830_drv.h
 delete mode 100644 drivers/gpu/drm/i830/i830_irq.c
 delete mode 100644 drivers/net/appletalk/Makefile
 rename drivers/{net => staging}/appletalk/Kconfig (98%)
 rename {net => drivers/staging}/appletalk/Makefile (56%)
 rename {net => drivers/staging}/appletalk/aarp.c (99%)
 rename {include/linux => drivers/staging/appletalk}/atalk.h (100%)
 rename {net => drivers/staging}/appletalk/atalk_proc.c (99%)
 rename drivers/{net => staging}/appletalk/cops.c (99%)
 rename drivers/{net => staging}/appletalk/cops.h (100%)
 rename drivers/{net => staging}/appletalk/cops_ffdrv.h (100%)
 rename drivers/{net => staging}/appletalk/cops_ltdrv.h (100%)
 rename {net => drivers/staging}/appletalk/ddp.c (98%)
 rename {net => drivers/staging}/appletalk/dev.c (100%)
 rename drivers/{net => staging}/appletalk/ipddp.c (99%)
 rename drivers/{net => staging}/appletalk/ipddp.h (100%)
 rename drivers/{net => staging}/appletalk/ltpc.c (99%)
 rename drivers/{net => staging}/appletalk/ltpc.h (100%)
 rename {net => drivers/staging}/appletalk/sysctl_net_atalk.c (98%)
 delete mode 100644 drivers/staging/autofs/Kconfig
 delete mode 100644 drivers/staging/autofs/Makefile
 delete mode 100644 drivers/staging/autofs/TODO
 delete mode 100644 drivers/staging/autofs/autofs_i.h
 delete mode 100644 drivers/staging/autofs/dirhash.c
 delete mode 100644 drivers/staging/autofs/init.c
 delete mode 100644 drivers/staging/autofs/inode.c
 delete mode 100644 drivers/staging/autofs/root.c
 delete mode 100644 drivers/staging/autofs/symlink.c
 delete mode 100644 drivers/staging/autofs/waitq.c
 rename {fs => drivers/staging}/hpfs/Kconfig (80%)
 rename {fs => drivers/staging}/hpfs/Makefile (100%)
 create mode 100644 drivers/staging/hpfs/TODO
 rename {fs => drivers/staging}/hpfs/alloc.c (100%)
 rename {fs => drivers/staging}/hpfs/anode.c (100%)
 rename {fs => drivers/staging}/hpfs/buffer.c (100%)
 rename {fs => drivers/staging}/hpfs/dentry.c (100%)
 rename {fs => drivers/staging}/hpfs/dir.c (97%)
 rename {fs => drivers/staging}/hpfs/dnode.c (100%)
 rename {fs => drivers/staging}/hpfs/ea.c (100%)
 rename {fs => drivers/staging}/hpfs/file.c (97%)
 rename {fs => drivers/staging}/hpfs/hpfs.h (100%)
 rename {fs => drivers/staging}/hpfs/hpfs_fn.h (91%)
 rename {fs => drivers/staging}/hpfs/inode.c (98%)
 rename {fs => drivers/staging}/hpfs/map.c (100%)
 rename {fs => drivers/staging}/hpfs/name.c (100%)
 rename {fs => drivers/staging}/hpfs/namei.c (96%)
 rename {fs => drivers/staging}/hpfs/super.c (98%)
 delete mode 100644 drivers/staging/smbfs/Kconfig
 delete mode 100644 drivers/staging/smbfs/Makefile
 delete mode 100644 drivers/staging/smbfs/TODO
 delete mode 100644 drivers/staging/smbfs/cache.c
 delete mode 100644 drivers/staging/smbfs/dir.c
 delete mode 100644 drivers/staging/smbfs/file.c
 delete mode 100644 drivers/staging/smbfs/getopt.c
 delete mode 100644 drivers/staging/smbfs/getopt.h
 delete mode 100644 drivers/staging/smbfs/inode.c
 delete mode 100644 drivers/staging/smbfs/ioctl.c
 delete mode 100644 drivers/staging/smbfs/proc.c
 delete mode 100644 drivers/staging/smbfs/proto.h
 delete mode 100644 drivers/staging/smbfs/request.c
 delete mode 100644 drivers/staging/smbfs/request.h
 delete mode 100644 drivers/staging/smbfs/smb.h
 delete mode 100644 drivers/staging/smbfs/smb_debug.h
 delete mode 100644 drivers/staging/smbfs/smb_fs.h
 delete mode 100644 drivers/staging/smbfs/smb_fs_i.h
 delete mode 100644 drivers/staging/smbfs/smb_fs_sb.h
 delete mode 100644 drivers/staging/smbfs/smb_mount.h
 delete mode 100644 drivers/staging/smbfs/smbfs.txt
 delete mode 100644 drivers/staging/smbfs/smbiod.c
 delete mode 100644 drivers/staging/smbfs/smbno.h
 delete mode 100644 drivers/staging/smbfs/sock.c
 delete mode 100644 drivers/staging/smbfs/symlink.c
 delete mode 100644 include/drm/i830_drm.h
 delete mode 100644 include/linux/smp_lock.h
 delete mode 100644 include/trace/events/bkl.h
 delete mode 100644 lib/kernel_lock.c

Cc: Andrew Hendry <andrew.hendry@gmail.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
Cc: autofs@linux.kernel.org
Cc: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Dave Airlie <airlied@linux.ie>
Cc: David Airlie <airlied@linux.ie>
Cc: dri-devel@lists.freedesktop.org
Cc: Evgeniy Dushistov <dushistov@mail.ru>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@suse.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ian Kent <raven@themaw.net>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Jeff Layton <jlayton@redhat.com>
Cc: linux-cifs@vger.kernel.org
Cc: linux-fsdevel@vger.kernel.org
Cc: linux-x25@vger.kernel.org
Cc: Mauro Carvalho Chehab <mchehab@redhat.com>
Cc: Mikulas Patocka <mikulas@artax.karlin.mff.cuni.cz>
Cc: netdev@vger.kernel.org
Cc: Nick Bowler <nbowler@elliptictech.com>
Cc: Palash Bandyopadhyay <palash.bandyopadhyay@conexant.com>
Cc: Ross Cohen <rcohen@snurgle.org>
Cc: Russell King <rmk@arm.linux.org.uk>
Cc: Stuart Swales <stuart.swales.croftnuisk@gmail.com>
Cc: Takahiro Hirofuchi <hirofuchi@users.sourceforge.net>
Cc: Thomas Gleixner <tglx@linutronix.de>

^ permalink raw reply	[flat|nested] 65+ messages in thread

end of thread, other threads:[~2011-03-01 22:16 UTC | newest]

Thread overview: 65+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-01-25 22:17 [RFC 00/20] Proposal for remaining BKL users Arnd Bergmann
2011-01-25 22:17 ` Arnd Bergmann
2011-01-25 22:17 ` [PATCH 01/20] drm/i810: remove the BKL Arnd Bergmann
2011-01-25 22:17 ` [PATCH 02/20] drm: remove i830 driver Arnd Bergmann
2011-01-25 22:17 ` [PATCH 03/20] staging/usbip: convert to kthread Arnd Bergmann
2011-01-28 17:53   ` Max Vozeler
2011-01-28 18:48     ` Arnd Bergmann
2011-03-01 22:15     ` Arnd Bergmann
2011-01-25 22:17 ` [PATCH 04/20] staging/cx25721: serialize access to devlist Arnd Bergmann
2011-01-26 16:23   ` Palash Bandyopadhyay
2011-01-31 21:37   ` Greg KH
2011-01-25 22:17 ` [PATCH 05/20] staging/go7007: remove the BKL Arnd Bergmann
2011-01-25 22:17 ` [PATCH 06/20] staging: Remove autofs3 Arnd Bergmann
2011-01-26  7:41   ` H. Peter Anvin
2011-01-25 22:17 ` [PATCH 07/20] staging: remove smbfs Arnd Bergmann
2011-01-25 22:17 ` [PATCH 08/20] adfs: remove the big kernel lock Arnd Bergmann
2011-01-25 22:20   ` Russell King
2011-01-25 22:17 ` [PATCH 09/20] hpfs: rename big kernel lock to hpfs_lock Arnd Bergmann
2011-01-25 22:17 ` [PATCH 10/20] hpfs: replace BKL with a global mutex Arnd Bergmann
2011-01-26  0:15   ` Andi Kleen
2011-01-26  0:19   ` Andi Kleen
2011-01-26 12:48     ` [PATCH v2] hpfs: remove the BKL Arnd Bergmann
2011-01-26 12:50     ` [PATCH 10/20] hpfs: replace BKL with a global mutex Arnd Bergmann
2011-01-26 16:52       ` Andi Kleen
2011-01-27  5:01         ` Nick Piggin
2011-01-27 10:57           ` Miklos Szeredi
2011-01-25 22:17 ` [PATCH 11/20] hpfs: move to drivers/staging Arnd Bergmann
2011-02-07 16:17   ` Mikulas Patocka
2011-02-07 19:31     ` Arnd Bergmann
2011-01-25 22:17 ` [PATCH 12/20] x25: remove the BKL Arnd Bergmann
2011-01-27 10:07   ` Andrew Hendry
2011-01-27 12:17     ` Arnd Bergmann
2011-01-27 12:38       ` [PATCH v2] " Arnd Bergmann
2011-01-27 13:20         ` Eric Dumazet
2011-01-27 13:43           ` Arnd Bergmann
2011-01-25 22:17 ` [PATCH 13/20] appletalk: move to staging Arnd Bergmann
2011-01-25 22:17 ` [PATCH 14/20] staging/appletalk: remove the BKL Arnd Bergmann
2011-01-25 22:29   ` David Miller
2011-01-26 12:57     ` Arnd Bergmann
2011-01-25 22:17 ` [PATCH 15/20] ufs: " Arnd Bergmann
2011-01-26  2:30   ` Nick Bowler
2011-01-26 12:53     ` Arnd Bergmann
2011-01-27  5:47   ` Nick Piggin
2011-01-27 13:13     ` Arnd Bergmann
2011-01-25 22:17 ` [PATCH 16/20] ipx: " Arnd Bergmann
2011-01-25 22:17 ` [PATCH 17/20] tracing: don't trace " Arnd Bergmann
2011-01-25 22:28   ` Frederic Weisbecker
2011-01-25 22:17 ` [PATCH 18/20] rtmutex-tester: remove BKL tests Arnd Bergmann
2011-01-26 15:00   ` [tip:core/locking] rtmutex-tester: Remove " tip-bot for Arnd Bergmann
2011-02-22 20:57   ` [tip:irq/core] rtmutex: tester: " tip-bot for Arnd Bergmann
2011-01-25 22:17 ` [PATCH 19/20] drivers: remove extraneous includes of smp_lock.h Arnd Bergmann
2011-01-25 22:17 ` [PATCH 20/20] BKL: That's all, folks Arnd Bergmann
2011-01-26  6:19   ` Ingo Molnar
2011-01-26  8:47     ` Alan Cox
2011-01-26 11:01       ` Ingo Molnar
2011-01-26 11:22   ` Thomas Gleixner
2011-01-26  2:22 ` [RFC 00/20] Proposal for remaining BKL users Greg KH
2011-01-26  2:22   ` Greg KH
2011-01-26 11:31   ` Arnd Bergmann
2011-01-26 11:31     ` Arnd Bergmann
2011-01-26 11:58     ` Mauro Carvalho Chehab
2011-01-26 13:45       ` Arnd Bergmann
2011-01-26 13:45         ` Arnd Bergmann
2011-01-26 13:45         ` Arnd Bergmann
2011-01-26 16:24         ` Palash Bandyopadhyay

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.