kernel-ark/drivers
Nick Piggin 35a82d1a53 [PATCH] optimise loop driver a bit
Looks like locking can be optimised quite a lot.  Increase lock widths
slightly so lo_lock is taken fewer times per request.  Also it was quite
trivial to cover lo_pending with that lock, and remove the atomic
requirement.  This also makes memory ordering explicitly correct, which is
nice (not that I particularly saw any mem ordering bugs).

Test was reading 4 250MB files in parallel on ext2-on-tmpfs filesystem (1K
block size, 4K page size).  System is 2 socket Xeon with HT (4 thread).

intel:/home/npiggin# umount /dev/loop0 ; mount /dev/loop0 /mnt/loop ; /usr/bin/time ./mtloop.sh

Before:
0.24user 5.51system 0:02.84elapsed 202%CPU (0avgtext+0avgdata 0maxresident)k
0.19user 5.52system 0:02.88elapsed 198%CPU (0avgtext+0avgdata 0maxresident)k
0.19user 5.57system 0:02.89elapsed 198%CPU (0avgtext+0avgdata 0maxresident)k
0.22user 5.51system 0:02.90elapsed 197%CPU (0avgtext+0avgdata 0maxresident)k
0.19user 5.44system 0:02.91elapsed 193%CPU (0avgtext+0avgdata 0maxresident)k

After:
0.07user 2.34system 0:01.68elapsed 143%CPU (0avgtext+0avgdata 0maxresident)k
0.06user 2.37system 0:01.68elapsed 144%CPU (0avgtext+0avgdata 0maxresident)k
0.06user 2.39system 0:01.68elapsed 145%CPU (0avgtext+0avgdata 0maxresident)k
0.06user 2.36system 0:01.68elapsed 144%CPU (0avgtext+0avgdata 0maxresident)k
0.06user 2.42system 0:01.68elapsed 147%CPU (0avgtext+0avgdata 0maxresident)k

Signed-off-by: Nick Piggin <nickpiggin@yahoo.com.au>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-06-23 09:45:18 -07:00
..
acorn
acpi
atm
base [PATCH] driver core: Fix up the device_attach() error handling in bus_add_device() 2005-06-22 23:01:10 -07:00
block [PATCH] optimise loop driver a bit 2005-06-23 09:45:18 -07:00
bluetooth
cdrom
char
cpufreq
crypto
dio
eisa
fc4
firmware
i2c [PATCH] I2C: fix ds1374 build 2005-06-21 21:55:00 -07:00
ide [PATCH] NUMA aware block device control structure allocation 2005-06-23 09:45:09 -07:00
ieee1394
infiniband
input
isdn
macintosh
mca
md [PATCH] create a kstrdup library function 2005-06-23 09:45:18 -07:00
media
message
misc
mmc
mtd
net Merge 'misc-fixes' branch of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6 2005-06-23 09:25:04 -07:00
nubus
oprofile
parisc
parport [PATCH] create a kstrdup library function 2005-06-23 09:45:18 -07:00
pci
pcmcia
pnp
s390
sbus
scsi
serial
sh
sn
tc
telephony
usb [PATCH] USB: fix hid core to return proper error code from probe 2005-06-22 23:01:09 -07:00
video
w1
zorro
Kconfig
Makefile