From: Julian Anastasov <ja@xxxxxx>
Date: Wed, 6 Mar 2013 10:42:16 +0200
> Currently when forwarding requests to real servers
> we use dst_lock and atomic operations when cloning the
> dst_cache value. As the dst_cache value does not change
> most of the time it is better to use RCU and to lock
> dst_lock only when we need to replace the obsoleted dst.
> For this to work we keep dst_cache in new structure protected
> by RCU. For packets to remote real servers we will use noref
> version of dst_cache, it will be valid while we are in RCU
> read-side critical section because now dst_release for replaced
> dsts will be invoked after the grace period. NAT-ed packets
> via loopback that are not sent but are passed to local stack
> with NF_ACCEPT need a dst clone (skb_dst_force).
>
> Signed-off-by: Julian Anastasov <ja@xxxxxx>
It think it's much cleaner to have the callers of route lookups do
skb_set_dst_noref().
Then you don't need any new interfaces, and you therefore don't need
to expose bits of the noref implementation and semantics at all.
--
To unsubscribe from this list: send the line "unsubscribe lvs-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
|