lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1257156307-24175-1-git-send-email-jblunck@suse.de>
Date:	Mon,  2 Nov 2009 11:04:40 +0100
From:	Jan Blunck <jblunck@...e.de>
To:	linux-fsdevel@...r.kernel.org
Cc:	Matthew Wilcox <matthew@....cx>, linux-kernel@...r.kernel.org,
	Jan Blunck <jblunck@...e.de>,
	Chris Mason <chris.mason@...cle.com>,
	Christoph Hellwig <hch@...radead.org>
Subject: [PATCH 00/27] Push down BKL to the filesystems (v2)

During the realtime preemption mini-summit we discussed the entire removal of
the big kernel lock. I've started working on this for some filesystems. My plan
is to push the BKL down to the implementations first and remove it from there
later.

This series is pushing the BKL from do_new_mount() down to the filesystems and
removes it from ext series of filesystems and one other trivial use: if the BKL
is only used in get_sb/fill_super due to the push-down, we just need to make
sure that parallel calls to get_sb/fill_super would race against each other.

I addressed the feedback from Matthew Wilcox and tried to be more verbose about
why I think it is safe to remove the BKL. In most cases there is no shared
resource accessed anyway so it is trivially safe to remove the lock.

There are two filesystems where I'm not 100% sure if the proposed patch is
enough, namely btrfs and xfs. Chris(+toph), could you help me here?

I left out the patch to remove default_llseek() on purpose. This indeed needs
some more lovin'.

Comments?

Jan

Jan Blunck (27):
  BKL: Push down BKL from do_new_mount() to the filesystems
    get_sb/fill_super operation
  BKL: Remove outdated comment and include
  BKL: Remove BKL from simple_fill_super
  ext2: Add ext2_sb_info mutex
  BKL: Remove BKL from ext2 filesystem
  BKL: Remove BKL from ext3 fill_super()
  BKL: Remove BKL from ext3_put_super() and ext3_remount()
  BKL: Remove BKL from ext4 filesystem
  BKL: Remove BKL from 9p
  BKL: Remove BKL from autofs4
  BKL: Remove BKL from befs
  BKL: Remove BKL from btrfs
  BKL: Remove BKL from configfs
  BKL: Remove BKL from cramfs
  BKL: Remove BKL from devpts
  BKL: Remove BKL from efs
  BKL: Remove BKL from exofs
  BKL: Remove BKL from hostfs
  BKL: Remove BKL from hugetlbfs
  BKL: Remove BKL from minix
  BKL: Remove BKL from omfs
  BKL: Remove BKL from openpromfs
  BKL: Remove BKL from ramfs
  BKL: Remove BKL from romfs
  BKL: Remove BKL from sysfs
  BKL: Remove BKL from ubifs
  BKL: Remove BKL from xfs

 fs/adfs/super.c            |    8 ++++++-
 fs/affs/super.c            |    9 +++++++-
 fs/afs/super.c             |    5 ++++
 fs/bfs/inode.c             |    9 +++++++-
 fs/binfmt_misc.c           |    6 ++++-
 fs/cifs/cifsfs.c           |   12 +++++++++-
 fs/coda/inode.c            |    8 ++++++-
 fs/ecryptfs/main.c         |    3 ++
 fs/exofs/super.c           |    2 +-
 fs/ext2/inode.c            |    5 +--
 fs/ext2/super.c            |   48 ++++++++++++++++++++++++++++---------------
 fs/ext3/super.c            |   12 -----------
 fs/ext4/super.c            |   11 ----------
 fs/fat/namei_msdos.c       |    6 ++++-
 fs/fat/namei_vfat.c        |    6 ++++-
 fs/freevxfs/vxfs_super.c   |    7 +++++-
 fs/fuse/control.c          |    9 +++++++-
 fs/fuse/inode.c            |    5 ++++
 fs/gfs2/ops_fstype.c       |    9 ++++++++
 fs/hfs/super.c             |    8 ++++++-
 fs/hfsplus/super.c         |    8 ++++++-
 fs/hpfs/super.c            |    8 ++++++-
 fs/hppfs/hppfs.c           |    4 +++
 fs/isofs/inode.c           |    8 ++++++-
 fs/jffs2/super.c           |   11 ++++++++-
 fs/jfs/super.c             |   14 +++++++++++-
 fs/libfs.c                 |    1 +
 fs/namespace.c             |    2 -
 fs/ncpfs/inode.c           |    8 ++++++-
 fs/nfs/super.c             |   19 +++++++++++++++++
 fs/nfsd/nfsctl.c           |    7 +++++-
 fs/nilfs2/super.c          |    9 +++++++-
 fs/ntfs/super.c            |    5 ++++
 fs/ocfs2/dlm/dlmfs.c       |    8 ++++++-
 fs/ocfs2/super.c           |    5 ++++
 fs/proc/root.c             |    9 +++++++-
 fs/qnx4/inode.c            |    8 ++++++-
 fs/reiserfs/super.c        |    4 +++
 fs/smbfs/inode.c           |    5 ++++
 fs/squashfs/super.c        |    6 +++++
 fs/super.c                 |    3 --
 fs/sysfs/mount.c           |    2 +-
 fs/sysv/super.c            |   24 +++++++++++++++++----
 fs/udf/super.c             |    8 ++++++-
 fs/ufs/super.c             |    5 ++++
 include/linux/ext2_fs_sb.h |    2 +
 46 files changed, 300 insertions(+), 81 deletions(-)

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ