From: cpaasch at apple.com
To: mptcp at lists.01.org
Subject: Re: [MPTCP] [PATCH 1/2] skbuff: Add shared control buffer
Date: Sun, 12 Nov 2017 22:47:05 -0800 [thread overview]
Message-ID: <20171113064705.GC54399@Chimay.local> (raw)
In-Reply-To: alpine.OSX.2.21.1711090813060.34898@nagarwal-mobl2.amr.corp.intel.com
[-- Attachment #1: Type: text/plain, Size: 3610 bytes --]
Hello Mat,
On 09/11/17 - 08:26:23, Mat Martineau wrote:
>
> Hi everyone,
>
> On Thu, 9 Nov 2017, cpaasch(a)apple.com wrote:
>
> > On 09/11/17 - 04:32:54, Boris Pismenny wrote:
> > > +Ilya and Liran
> > >
> > > Hi,
> > >
> > > > -----Original Message-----
> > > > From: cpaasch(a)apple.com [mailto:cpaasch(a)apple.com]
> > > > Sent: Thursday, November 09, 2017 13:13
> > > > To: Mat Martineau <mathew.j.martineau(a)linux.intel.com>; Boris Pismenny
> > > > <borisp(a)mellanox.com>
> > > > Cc: mptcp(a)lists.01.org
> > > > Subject: Re: [MPTCP] [PATCH 1/2] skbuff: Add shared control buffer
> > > >
> > > > +Boris
> > > >
> > > > On 20/10/17 - 16:02:31, Mat Martineau wrote:
> > > > > The sk_buff control buffer is of limited size, and cannot be enlarged
> > > > > without significant impact on systemwide memory use. However, additional
> > > > > per-packet state is needed for some protocols, like Multipath TCP.
> > > > >
> > > > > An optional shared control buffer placed after the normal struct
> > > > > skb_shared_info can accomodate the necessary state without imposing
> > > > > extra memory usage or code changes on normal struct sk_buff
> > > > > users. __alloc_skb will now place a skb_shared_info_ext structure at
> > > > > skb->end when given the SKB_ALLOC_SHINFO_EXT flag. Most users of struct
> > > > > sk_buff continue to use the skb_shinfo() macro to access shared
> > > > > info. skb_shinfo(skb)->is_ext is set if the extended structure is
> > > > > available, and cleared if it is not.
> > > > >
> > > > > pskb_expand_head will preserve the shared control buffer if it is present.
> > > > >
> > > > > Signed-off-by: Mat Martineau <mathew.j.martineau(a)linux.intel.com>
> > > > > ---
> > > > > include/linux/skbuff.h | 24 +++++++++++++++++++++-
> > > > > net/core/skbuff.c | 56 ++++++++++++++++++++++++++++++++++++++-------
> > > > -----
> > > > > 2 files changed, 66 insertions(+), 14 deletions(-)
> > > >
> > > > Boris, below is the change I mentioned to you.
> > > >
> > > > It allows to allocate 48 additional bytes on-demand after skb_shared_info.
> > > > As it is on-demand, it won't increase the size of the skb for other users.
> > > >
> > > > For example, TLS could start using it when it creates the skb that it
> > > > pushes down to the TCP-stack. That way you don't need to handle the
> > > > tls_record lists.
> > > >
> > >
> > > One small problem is that TLS doesn't create SKBs. As a ULP it calls the transport send
> > > Functions (do_tcp_sendpages for TLS). This function receives a page and not a SKB.
> >
> > yes, that's a good point. Mat has another patch as part of this series,
> > that adds an skb-arg to sendpages
> > (https://lists.01.org/pipermail/mptcp/2017-October/000130.html)
> >
> > That should do the job for you.
>
> After working with the extended control block some more, I found that the
> arg to sendpages (at least as I implemented it in that patch) doesn't work
> out because skb_entail() isn't called. I'm experimenting with allocating and
> entailing an empty skb before calling do_tcp_sendpages(), which will then
> find the extended skb on the write queue and append to it. It's involving a
> lot of code to handle the memory waits and error conditions, though - it's
> probably cleaner to plumb some parameters in to do_tcp_sendpages() and
> sk_stream_alloc_skb() to request the extended skb.
we then also need a way for the ULP to pass the info down to
do_tcp_sendpages that should be written in the extended region of the skb.
Christoph
next reply other threads:[~2017-11-13 6:47 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-11-13 6:47 cpaasch [this message]
-- strict thread matches above, loose matches on Subject: below --
2017-11-10 0:31 [MPTCP] [PATCH 1/2] skbuff: Add shared control buffer Mat Martineau
2017-11-09 16:26 Mat Martineau
2017-11-09 7:56 cpaasch
2017-11-09 7:51 cpaasch
2017-11-09 4:48 cpaasch
2017-11-09 4:13 Christoph Paasch
2017-11-08 21:02 Christoph Paasch
2017-11-08 20:41 Rao Shoaib
2017-11-08 0:25 Christoph Paasch
2017-11-07 23:35 Rao Shoaib
2017-11-07 23:23 Rao Shoaib
2017-11-07 21:15 Christoph Paasch
2017-11-07 17:13 Rao Shoaib
2017-11-07 4:09 Christoph Paasch
2017-11-07 3:16 Rao Shoaib
2017-11-07 2:46 Rao Shoaib
2017-11-06 22:24 Christoph Paasch
2017-11-06 2:45 Rao Shoaib
2017-11-03 5:10 Christoph Paasch
2017-11-02 21:41 Mat Martineau
2017-10-31 21:58 Mat Martineau
2017-10-31 4:17 Christoph Paasch
2017-10-30 22:44 Mat Martineau
2017-10-30 4:16 Christoph Paasch
2017-10-27 19:57 Christoph Paasch
2017-10-27 18:19 Mat Martineau
2017-10-26 23:20 Rao Shoaib
2017-10-26 22:26 Rao Shoaib
2017-10-23 23:10 Mat Martineau
2017-10-23 22:51 Mat Martineau
2017-10-23 20:13 Rao Shoaib
2017-10-23 20:10 Christoph Paasch
2017-10-23 19:49 Rao Shoaib
2017-10-23 16:37 Christoph Paasch
2017-10-20 23:02 Mat Martineau
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=20171113064705.GC54399@Chimay.local \
--to=unknown@example.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.