From: David Miller <davem@davemloft.net>
To: marcelo.leitner@gmail.com
Cc: nhorman@tuxdriver.com, netdev@vger.kernel.org,
vyasevich@gmail.com, linux-sctp@vger.kernel.org,
David.Laight@ACULAB.COM, jkbs@redhat.com
Subject: Re: [PATCH v3 0/2] sctp: delay calls to sk_data_ready() as much as possible
Date: Thu, 14 Apr 2016 18:59:16 +0000 [thread overview]
Message-ID: <20160414.145916.2286519059284215039.davem@davemloft.net> (raw)
In-Reply-To: <570FCCC1.6090504@gmail.com>
From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Date: Thu, 14 Apr 2016 14:00:49 -0300
> Em 14-04-2016 10:03, Neil Horman escreveu:
>> On Wed, Apr 13, 2016 at 11:05:32PM -0400, David Miller wrote:
>>> From: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
>>> Date: Fri, 8 Apr 2016 16:41:26 -0300
>>>
>>>> 1st patch is a preparation for the 2nd. The idea is to not call
>>>> ->sk_data_ready() for every data chunk processed while processing
>>>> packets but only once before releasing the socket.
>>>>
>>>> v2: patchset re-checked, small changelog fixes
>>>> v3: on patch 2, make use of local vars to make it more readable
>>>
>>> Applied to net-next, but isn't this reduced overhead coming at the
>>> expense of latency? What if that lower latency is important to the
>>> application and/or consumer?
>> Thats a fair point, but I'd make the counter argument that, as it
>> currently
>> stands, any latency introduced (or removed), is an artifact of our
>> implementation rather than a designed feature of it. That is to say,
>> we make no
>> guarantees at the application level regarding how long it takes to
>> signal data
>> readines from the time we get data off the wire, so I would rather see
>> our
>> throughput raised if we can, as thats been sctp's more pressing
>> achilles heel.
>>
>>
>> Thats not to say I'd like to enable lower latency, but I'd rather have
>> this now,
>> and start pondering how to design that in. Perhaps we can convert the
>> pending
>> flag to a counter to count the number of events we enqueue, and call
>> sk_data_ready every time we reach a sysctl defined threshold.
>
> That and also that there is no chance of the application reading the
> first chunks before all current ToDo's are performed by either the bh
> or backlog handlers for that packet. Socket lock won't be cycled in
> between chunks so the application is going to wait all the processing
> one way or another.
But it takes time to signal the wakeup to the remote cpu the process
was running on, schedule out the current process on that cpu (if it
has in fact lost it's timeslice), and then finally look at the socket
queue.
Of course this is all assuming the process was sleeping in the first
place, either in recv or more likely poll.
I really think signalling early helps performance.
next prev parent reply other threads:[~2016-04-14 18:59 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-04-08 19:41 [PATCH v3 0/2] sctp: delay calls to sk_data_ready() as much as possible Marcelo Ricardo Leitner
2016-04-08 19:41 ` [PATCH v3 1/2] sctp: compress bit-wide flags to a bitfield on sctp_sock Marcelo Ricardo Leitner
2016-04-12 19:50 ` Neil Horman
2016-04-08 19:41 ` [PATCH v3 2/2] sctp: delay calls to sk_data_ready() as much as possible Marcelo Ricardo Leitner
2016-04-14 3:05 ` [PATCH v3 0/2] " David Miller
2016-04-14 13:03 ` Neil Horman
2016-04-14 17:00 ` Marcelo Ricardo Leitner
2016-04-14 18:59 ` David Miller [this message]
2016-04-14 19:33 ` marcelo.leitner
2016-04-14 20:03 ` Neil Horman
2016-04-14 20:19 ` marcelo.leitner
2016-04-28 20:46 ` marcelo.leitner
2016-04-29 13:36 ` Neil Horman
2016-04-29 13:47 ` marcelo.leitner
2016-04-29 16:10 ` Neil Horman
2016-04-29 16:28 ` marcelo.leitner
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=20160414.145916.2286519059284215039.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=David.Laight@ACULAB.COM \
--cc=jkbs@redhat.com \
--cc=linux-sctp@vger.kernel.org \
--cc=marcelo.leitner@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=nhorman@tuxdriver.com \
--cc=vyasevich@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).