summaryrefslogtreecommitdiff
path: root/net/core
diff options
context:
space:
mode:
authorYOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org>2010-03-20 16:11:12 -0700
committerDavid S. Miller <davem@davemloft.net>2010-03-20 16:11:12 -0700
commitb2db756449f63f98049587f7ede4a8e85e0c79b1 (patch)
tree0d9087ccfcc3e7faa1e00fbf340f21d204f3ea15 /net/core
parent88949cf484bfc399e1d662b5dda6892aaca21aae (diff)
downloadlinux-3.10-b2db756449f63f98049587f7ede4a8e85e0c79b1.tar.gz
linux-3.10-b2db756449f63f98049587f7ede4a8e85e0c79b1.tar.bz2
linux-3.10-b2db756449f63f98049587f7ede4a8e85e0c79b1.zip
ipv6: Reduce timer events for addrconf_verify().
This patch reduces timer events while keeping accuracy by rounding our timer and/or batching several address validations in addrconf_verify(). addrconf_verify() is called at earliest timeout among interface addresses' timeouts, but at maximum ADDR_CHECK_FREQUENCY (120 secs). In most cases, all of timeouts of interface addresses are long enough (e.g. several hours or days vs 2 minutes), this timer is usually called every ADDR_CHECK_FREQUENCY, and it is okay to be lazy. (Note this timer could be eliminated if all code paths which modifies variables related to timeouts call us manually, but it is another story.) However, in other least but important cases, we try keeping accuracy. When the real interface address timeout is coming, and the timeout is just before the rounded timeout, we accept some error. When a timeout has been reached, we also try batching other several events in very near future. Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/core')
0 files changed, 0 insertions, 0 deletions