mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-22 14:41:27 +00:00
net: avoid a pair of dst_hold()/dst_release() in ip_append_data()
We can reduce pressure on dst entry refcount that slowdown UDP transmit path on SMP machines. This pressure is visible on RTP servers when delivering content to mediagateways, especially big ones, handling thousand of streams. Several cpus send UDP frames to the same destination, hence use the same dst entry. This patch makes ip_append_data() eventually steal the refcount its callers had to take on the dst entry. This doesnt avoid all refcounting, but still gives speedups on SMP, on UDP/RAW transmit path Signed-off-by: Eric Dumazet <dada1@cosmosbay.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
4db0acf3c0
commit
2e77d89b2f
5 changed files with 15 additions and 10 deletions
|
@ -110,7 +110,7 @@ extern int ip_append_data(struct sock *sk,
|
|||
int odd, struct sk_buff *skb),
|
||||
void *from, int len, int protolen,
|
||||
struct ipcm_cookie *ipc,
|
||||
struct rtable *rt,
|
||||
struct rtable **rt,
|
||||
unsigned int flags);
|
||||
extern int ip_generic_getfrag(void *from, char *to, int offset, int len, int odd, struct sk_buff *skb);
|
||||
extern ssize_t ip_append_page(struct sock *sk, struct page *page,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue