1
linux/Documentation/filesystems
Eric Dumazet 29e75252da [IPV4] route cache: Introduce rt_genid for smooth cache invalidation
Current ip route cache implementation is not suited to large caches.

We can consume a lot of CPU when cache must be invalidated, since we
currently need to evict all cache entries, and this eviction is
sometimes asynchronous. min_delay & max_delay can somewhat control this
asynchronism behavior, but whole thing is a kludge, regularly triggering
infamous soft lockup messages. When entries are still in use, this also
consumes a lot of ram, filling dst_garbage.list.

A better scheme is to use a generation identifier on each entry,
so that cache invalidation can be performed by changing the table
identifier, without having to scan all entries.
No more delayed flushing, no more stalling when secret_interval expires.

Invalidated entries will then be freed at GC time (controled by
ip_rt_gc_timeout or stress), or when an invalidated entry is found
in a chain when an insert is done.
Thus we keep a normal equilibrium.

This patch :
- renames rt_hash_rnd to rt_genid (and makes it an atomic_t)
- Adds a new rt_genid field to 'struct rtable' (filling a hole on 64bit)
- Checks entry->rt_genid at appropriate places :
2008-01-31 19:28:27 -08:00
..
configfs some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
9p.txt 9p: add virtio transport 2007-10-23 13:47:31 -05:00
00-INDEX Documentation: add entries to filesystems/00-INDEX for several untracked files 2007-10-17 08:43:05 -07:00
adfs.txt Fix typos in /Documentation : 'U-Z' 2006-11-30 04:58:40 +01:00
affs.txt [PATCH] kernel Doc/ URL corrections 2005-11-22 09:14:30 -08:00
afs.txt [AFS]: Update the AFS fs documentation. 2007-04-26 15:57:43 -07:00
automount-support.txt VFS: Unexport do_kern_mount() and clean up simple_pin_fs() 2006-06-09 09:34:16 -04:00
befs.txt Fix typos in Documentation/: 'Q'-'R' 2006-10-03 22:54:15 +02:00
bfs.txt [PATCH] update Tigran's email addresses 2006-12-13 09:05:53 -08:00
cifs.txt
coda.txt
cramfs.txt
dentry-locking.txt [PATCH] VFS: split dentry locking documentation 2005-11-07 07:53:56 -08:00
directory-locking Documentation: Fix up docs still talking about i_sem 2007-05-24 10:16:17 -07:00
dlmfs.txt Fix typos in Documentation/: 'D'-'E' 2006-10-03 22:47:42 +02:00
ecryptfs.txt eCryptfs: Move ecryptfs docs into Documentation/filesystems/ 2007-07-17 10:23:08 -07:00
Exporting exportfs: update documentation 2007-10-22 08:13:21 -07:00
ext2.txt Fix typos in Documentation/: 'N'-'P' 2006-10-03 22:52:05 +02:00
ext3.txt documentation/ext3: grammar fixes 2007-10-20 02:38:36 +02:00
ext4.txt ext4: Add multi block allocator for ext4 2008-01-29 00:19:52 -05:00
files.txt Documentation/filesystems/files.txt: remove rcuref_inc_lf() reverences 2007-10-20 01:47:49 +02:00
fuse.txt [PATCH] fuse: fix typo 2006-12-30 10:56:45 -08:00
gfs2.txt [GFS2] Update documentation 2006-04-25 15:44:04 -04:00
hfs.txt
hfsplus.txt Documentation: document HFSPlus 2007-07-31 15:39:38 -07:00
hpfs.txt misc doc and kconfig typos 2007-05-09 08:58:15 +02:00
inotify.txt [PATCH] inotify (5/5): update kernel documentation 2006-06-20 05:25:19 -04:00
isofs.txt It's UTF-8 2006-03-22 00:13:35 +01:00
jfs.txt JFS: document uid, gid, and umask mount options in jfs.txt 2007-03-09 10:27:31 -06:00
Locking Fix misspellings of "system", "controller", "interrupt" and "necessary". 2007-10-19 23:10:43 +02:00
locks.txt Documentation: move locks.txt in filesystems/ 2007-10-09 18:32:45 -04:00
mandatory-locking.txt locks: add warning about mandatory locking races 2007-10-09 18:32:45 -04:00
ncpfs.txt
ntfs.txt NTFS: Fix a mount time deadlock. 2007-10-12 09:16:30 -07:00
ocfs2.txt [PATCH 2/2] ocfs2: cluster aware flock() 2008-01-25 15:05:43 -08:00
porting Documentation: Fix up docs still talking about i_sem 2007-05-24 10:16:17 -07:00
proc.txt [IPV4] route cache: Introduce rt_genid for smooth cache invalidation 2008-01-31 19:28:27 -08:00
quota.txt quota: send messages via netlink 2007-10-17 08:42:56 -07:00
ramfs-rootfs-initramfs.txt docs: ramdisk/initrd/initramfs corrections 2007-10-17 08:42:56 -07:00
relay.txt misc doc and kconfig typos 2007-05-09 08:58:15 +02:00
romfs.txt
smbfs.txt
spufs.txt Fix typos in /Documentation : 'U-Z' 2006-11-30 04:58:40 +01:00
sysfs-pci.txt Fix typos concerning hierarchy 2007-02-17 19:23:03 +01:00
sysfs.txt docs/sysfs: add missing word to sysfs attribute explanation 2007-10-20 02:39:43 +02:00
sysv-fs.txt [PATCH] fs/sysv/: doc cleanup 2006-12-07 08:39:44 -08:00
tmpfs.txt mount -t tmpfs -o mpol=: check nodes online 2007-06-08 17:23:32 -07:00
udf.txt [PATCH] Update udf documentation to reflect current state of read/write support 2006-11-16 11:43:38 -08:00
ufs.txt [PATCH] ufs2 write: mount as rw 2007-02-12 09:48:40 -08:00
vfat.txt fat: don't use free_clusters for fat32 2007-05-08 11:15:13 -07:00
vfs.txt Documentation/filesystems/vfs.txt: typo fix 2007-10-20 02:35:36 +02:00
xfs.txt [XFS] Update XFS documentation. 2005-11-03 13:46:43 +11:00
xip.txt misc doc and kconfig typos 2007-05-09 08:58:15 +02:00