kernel-hacking-2024-linux-s.../include/linux
Peter Zijlstra c4dc4beed2 nfs: remove congestion_end()
These patches aim to improve balance_dirty_pages() and directly address three
issues:
  1) inter device starvation
  2) stacked device deadlocks
  3) inter process starvation

1 and 2 are a direct result from removing the global dirty limit and using
per device dirty limits. By giving each device its own dirty limit is will
no longer starve another device, and the cyclic dependancy on the dirty limit
is broken.

In order to efficiently distribute the dirty limit across the independant
devices a floating proportion is used, this will allocate a share of the total
limit proportional to the device's recent activity.

3 is done by also scaling the dirty limit proportional to the current task's
recent dirty rate.

This patch:

nfs: remove congestion_end().  It's redundant, clear_bdi_congested() already
wakes the waiters.

Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: "J. Bruce Fields" <bfields@fieldses.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2007-10-17 08:42:44 -07:00
..
amba
byteorder
dvb
hdlc
isdn
lockd
mlx4
mmc
mtd [MTD] [NOR] fix ctrl-alt-del can't reboot for intel flash bug 2007-10-13 14:36:18 +01:00
netfilter [NETFILTER]: Replace sk_buff ** with sk_buff * 2007-10-15 12:26:29 -07:00
netfilter_arp [NETFILTER]: Replace sk_buff ** with sk_buff * 2007-10-15 12:26:29 -07:00
netfilter_bridge [NETFILTER]: Replace sk_buff ** with sk_buff * 2007-10-15 12:26:29 -07:00
netfilter_ipv4 [NETFILTER]: Replace sk_buff ** with sk_buff * 2007-10-15 12:26:29 -07:00
netfilter_ipv6 [NETFILTER]: Replace sk_buff ** with sk_buff * 2007-10-15 12:26:29 -07:00
nfsd fs/nfsd/export.c: make 3 functions static 2007-10-16 09:43:10 -07:00
raid
rtc
spi Merge branch 'linus' of master.kernel.org:/pub/scm/linux/kernel/git/perex/alsa 2007-10-16 10:13:38 -07:00
ssb
sunrpc Merge git://git.linux-nfs.org/pub/linux/nfs-2.6 2007-10-15 10:47:35 -07:00
tc_act
tc_ematch
usb docbook: fix usb content 2007-10-15 17:56:36 -07:00
8250_pci.h
a.out.h
ac97_codec.h
acct.h
acpi.h
acpi_pmtmr.h
adb.h
adfs_fs.h
adfs_fs_i.h
adfs_fs_sb.h
aer.h
affs_hardblocks.h
agp_backend.h
agpgart.h long vs. unsigned long - low-hanging fruits in drivers 2007-10-14 12:41:51 -07:00
aio.h
aio_abi.h
amifd.h
amifdreg.h
amigaffs.h
anon_inodes.h
apm-emulation.h
apm_bios.h
arcdevice.h
arcfb.h
async_tx.h
ata.h
atalk.h
atm.h
atm_eni.h
atm_he.h
atm_idt77105.h
atm_nicstar.h
atm_suni.h
atm_tcp.h
atm_zatm.h
atmapi.h
atmarp.h
atmbr2684.h
atmclip.h
atmdev.h
atmel_pdc.h
atmioc.h
atmlec.h
atmmpc.h
atmppp.h
atmsap.h
atmsvc.h
attribute_container.h
audit.h
auto_fs.h
auto_fs4.h
auxvec.h
ax25.h
b1lli.h
b1pcmcia.h
backing-dev.h nfs: remove congestion_end() 2007-10-17 08:42:44 -07:00
backlight.h
baycom.h
bcd.h
bfs_fs.h
binfmts.h
bio.h block: Initial support for data-less (or empty) barrier support 2007-10-16 11:03:56 +02:00
bit_spinlock.h
bitmap.h
bitops.h I/OAT: Add support for MSI and MSI-X 2007-10-16 09:43:09 -07:00
bitrev.h
blkdev.h block: convert blkdev_issue_flush() to use empty barriers 2007-10-16 11:05:02 +02:00
blkpg.h
blktrace_api.h
blockgroup_lock.h
bootmem.h
bottom_half.h
bpqether.h
bsg.h
buffer_head.h fs: restore nobh 2007-10-16 09:42:58 -07:00
bug.h
cache.h
calc64.h
capability.h
capi.h
cciss_ioctl.h
cd1400.h
cdev.h
cdk.h
cdrom.h
cfag12864b.h
chio.h
circ_buf.h
clk.h
clockchips.h clockevents: introduce force broadcast notifier 2007-10-14 22:57:45 +02:00
clocksource.h
cm4000_cs.h
cn_proc.h
coda.h
coda_cache.h
coda_fs_i.h
coda_linux.h
coda_psdev.h
coff.h
com20020.h
compat.h
compiler-gcc.h
compiler-gcc3.h
compiler-gcc4.h
compiler-intel.h
compiler.h
completion.h
comstats.h
concap.h
configfs.h
connector.h uvesafb: add connector entries 2007-10-16 09:43:13 -07:00
console.h vt/vgacon: Check if screen resize request comes from userspace 2007-10-16 09:43:20 -07:00
console_struct.h vt/vgacon: Check if screen resize request comes from userspace 2007-10-16 09:43:20 -07:00
consolemap.h
const.h
cpu.h
cpufreq.h
cpumask.h
cpuset.h Memoryless nodes: Use N_HIGH_MEMORY for cpusets 2007-10-16 09:42:59 -07:00
cramfs_fs.h
cramfs_fs_sb.h
crash_dump.h
crc-ccitt.h
crc-itu-t.h
crc7.h
crc16.h
crc32.h
crc32c.h
crypto.h
cryptohash.h
ctype.h
cuda.h
cyclades.h
cyclomx.h
cycx_cfm.h
cycx_drv.h
cycx_x25.h
dca.h DCA: Add Direct Cache Access driver 2007-10-16 09:43:09 -07:00
dcache.h
dccp.h
dcookies.h
debug_locks.h
debugfs.h
delay.h
delayacct.h
device-mapper.h
device.h
devpts_fs.h
dio.h
dirent.h
display.h
dlm.h
dlm_device.h
dlm_netlink.h
dm-ioctl.h
dm9000.h
dma-mapping.h introduce DMA_MASK_NONE as a signal for unable to do DMA 2007-10-16 09:42:50 -07:00
dmaengine.h
dmapool.h
dmi.h
dn.h
dnotify.h
dqblk_v1.h
dqblk_v2.h
dqblk_xfs.h
ds1wm.h
ds1286.h
ds17287rtc.h
dtlk.h
edac.h
edd.h
eeprom_93cx6.h
efi.h
efs_dir.h
efs_fs.h
efs_fs_i.h
efs_fs_sb.h
efs_vh.h
eisa.h
elevator.h
elf-em.h
elf-fdpic.h
elf.h powerpc: add Altivec/VMX state to coredumps 2007-10-17 08:42:44 -07:00
elfcore.h
elfnote.h
err.h
errno.h
errqueue.h
etherdevice.h
ethtool.h
eventfd.h
eventpoll.h
exportfs.h
ext2_fs.h
ext2_fs_sb.h
ext3_fs.h
ext3_fs_i.h
ext3_fs_sb.h
ext3_jbd.h
ext4_fs.h
ext4_fs_extents.h
ext4_fs_i.h
ext4_fs_sb.h
ext4_jbd2.h
fadvise.h
falloc.h
fault-inject.h
fb.h fb: move and rename extern declaration for global_mode_option 2007-10-16 09:43:22 -07:00
fcdevice.h
fcntl.h
fd.h
fd1772.h
fddidevice.h
fdreg.h
fib_rules.h
file.h
filter.h
firewire-cdev.h firewire: adopt read cycle timer ABI from raw1394 2007-10-17 00:00:08 +02:00
firewire-constants.h
firmware.h
flat.h
font.h
freezer.h
fs.h fs: remove some AOP_TRUNCATED_PAGE 2007-10-16 09:42:58 -07:00
fs_enet_pd.h
fs_stack.h
fs_struct.h
fs_uart_pd.h
fsl_devices.h
fsnotify.h
fuse.h
futex.h
gameport.h
gen_stats.h
genalloc.h
generic_acl.h
generic_serial.h
genetlink.h
genhd.h
getcpu.h
gfp.h Print out statistics in relation to fragmentation avoidance to /proc/pagetypeinfo 2007-10-16 09:43:00 -07:00
gfs2_ondisk.h
gigaset_dev.h
gpio_keys.h
gpio_mouse.h
hardirq.h
harrier_defs.h
hash.h
hayesesp.h
hdlc.h
hdlcdrv.h long vs. unsigned long - low-hanging fruits in drivers 2007-10-14 12:41:51 -07:00
hdpu_features.h
hdreg.h
hdsmart.h
hid-debug.h
hid.h HID: fix HIDIOCGRDESC memory access in hidraw 2007-10-15 08:12:00 -07:00
hiddev.h
hidraw.h HID: fix HIDIOCGRDESC memory access in hidraw 2007-10-15 08:12:00 -07:00
highmem.h
highuid.h
hil.h
hil_mlc.h
hippidevice.h
hp_sdc.h
hpet.h
hrtimer.h
htirq.h
hugetlb.h hugetlb: Add hugetlb_dynamic_pool sysctl 2007-10-16 09:43:02 -07:00
hw_random.h
hwmon-sysfs.h
hwmon-vid.h
hwmon.h
hysdn_if.h
i2c-algo-bit.h
i2c-algo-pca.h
i2c-algo-pcf.h
i2c-algo-sgi.h
i2c-dev.h i2c: Move i2c-dev interfaces to i2c-dev.h 2007-10-13 23:56:32 +02:00
i2c-gpio.h
i2c-id.h [ALSA] ASoC CS4270 codec device driver 2007-10-16 15:58:19 +02:00
i2c-ocores.h
i2c-pnx.h
i2c-pxa.h
i2c.h i2c: Rename the PEC functionality bit 2007-10-13 23:56:33 +02:00
i2o-dev.h
i2o.h i2o: sg chaining support 2007-10-16 11:21:00 +02:00
i8k.h
ibmtr.h
icmp.h
icmpv6.h
ide.h ide: add "hdx=nodma" kernel parameter 2007-10-16 22:29:58 +02:00
idr.h
ieee80211.h
if.h
if_addr.h
if_arcnet.h
if_arp.h
if_bonding.h
if_bridge.h [NETFILTER]: Replace sk_buff ** with sk_buff * 2007-10-15 12:26:29 -07:00
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_link.h
if_ltalk.h
if_macvlan.h
if_packet.h
if_plip.h
if_ppp.h
if_pppol2tp.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.h
igmp.h
in.h
in6.h
in_route.h
inet.h
inet_diag.h
inet_lro.h fix endianness bug in inet_lro 2007-10-14 12:41:52 -07:00
inetdevice.h
init.h Add assembler equivalents to __init{,date}_refok 2007-10-16 09:42:49 -07:00
init_task.h
initrd.h
inotify.h
input-polldev.h
input.h Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2007-10-15 13:41:39 -07:00
interrupt.h provide stubs for enable_irq_wake() and disable_irq_wake() 2007-10-16 09:42:50 -07:00
io.h
ioc3.h
ioc4.h
ioctl.h
ioport.h memory unplug: memory hotplug cleanup 2007-10-16 09:43:01 -07:00
ioprio.h
ip.h
ip6_tunnel.h
ipc.h
ipmi.h
ipmi_msgdefs.h
ipmi_smi.h
ipsec.h
ipv6.h
ipv6_route.h
ipx.h
irda.h
irq.h
irq_cpustat.h
irqflags.h
irqreturn.h
isa.h
isapnp.h
isdn.h use mutex instead of semaphore in isdn subsystem common functions 2007-10-16 09:43:10 -07:00
isdn_divertif.h
isdn_ppp.h
isdnif.h
isicom.h
iso_fs.h
istallion.h
ivtv.h
ivtvfb.h
ixjuser.h
jbd.h docbook: fix filesystems content 2007-10-15 17:56:36 -07:00
jbd2.h
jffs2.h
jhash.h
jiffies.h slow down printk during boot 2007-10-16 09:42:49 -07:00
journal-head.h
joystick.h
kallsyms.h
kbd_diacr.h
kbd_kern.h
Kbuild
kd.h
kdebug.h
kdev_t.h
kernel.h memory unplug: page offline 2007-10-16 09:43:02 -07:00
kernel_stat.h sched: guest CPU accounting: add guest-CPU /proc/stat field 2007-10-15 17:00:19 +02: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
kprobes.h kprobes: support kretprobe blacklist 2007-10-16 09:43:10 -07:00
kref.h
ks0108.h
kthread.h
ktime.h
kvm.h KVM: Replace enum by #define 2007-10-13 10:18:29 +02:00
kvm_para.h
lapb.h
latency.h
lcd.h
leds.h
lguest.h
lguest_bus.h
lguest_launcher.h
libata.h libata: convert to using sg helpers 2007-10-16 11:14:12 +02:00
libps2.h
license.h
limits.h
linkage.h
linux_logo.h
list.h
llc.h
lm_interface.h
lock_dlm_plock.h
lockdep.h
log2.h
loop.h
lp.h
lzo.h
m41t00.h
m48t86.h
magic.h
major.h
maple.h
matroxfb.h
mbcache.h
mc6821.h
mc146818rtc.h
mca-legacy.h
mca.h
mdio-bitbang.h
memory.h
memory_hotplug.h fix memory hot remove not configured case. 2007-10-16 09:43:02 -07:00
mempolicy.h mm/mempolicy.c: cleanups 2007-10-16 09:43:03 -07:00
mempool.h
meye.h
migrate.h
mii.h
minix_fs.h
miscdevice.h
mm.h mm/shmem.c: make 3 functions static 2007-10-16 09:43:03 -07:00
mm_inline.h
mm_types.h SLUB: Move page->offset to kmem_cache_cpu->offset 2007-10-16 09:43:01 -07:00
mman.h
mmtimer.h
mmzone.h memory unplug: page isolation 2007-10-16 09:43:02 -07:00
mnt_namespace.h
mod_devicetable.h i2c: Kill struct i2c_device_id 2007-10-13 23:56:29 +02:00
module.h
moduleloader.h
moduleparam.h
mount.h
mpage.h
mqueue.h
mroute.h
msdos_fs.h
msg.h
msi.h
mtio.h
mutex-debug.h
mutex.h
mv643xx.h
n_r3964.h
namei.h partially fix up the lookup_one_noperm mess 2007-10-17 08:42:44 -07:00
nbd.h
ncp.h
ncp_fs.h
ncp_fs_i.h
ncp_fs_sb.h
ncp_mount.h
ncp_no.h
neighbour.h
net.h
netdevice.h net core: fix kernel-doc for new function parameters 2007-10-13 09:52:26 -07:00
netfilter.h [NETFILTER]: Replace sk_buff ** with sk_buff * 2007-10-15 12:26:29 -07:00
netfilter_arp.h
netfilter_bridge.h
netfilter_decnet.h
netfilter_ipv4.h [NETFILTER]: Replace sk_buff ** with sk_buff * 2007-10-15 12:26:29 -07:00
netfilter_ipv6.h
netlink.h
netpoll.h
netrom.h
nfs.h
nfs2.h
nfs3.h
nfs4.h
nfs4_acl.h
nfs4_mount.h
nfs_fs.h
nfs_fs_i.h
nfs_fs_sb.h
nfs_idmap.h
nfs_mount.h
nfs_page.h
nfs_xdr.h
nfsacl.h
nfsd_idmap.h
nl80211.h
nls.h
nmi.h
node.h
nodemask.h Memoryless nodes: Add N_CPU node state 2007-10-16 09:42:58 -07:00
notifier.h
nsc_gpio.h
nsproxy.h
nubus.h
numa.h
nvram.h
of.h
of_device.h
of_platform.h
oom.h
oprofile.h
page-flags.h
page-isolation.h memory unplug: page isolation 2007-10-16 09:43:02 -07:00
pageblock-flags.h memory unplug: page isolation 2007-10-16 09:43:02 -07:00
pagemap.h fs: introduce write_begin, write_end, and perform_write aops 2007-10-16 09:42:55 -07:00
pagevec.h
param.h
parport.h
parport_pc.h
parser.h
pata_platform.h
patchkey.h
pci-acpi.h
pci.h
pci_hotplug.h
pci_ids.h I/OAT: New device ids 2007-10-16 09:43:09 -07:00
pci_regs.h
pcieport_if.h
pda_power.h
percpu.h
percpu_counter.h
personality.h
pfkeyv2.h
pfn.h
pg.h
phantom.h
phonedev.h
phy.h
phy_fixed.h
pid.h
pid_namespace.h
pipe_fs_i.h
pkt_cls.h
pkt_sched.h
pktcdvd.h
platform_device.h
plist.h
pm.h
pm_legacy.h
pmu.h
pnp.h
pnpbios.h
poison.h
poll.h
posix-timers.h
posix_acl.h
posix_acl_xattr.h
posix_types.h
power_supply.h
ppdev.h
ppp-comp.h
ppp_channel.h
ppp_defs.h
prctl.h
preempt.h
prefetch.h
prio_tree.h
proc_fs.h
profile.h
ps2esdi.h
ptrace.h
qnx4_fs.h
qnxtypes.h
quicklist.h
quota.h
quotaio_v1.h
quotaio_v2.h
quotaops.h
radeonfb.h
radix-tree.h radix-tree: use indirect bit 2007-10-16 09:42:53 -07:00
raid_class.h
ramfs.h
random.h
raw.h
rbtree.h
rcupdate.h
reboot.h
reciprocal_div.h
reiserfs_acl.h
reiserfs_fs.h
reiserfs_fs_i.h
reiserfs_fs_sb.h more low-hanging fruits - kernel, fs, lib signedness 2007-10-14 12:41:52 -07:00
reiserfs_xattr.h
relay.h
resource.h
resume-trace.h
rfkill.h
rio.h
rio_drv.h
rio_ids.h
rio_regs.h
rmap.h
romfs_fs.h
root_dev.h
rose.h
route.h
rslib.h
rtc-v3020.h
rtc.h
rtmutex.h
rtnetlink.h
rwsem-spinlock.h
rwsem.h
rxrpc.h
sc26198.h
scatterlist.h Add chained sg support to linux/scatterlist.h 2007-10-16 11:08:51 +02:00
scc.h
sched.h cpuset: remove sched domain hooks from cpusets 2007-10-16 09:43:09 -07:00
screen_info.h
sctp.h
scx200.h
scx200_gpio.h long vs. unsigned long - low-hanging fruits in drivers 2007-10-14 12:41:51 -07:00
sdla.h
seccomp.h
securebits.h
security.h SELinux: Improve read/write performance 2007-10-17 08:59:31 +10:00
selection.h vt: Fix warnings in selection.h 2007-10-16 09:43:17 -07:00
selinux.h
selinux_netlink.h
sem.h
seq_file.h
seqlock.h
serial.h
serial167.h
serial_8250.h
serial_core.h wake up from a serial port 2007-10-16 09:42:50 -07:00
serial_pnx8xxx.h
serial_reg.h
serialP.h
serio.h
shm.h
shmem_fs.h
signal.h
signalfd.h
skbuff.h Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6 2007-10-15 14:06:58 -07:00
slab.h Group short-lived and reclaimable kernel allocations 2007-10-16 09:43:00 -07:00
slab_def.h
slob_def.h
slub_def.h SLUB: Optimize cacheline use for zeroing 2007-10-16 09:43:01 -07:00
sm501-regs.h sm501fb: Ensure panel interface is not tristated when setup 2007-10-16 09:43:14 -07:00
sm501.h
smb.h
smb_fs.h
smb_fs_i.h
smb_fs_sb.h
smb_mount.h
smbno.h
smp.h
smp_lock.h
snmp.h
socket.h
sockios.h
som.h
sonet.h
sony-laptop.h
sonypi.h
sort.h
sound.h
soundcard.h
spinlock.h
spinlock_api_smp.h
spinlock_api_up.h
spinlock_types.h
spinlock_types_up.h
spinlock_up.h
splice.h
srcu.h
stacktrace.h
stallion.h long vs. unsigned long - low-hanging fruits in drivers 2007-10-14 12:41:51 -07:00
start_kernel.h
stat.h
statfs.h
stddef.h
stop_machine.h
string.h
stringify.h
superhyway.h
suspend.h
svga.h
swap.h
swapops.h
synclink.h
sys.h
syscalls.h
sysctl.h
sysdev.h
sysfs.h
sysrq.h
sysv_fs.h
task_io_accounting.h
task_io_accounting_ops.h
taskstats.h
taskstats_kern.h
tc.h
tcp.h [TCP]: Make snd_cwnd_cnt 32-bit 2007-10-15 12:59:43 -07:00
telephony.h
termios.h
textsearch.h
textsearch_fsm.h
tfrc.h
thread_info.h
threads.h
ticable.h
tick.h
tifm.h
time.h
timer.h
timerfd.h
times.h
timex.h
tiocl.h
tipc.h
tipc_config.h
topology.h sched: enable wake-idle on CONFIG_SCHED_MC=y 2007-10-15 17:00:19 +02:00
toshiba.h
transport_class.h
trdevice.h
tsacct_kern.h
tty.h
tty_driver.h
tty_flip.h
tty_ldisc.h
types.h
uaccess.h
udf_fs.h
udf_fs_i.h
udf_fs_sb.h
udp.h
ufs_fs.h
ufs_fs_i.h
ufs_fs_sb.h
uinput.h
uio.h
uio_driver.h
ultrasound.h
un.h
unistd.h
unwind.h
usb.h
usb_usual.h
usbdevice_fs.h
user.h
user_namespace.h
utime.h
uts.h
utsname.h
vermagic.h
vfs.h
via.h
video_decoder.h
video_encoder.h
video_output.h
videodev.h
videodev2.h
videotext.h
vmalloc.h
vmstat.h
vt.h
vt_buffer.h
vt_kern.h
wait.h
wanrouter.h
watchdog.h
wireless.h
workqueue.h
writeback.h Merge git://git.linux-nfs.org/pub/linux/nfs-2.6 2007-10-15 10:47:35 -07:00
x25.h
xattr.h
xfrm.h
xilinxfb.h
yam.h
zconf.h
zlib.h
zorro.h
zorro_ids.h
zutil.h