06 May, 2011

9 commits


05 May, 2011

18 commits


04 May, 2011

9 commits


03 May, 2011

3 commits

  • Four years ago, Patrick made a change to hold rtnl mutex during netlink
    dump callbacks.

    I believe it was a wrong move. This slows down concurrent dumps, making
    good old /proc/net/ files faster than rtnetlink in some situations.

    This occurred to me because one "ip link show dev ..." was _very_ slow
    on a workload adding/removing network devices in background.

    All dump callbacks are able to use RCU locking now, so this patch does
    roughly a revert of commits :

    1c2d670f366 : [RTNETLINK]: Hold rtnl_mutex during netlink dump callbacks
    6313c1e0992 : [RTNETLINK]: Remove unnecessary locking in dump callbacks

    This let writers fight for rtnl mutex and readers going full speed.

    It also takes care of phonet : phonet_route_get() is now called from rcu
    read section. I renamed it to phonet_route_get_rcu()

    Signed-off-by: Eric Dumazet
    Cc: Patrick McHardy
    Cc: Remi Denis-Courmont
    Acked-by: Stephen Hemminger
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • David S. Miller
     
  • Slow path output route resolution always makes sure that
    ->{saddr,daddr} are set, and also if we trigger into IPSEC resolution
    we initialize them as well, because xfrm_lookup() expects them to be
    fully resolved.

    But if we hit the fast path and flowi4->flowi4_proto is zero, we won't
    do this initialization.

    Therefore, move the IPSEC path initialization to the route cache
    lookup fast path to make sure these are always set.

    Signed-off-by: David S. Miller

    David S. Miller
     

02 May, 2011

1 commit