mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
net: ipv4 only populate IP_PKTINFO when needed
The since the removal of the routing cache computing fib_compute_spec_dst() does a fib_table lookup for each UDP multicast packet received. This has introduced a performance regression for some UDP workloads. This change skips populating the packet info for sockets that do not have IP_PKTINFO set. Benchmark results from a netperf UDP_RR test: Before 89789.68 transactions/s After 90587.62 transactions/s Benchmark results from a fio 1 byte UDP multicast pingpong test (Multicast one way unicast response): Before 12.63us RTT After 12.48us RTT Signed-off-by: Shawn Bohrer <sbohrer@rgmadvisors.com> Acked-by: Eric Dumazet <edumazet@google.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
421b3885bf
commit
fbf8866d65
4 changed files with 6 additions and 5 deletions
|
@ -459,7 +459,7 @@ int ip_options_rcv_srr(struct sk_buff *skb);
|
|||
* Functions provided by ip_sockglue.c
|
||||
*/
|
||||
|
||||
void ipv4_pktinfo_prepare(struct sk_buff *skb);
|
||||
void ipv4_pktinfo_prepare(const struct sock *sk, struct sk_buff *skb);
|
||||
void ip_cmsg_recv(struct msghdr *msg, struct sk_buff *skb);
|
||||
int ip_cmsg_send(struct net *net, struct msghdr *msg, struct ipcm_cookie *ipc);
|
||||
int ip_setsockopt(struct sock *sk, int level, int optname, char __user *optval,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue