[PATCH v2 0/8] change sb_writers to use percpu_rw_semaphore

Oleg Nesterov
2015-08-11T17:05:59Z

Jan, please consider this series. I didn't dare to preserve your acks,
I hope you can ack v2 too.

The only essential change is that I dropped the lockdep improvements
as we discussed. This means that 8/8 was changed a bit, and I decided
to add the new documentation patch, see 3/8.

6/8 is new too, I forgot to do this in V1.

To remind, I tested this with the following script:

dd if=/dev/zero of=TEST.img bs=1MiB count=4000
dd if=/dev/zero of=SCRATCH.img bs=1MiB count=4000

losetup --find --show TEST.img
losetup --find --show SCRATCH.img

mkfs.xfs -f /dev/loop0
mkfs.xfs -f /dev/loop1

mkdir -p TEST SCRATCH

mount /dev/loop0 TEST
mount /dev/loop1 SCRATCH

TEST_DEV=/dev/loop0 TEST_DIR=TEST SCRATCH_DEV=/dev/loop1 SCRATCH_MNT=SCRATCH \
./check `grep -il freeze tests/*/???`

seems to work:

Ran: generic/068 generic/085 generic/280 generic/311 xfs/011 xfs/119 xfs/297
Passed all 7 tests

and I see nothing interesting in dmesg.

If I replace mkfs.xfs above with mkfs.btrfs or mkfs.ext4 everything
looks fine too:

FSTYP -- btrfs
PLATFORM -- Linux/x86_64 intel-canoepass-10 4.2.0-rc6+
MKFS_OPTIONS -- /dev/loop1
MOUNT_OPTIONS -- -o context=system_u:object_r:nfs_t:s0 /dev/loop1 SCRATCH

generic/068 60s ... 53s
generic/085 24s ... 16s
generic/280 2s ... [not run] disk quotas not supported by this filesystem type: btrfs
generic/311 165s ... 136s
xfs/011 20s ... [not run] not suitable for this filesystem type: btrfs
xfs/119 22s ... [not run] not suitable for this filesystem type: btrfs
xfs/297 270s ... [not run] not suitable for this filesystem type: btrfs
Ran: generic/068 generic/085 generic/311
Not run: generic/280 xfs/011 xfs/119 xfs/297
Passed all 3 tests

and

FSTYP -- ext4
PLATFORM -- Linux/x86_64 intel-canoepass-10 4.2.0-rc6+
MKFS_OPTIONS -- /dev/loop1
MOUNT_OPTIONS -- -o acl,user_xattr -o context=system_u:object_r:nfs_t:s0 /dev/loop1 SCRATCH

generic/068 53s ... 52s
generic/085 16s ... 8s
generic/280 2s ... 4s
generic/311 136s ... 173s
xfs/011 20s ... [not run] not suitable for this filesystem type: ext4
xfs/119 22s ... [not run] not suitable for this filesystem type: ext4
xfs/297 270s ... [not run] not suitable for this filesystem type: ext4
Ran: generic/068 generic/085 generic/280 generic/311
Not run: xfs/011 xfs/119 xfs/297
Passed all 4 tests

Oleg.

arch/Kconfig | 1 -
fs/btrfs/transaction.c | 8 +--
fs/super.c | 167 ++++++++++++++++++-----------------------
fs/xfs/xfs_aops.c | 6 +-
include/linux/fs.h | 23 +++---
include/linux/percpu-rwsem.h | 20 +++++
init/Kconfig | 1 -
kernel/locking/Makefile | 3 +-
kernel/locking/percpu-rwsem.c | 13 +++
lib/Kconfig | 3 -
10 files changed, 122 insertions(+), 123 deletions(-)