kernel-ark/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
9p.txt
00-INDEX
adfs.txt
affs.txt
afs.txt
automount-support.txt
befs.txt
bfs.txt
cifs.txt
coda.txt
cramfs.txt
dentry-locking.txt
directory-locking
dlmfs.txt
ecryptfs.txt
Exporting
ext2.txt
ext3.txt
ext4.txt
files.txt
fuse.txt
gfs2.txt
hfs.txt
hfsplus.txt
hpfs.txt
inotify.txt
isofs.txt
jfs.txt
Locking
locks.txt
mandatory-locking.txt
ncpfs.txt
ntfs.txt
ocfs2.txt
porting
proc.txt [IPV4] route cache: Introduce rt_genid for smooth cache invalidation 2008-01-31 19:28:27 -08:00
quota.txt
ramfs-rootfs-initramfs.txt
relay.txt
romfs.txt
smbfs.txt
spufs.txt
sysfs-pci.txt
sysfs.txt
sysv-fs.txt
tmpfs.txt
udf.txt
ufs.txt
vfat.txt
vfs.txt
xfs.txt
xip.txt