From: Vlad Yasevich <vyasevich@gmail.com>
To: Sergei Shtylyov <sergei.shtylyov@cogentembedded.com>,
netdev@vger.kernel.org
Cc: herbert@gondor.apana.org.au, hannes@stressinduktion.org,
Vladislav Yasevich <vyasevic@redhat.com>
Subject: Re: [PATCH net-next 5/6] udpv6: Add lockless sendmsg() support
Date: Mon, 02 Feb 2015 15:42:16 -0500 [thread overview]
Message-ID: <54CFE128.8000605@gmail.com> (raw)
In-Reply-To: <54CD3FF4.1030007@cogentembedded.com>
On 01/31/2015 03:49 PM, Sergei Shtylyov wrote:
> Hello.
>
> On 1/31/2015 6:40 PM, Vladislav Yasevich wrote:
>
>> This commit adds the same functionaliy to IPv6 that
>> commit 903ab86d195cca295379699299c5fc10beba31c7
>> Author: Herbert Xu <herbert@gondor.apana.org.au>
>> Date: Tue Mar 1 02:36:48 2011 +0000
>
>> udp: Add lockless transmit path
>
>> added to IPv4.
>
>> UDP transmit path can now run without a socket lock,
>> thus allowing multiple threads to send to a single socket
>> more efficiently.
>> This is only used when corking/MSG_MORE is not used.
>
>> Signed-off-by: Vladislav Yasevich <vyasevic@redhat.com>
>> ---
>> net/ipv6/udp.c | 24 ++++++++++++++++++++----
>> 1 file changed, 20 insertions(+), 4 deletions(-)
>
>> diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
>> index 67a3d70..d048d46 100644
>> --- a/net/ipv6/udp.c
>> +++ b/net/ipv6/udp.c
> [...]
>> @@ -1307,6 +1308,20 @@ do_udp_sendmsg:
>> goto do_confirm;
>> back_from_confirm:
>>
>> + /* Lockless fast path for the non-corking case */
>> + if (!corkreq) {
>> + struct sk_buff *skb;
>>
>> + skb = ip6_make_skb(sk, getfrag, msg, ulen,
>> + sizeof(struct udphdr), hlimit, tclass, opt,
>> + &fl6, (struct rt6_info *)dst,
>> + msg->msg_flags, dontfrag);
>> + err = PTR_ERR(skb);
>
> You should use PTR_ERR_OR_ZERO() here, I think.
>
That particular code was stolen from ipv4/udp.c. You are
right, we can use PTR_ERR_OR_ZERO() and simplify the following
check as well.
Will fix.
Thanks
-vlad
> [...]
>
> WBR, Sergei
>
next prev parent reply other threads:[~2015-02-02 20:42 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-31 15:40 [PATCH net-next 0/6] ipv6: Add lockless UDP send path Vladislav Yasevich
2015-01-31 15:40 ` [PATCH net-next 1/6] ipv6: pull cork initialization into its own function Vladislav Yasevich
2015-01-31 15:40 ` [PATCH net-next 2/6] ipv6: Append sending data to arbitrary queue Vladislav Yasevich
2015-01-31 15:40 ` [PATCH net-next 3/6] ipv6: introduce ipv6_make_skb Vladislav Yasevich
2015-01-31 15:40 ` [PATCH net-next 4/6] ipv6: Introduce udpv6_send_skb() Vladislav Yasevich
2015-01-31 15:40 ` [PATCH net-next 5/6] udpv6: Add lockless sendmsg() support Vladislav Yasevich
2015-01-31 20:49 ` Sergei Shtylyov
2015-02-02 20:42 ` Vlad Yasevich [this message]
2015-01-31 15:40 ` [PATCH net-next 6/6] ipv6: Allow for partial checksums on non-ufo packets Vladislav Yasevich
2015-02-10 14:07 ` Sabrina Dubroca
2015-02-10 15:34 ` Vlad Yasevich
2015-02-10 15:55 ` [PATCH] ipv6: Partial checksum only UDP packets Vladislav Yasevich
2015-02-10 16:23 ` Sabrina Dubroca
2015-02-03 3:28 ` [PATCH net-next 0/6] ipv6: Add lockless UDP send path David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=54CFE128.8000605@gmail.com \
--to=vyasevich@gmail.com \
--cc=hannes@stressinduktion.org \
--cc=herbert@gondor.apana.org.au \
--cc=netdev@vger.kernel.org \
--cc=sergei.shtylyov@cogentembedded.com \
--cc=vyasevic@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.