• Eric Dumazet's avatar
    [PATCH] IPV4 : Move ip route cache flush (secret_rebuild) from softirq to workqueue · beb659bd
    Eric Dumazet authored
    Every 600 seconds (ip_rt_secret_interval), a softirq flush of the
    whole ip route cache is triggered. On loaded machines, this can starve
    softirq for many seconds and can eventually crash.
    
    This patch moves this flush to a workqueue context, using the worker
    we intoduced in commit 39c90ece (IPV4:
    Convert rt_check_expire() from softirq processing to workqueue.)
    
    Also, immediate flushes (echo 0 >/proc/sys/net/ipv4/route/flush) are
    using rt_do_flush() helper function, wich take attention to
    rescheduling.
    
    Next step will be to handle delayed flushes
    ("echo -1 >/proc/sys/net/ipv4/route/flush" or "ip route flush cache")
    Signed-off-by: default avatarEric Dumazet <dada1@cosmosbay.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    beb659bd
route.c 74.1 KB