kernel-ark/include/linux
Jens Axboe bc1c116974 [PATCH] elevator switching race
There's a race between shutting down one io scheduler and firing up the
next, in which a new io could enter and cause the io scheduler to be
invoked with bad or NULL data.

To fix this, we need to maintain the queue lock for a bit longer.
Unfortunately we cannot do that, since the elevator init requires to be
run without the lock held.  This isn't easily fixable, without also
changing the mempool API.  So split the initialization into two parts,
and alloc-init operation and an attach operation.  Then we can
preallocate the io scheduler and related structures, and run the attach
inside the lock after we detach the old one.

This patch has survived 30 minutes of 1 second io scheduler switching
with a very busy io load.

Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-06-08 15:14:23 -07:00
..
amba
byteorder
dvb
hdlc
isdn
lockd
mmc [ARM] 3531/1: i.MX/MX1 SD/MMC ensure, that clock are stopped before new command and cleanups 2006-05-19 21:48:03 +01:00
mtd
netfilter [NETFILTER] x_tables: fix compat related crash on non-x86 2006-05-01 20:48:32 -07:00
netfilter_arp
netfilter_bridge
netfilter_ipv4 [NETFILTER]: H.323 helper: Change author's email address 2006-05-03 23:19:59 -07:00
netfilter_ipv6
nfsd
raid
spi [PATCH] SPI: busnum == 0 needs to work 2006-05-16 14:33:57 -07:00
sunrpc
tc_act
tc_ematch
usb
8250_pci.h
a.out.h
ac97_codec.h
acct.h
acpi.h
adb.h
adfs_fs_i.h
adfs_fs_sb.h
adfs_fs.h
affs_fs.h
affs_hardblocks.h
agp_backend.h
agpgart.h
aio_abi.h
aio.h
amifd.h
amifdreg.h
amigaffs.h
apm_bios.h
arcdevice.h
arcfb.h
ata.h
atalk.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_suni.h
atm_tcp.h
atm_zatm.h
atm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
attribute_container.h
audit.h [PATCH] Rework of IPC auditing 2006-05-01 06:10:04 -04:00
auto_fs4.h
auto_fs.h
auxvec.h
awe_voice.h
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h
backlight.h
baycom.h
bcd.h
bfs_fs.h
binfmts.h
bio.h
bit_spinlock.h
bitmap.h
bitops.h
blkdev.h
blkpg.h
blktrace_api.h
blockgroup_lock.h
bootmem.h
bpqether.h
buffer_head.h
cache.h
calc64.h
capability.h
capi.h
cciss_ioctl.h
cd1400.h
cdev.h
cdk.h
cdrom.h
chio.h
circ_buf.h
clk.h
cm4000_cs.h
cn_proc.h
cobalt-nvram.h
coda_cache.h
coda_fs_i.h
coda_linux.h
coda_proc.h
coda_psdev.h
coda.h
coff.h
com20020.h
compat_ioctl.h
compat.h
compiler-gcc3.h
compiler-gcc4.h
compiler-gcc.h
compiler-intel.h
compiler.h
completion.h
comstats.h
concap.h
config.h
configfs.h
connector.h
console_struct.h
console.h
consolemap.h
cpu.h
cpufreq.h
cpumask.h
cpuset.h
cramfs_fs_sb.h
cramfs_fs.h
crash_dump.h
crc16.h
crc32.h
crc32c.h
crc-ccitt.h
crypto.h
cryptohash.h
ctype.h
cuda.h
cyclades.h
cyclomx.h
cycx_cfm.h
cycx_drv.h
cycx_x25.h
dcache.h
dccp.h
dcookies.h
debugfs.h [PATCH] Fix OCFS2 warning when DEBUG_FS is not enabled 2006-04-27 13:08:56 -07:00
delay.h
devfs_fs_kernel.h
devfs_fs.h
device-mapper.h
device.h [CLASS DEVICE]: add attribute_group creation 2006-05-06 17:55:11 -07:00
devpts_fs.h
dio.h
dirent.h
divert.h
dm9000.h
dm-ioctl.h
dma-mapping.h dl2k: use DMA_48BIT_MASK constant 2006-05-10 14:04:22 -07:00
dmapool.h
dmi.h
dn.h
dnotify.h
dqblk_v1.h
dqblk_v2.h
dqblk_xfs.h
ds1286.h
ds1742rtc.h
ds17287rtc.h
dtlk.h
edd.h
efi.h
efs_dir.h
efs_fs_i.h
efs_fs_sb.h
efs_fs.h
efs_vh.h
eisa.h
elevator.h [PATCH] elevator switching race 2006-06-08 15:14:23 -07:00
elf-fdpic.h
elf.h
elfcore.h
err.h
errno.h
errqueue.h
etherdevice.h
ethtool.h
eventpoll.h
ext2_fs_sb.h
ext2_fs.h
ext3_fs_i.h
ext3_fs_sb.h
ext3_fs.h
ext3_jbd.h
fadvise.h
fb.h
fcdevice.h
fcntl.h
fd1772.h
fd.h
fddidevice.h
fdreg.h
file.h
filter.h
firmware.h [PATCH] drivers/base/firmware_class.c: cleanups 2006-05-21 12:59:19 -07:00
flat.h
font.h
fs_enet_pd.h
fs_struct.h
fs_uart_pd.h [PATCH] ppc32 CPM_UART: fixes and improvements 2006-05-03 23:06:44 +10:00
fs.h [PATCH] sys_sync_file_range(): move exported flags outside __KERNEL__ 2006-05-23 10:35:31 -07:00
fsl_devices.h [PATCH] spi: add spi master driver for Freescale MPC83xx SPI controller 2006-05-21 12:59:19 -07:00
fsnotify.h
ftape-header-segment.h
ftape-vendors.h
ftape.h
fuse.h
futex.h
gameport.h
gen_stats.h
genalloc.h
generic_serial.h
genetlink.h
genhd.h
gfp.h
gigaset_dev.h
hardirq.h
harrier_defs.h
hash.h
hayesesp.h
hdlc.h
hdlcdrv.h
hdpu_features.h
hdreg.h
hdsmart.h
hiddev.h
highmem.h
highuid.h
hil_mlc.h
hil.h
hippidevice.h
hp_sdc.h
hpet.h
hpfs_fs.h
hrtimer.h
hugetlb.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hysdn_if.h
i2c-algo-bit.h
i2c-algo-ite.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-algo-sgi.h
i2c-algo-sibyte.h
i2c-dev.h
i2c-id.h
i2c-isa.h
i2c-pxa.h
i2c.h
i2o-dev.h
i2o.h
i8k.h
ibmtr.h
icmp.h
icmpv6.h
ide.h
idr.h
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h
if_cablemodem.h
if_ec.h
if_eql.h
if_ether.h
if_fc.h
if_fddi.h
if_frad.h
if_hippi.h
if_infiniband.h
if_ltalk.h
if_packet.h
if_plip.h
if_ppp.h
if_pppox.h
if_shaper.h
if_slip.h
if_strip.h
if_tr.h
if_tun.h
if_tunnel.h
if_vlan.h
if_wanpipe_common.h
if_wanpipe.h
if.h
igmp.h
in6.h
in_route.h
in.h
inet_diag.h
inet.h
inetdevice.h
init_task.h
init.h
initrd.h
inotify.h
input.h Input: change from numbered to named switches 2006-05-29 23:31:03 -04:00
interrupt.h
io.h
ioc3.h
ioc4.h
ioctl32.h
ioctl.h
ioport.h
ioprio.h
ip6_tunnel.h
ip_mp_alg.h
ip.h
ipc.h
ipmi_msgdefs.h
ipmi_smi.h
ipmi.h
ipsec.h
ipv6_route.h
ipv6.h
ipx.h
irda.h
irq_cpustat.h
irq.h
isapnp.h
isdn_divertif.h
isdn_ppp.h
isdn.h
isdnif.h
isicom.h
iso_fs.h
istallion.h
ite_gpio.h
ixjuser.h
jbd.h
jffs2_fs_i.h
jffs2_fs_sb.h
jffs2.h
jffs.h
jhash.h
jiffies.h
journal-head.h
joystick.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
kd.h
kdev_t.h
kernel_stat.h
kernel.h [PATCH] symbol_put_addr() locks kernel 2006-05-15 11:20:55 -07:00
kernelcapi.h
kexec.h
key-ui.h
key.h
keyboard.h
keyctl.h
kfifo.h
klist.h
kmalloc_sizes.h
kmod.h
kobj_map.h
kobject.h [PATCH] Kobject: possible cleanups 2006-04-27 13:08:56 -07:00
kprobes.h
kref.h
kthread.h
ktime.h
lapb.h
lcd.h
leds.h
libata.h
libps2.h
limits.h
linkage.h
linux_logo.h
list.h [NET]: use hlist_unhashed() 2006-04-29 18:33:15 -07:00
llc.h
loop.h
lp.h
m48t86.h [PATCH] m48t86: ia64 build fix 2006-06-05 12:29:17 -07:00
major.h
matroxfb.h
mbcache.h
mc6821.h
mc146818rtc.h
mca-legacy.h
mca.h
memory_hotplug.h
memory.h
mempolicy.h [PATCH] Fix mempolicy.h build error 2006-06-08 15:12:21 -07:00
mempool.h
meye.h
migrate.h
mii.h
minix_fs.h
miscdevice.h
mm_inline.h
mm.h
mman.h
mmtimer.h
mmzone.h [PATCH] Sparsemem build fix 2006-06-05 12:29:16 -07:00
mod_devicetable.h
module.h
moduleloader.h
moduleparam.h
mount.h
mpage.h
mqueue.h
mroute.h
msdos_fs.h
msg.h
mtio.h
mutex-debug.h
mutex.h
mv643xx.h
n_r3964.h
namei.h
namespace.h
nbd.h
ncp_fs_i.h
ncp_fs_sb.h
ncp_fs.h
ncp_mount.h
ncp_no.h
ncp.h
net.h
netdevice.h [NET]: Do sysfs registration as part of register_netdevice. 2006-05-10 13:21:17 -07:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h
netfilter_ipv6.h
netfilter_logging.h
netfilter.h
netlink.h [PATCH] Reworked patch for labels on user space messages 2006-05-01 06:09:58 -04:00
netpoll.h
netrom.h
nfs2.h
nfs3.h
nfs4_acl.h
nfs4_mount.h
nfs4.h
nfs_fs_i.h
nfs_fs_sb.h
nfs_fs.h
nfs_idmap.h
nfs_mount.h
nfs_page.h
nfs_xdr.h
nfs.h
nfsacl.h
nfsd_idmap.h
nls.h
nmi.h
node.h
nodemask.h
notifier.h
nubus.h
numa.h
nvram.h
openprom_fs.h
oprofile.h
page-flags.h
pagemap.h [PATCH] Add find_get_pages_contig(): contiguous variant of find_get_pages() 2006-04-27 08:59:48 +02:00
pagevec.h
param.h
parport_pc.h
parport.h
parser.h
patchkey.h
pci_ids.h [AGPGART] VIA PT880 Ultra support. 2006-05-22 13:56:02 -04:00
pci_regs.h
pci-acpi.h
pci.h
pcieport_if.h
percpu_counter.h
percpu.h
personality.h
pfkeyv2.h
pfn.h
pg.h
phonedev.h
phy.h
pid.h
pipe_fs_i.h [PATCH] splice: LRU fixups 2006-05-04 06:55:12 +02:00
pkt_cls.h
pkt_sched.h
pktcdvd.h
platform_device.h
pm_legacy.h
pm.h
pmu.h
pnp.h
pnpbios.h
poll.h
posix_acl_xattr.h
posix_acl.h
posix_types.h
posix-timers.h
ppdev.h
ppp_channel.h
ppp_defs.h
ppp-comp.h
prctl.h
preempt.h
prefetch.h
prio_tree.h
proc_fs.h
profile.h
ps2esdi.h
ptrace.h
qic117.h
qnx4_fs.h
qnxtypes.h
quota.h
quotaio_v1.h
quotaio_v2.h
quotaops.h
radeonfb.h
radix-tree.h
raid_class.h
ramfs.h
random.h
raw.h
rbtree.h
rcupdate.h [PATCH] RCU: introduce rcu_needs_cpu() interface 2006-05-15 11:20:55 -07:00
reboot_fixups.h
reboot.h
reiserfs_acl.h
reiserfs_fs_i.h
reiserfs_fs_sb.h
reiserfs_fs.h
reiserfs_xattr.h
relay.h
resource.h
rio_drv.h
rio_ids.h
rio_regs.h
rio.h
rmap.h
romfs_fs.h
root_dev.h
rose.h
route.h
rslib.h
rtc.h
rtnetlink.h
rwsem-spinlock.h
rwsem.h
sc26198.h
scatterlist.h
scc.h
sched.h
screen_info.h
sctp.h
scx200_gpio.h
scx200.h
sdla_fr.h
sdla.h
seccomp.h
securebits.h
security.h [PATCH] change lspp ipc auditing 2006-05-01 06:09:56 -04:00
selection.h
selinux_netlink.h
selinux.h [PATCH] Reworked patch for labels on user space messages 2006-05-01 06:09:58 -04:00
sem.h
seq_file.h
seqlock.h
serial167.h
serial_8250.h
serial_core.h [SERIAL] Clean up serial locking when obtaining a reference to a port 2006-04-30 11:13:50 +01:00
serial_ip3106.h
serial_reg.h
serial.h
serialP.h
serio.h
shm.h
shmem_fs.h
signal.h [PATCH] request_irq(): remove warnings from irq probing 2006-04-28 08:33:46 -07:00
skbuff.h
slab.h [PATCH] add slab_is_available() routine for boot code 2006-05-15 11:20:56 -07:00
smb_fs_i.h
smb_fs_sb.h
smb_fs.h
smb_mount.h
smb.h
smbno.h
smp_lock.h
smp.h
snmp.h
socket.h
sockios.h
som.h
sonet.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types_up.h
spinlock_types.h
spinlock_up.h
spinlock.h
stallion.h
stat.h
statfs.h
stddef.h
stop_machine.h
string.h
stringify.h
superhyway.h
suspend.h
swap.h [PATCH] fix can_share_swap_page() when !CONFIG_SWAP 2006-05-15 11:20:56 -07:00
swapops.h
synclink.h
sys.h
syscalls.h [PATCH] powerpc: wire up sys_[gs]et_robust_list 2006-05-23 10:35:32 -07:00
sysctl.h
sysdev.h
sysfs.h
sysrq.h
sysv_fs.h
tcp.h
telephony.h
termios.h
textsearch_fsm.h
textsearch.h
tfrc.h
thread_info.h
threads.h
ticable.h
time.h
timer.h
times.h
timex.h
tiocl.h
tipc_config.h
tipc.h
topology.h
toshiba.h
transport_class.h
trdevice.h
tty_driver.h
tty_flip.h
tty_ldisc.h
tty.h
types.h
udf_fs_i.h
udf_fs_sb.h
udf_fs.h
udp.h
ufs_fs_i.h
ufs_fs_sb.h
ufs_fs.h
uinput.h
uio.h
ultrasound.h
umem.h
un.h
unistd.h
usb_cdc.h
usb_ch9.h
usb_gadget.h
usb_gadgetfs.h
usb_input.h
usb_isp116x.h
usb_otg.h
usb_sl811.h
usb_usual.h
usb.h
usbdevice_fs.h
user.h
utime.h
uts.h
utsname.h
vermagic.h
vfs.h
via.h
video_decoder.h
video_encoder.h
videodev2.h V4L/DVB (3774): Create V4L1 config options 2006-05-12 19:54:53 -03:00
videodev.h
videotext.h
vmalloc.h
vt_buffer.h
vt_kern.h [PATCH] revert "swsusp add check for suspension of X controlled devices" 2006-05-31 16:27:11 -07:00
vt.h
wait.h
wanrouter.h
watchdog.h
wavefront.h
wireless.h
workqueue.h
writeback.h
x25.h
xattr.h
xfrm.h
yam.h
zconf.h
zftape.h
zlib.h
zorro_ids.h
zorro.h
zutil.h