From: Florian Westphal <fw at strlen.de>
To: mptcp at lists.01.org
Subject: Re: [MPTCP] [PATCH RFC 6/6] mptcp: use __tcp_poll instead of tcp_poll
Date: Tue, 17 Sep 2019 18:42:24 +0200 [thread overview]
Message-ID: <20190917164224.GG6961@breakpoint.cc> (raw)
In-Reply-To: 23f0c3793e3aa80f090b0660c9fd8c8bef9b01b7.camel@redhat.com
[-- Attachment #1: Type: text/plain, Size: 1247 bytes --]
Paolo Abeni <pabeni(a)redhat.com> wrote:
> > tcp_sock = mptcp_subflow_tcp_socket(subflow);
> > - ret |= tcp_poll(file, tcp_sock, wait);
> > + ret |= __tcp_poll(tcp_sock->sk);
> > }
> > release_sock(sk);
>
> This allows mptcp_poll working even without a 'struct socket'. we still
> relies on such struct presence for:
Thats what I though as well, but tcp_poll assumes sk->sk_socket points
to the userspace-facing socket structure.
> kernel_accept
> kernel_sock_shutdown
> kernel_setsockopt
> kernel_getsockopt
> kernel_bind
> kernel_connect
>
> I'm wondering if we should try to get rid completely of any depenency
> on 'struct socket'? That will fix the current issue with MP_JOIN, will
> reduce the memory usage and likely will improve accept time.
It will require careful audit of the stack, afaics Tcp assumes that for
anythig incoming tcp sk might have been detached from usersapce already
(i.e., application called close()). But for anything coming from
syscalls that doesn't seem to be the case.
I started to hack up an MP_JOIN patch that uses a per-sk workqueue
to defer incoming joins so that a socket can be allocated for it.
I don't like it, but it seems easier to go with that route.
next reply other threads:[~2019-09-17 16:42 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-17 16:42 Florian Westphal [this message]
-- strict thread matches above, loose matches on Subject: below --
2019-09-17 16:38 [MPTCP] [PATCH RFC 6/6] mptcp: use __tcp_poll instead of tcp_poll Paolo Abeni
2019-09-09 15:53 Florian Westphal
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=20190917164224.GG6961@breakpoint.cc \
--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.