Thread (10 messages) flat view 10 messages, 3 authors, 2018-05-22

Re: [PATCH net-next v3 1/3] ipv4: support sport, dport and ip_proto in RTM_GETROUTE

From: Roopa Prabhu <hidden>
Date: 2018-05-17 13:58:36

On Wed, May 16, 2018 at 7:36 PM, David Miller [off-list ref] wrote:
From: Roopa Prabhu <redacted>
Date: Wed, 16 May 2018 13:30:28 -0700
quoted
yes, but we hold rcu read lock before calling the reply function for
fib result.  I did consider allocating the skb before the read
lock..but then the refactoring (into a separate netlink reply func)
would seem unnecessary.

I am fine with pre-allocating and undoing the refactoring if that works better.
Hmmm... I also notice that with this change we end up doing the
rtnl_unicast() under the RCU lock which is unnecessary too.
that was unintentional, it seemed like the previous code did that too..
and you are right  it did not.
So yes, please pull the "out_skb" allocation before the
rcu_read_lock(), and push the rtnl_unicast() after the
rcu_read_unlock().
agreed, will do.
It really is a shame that sharing the ETH_P_IP skb between the route
route lookup and the netlink response doesn't work properly.
I did try a few things before giving up on the same skb...since it
also seemed like
keeping the netlink code separate would be a good thing for the future.
I was using RTM_GETROUTE at one point for route/fib lookup performance
measurements.  It never was great at that, but now that there is going
to be two SKB allocations instead of one it is going to be even less
useful for that kind of usage.
oh...did not realize this use of it. It certainly seems like we should
try to retain the
single skb in that case. let me see what i can do.

thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help