mptcp: add subflow write space signalling and mptcp_poll

Add new SEND_SPACE flag to indicate that a subflow has enough space to
accept more data for transmission.

It gets cleared at the end of mptcp_sendmsg() in case ssk has run
below the free watermark.

It is (re-set) from the wspace callback.

This allows us to use msk->flags to determine the poll mask.

Co-developed-by: Peter Krystad <peter.krystad@linux.intel.com>
Signed-off-by: Peter Krystad <peter.krystad@linux.intel.com>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Christoph Paasch <cpaasch@apple.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Цей коміт міститься в:
Florian Westphal
2020-01-21 16:56:25 -08:00
зафіксовано David S. Miller
джерело 648ef4b886
коміт 1891c4a076
3 змінених файлів з 57 додано та 0 видалено

Переглянути файл

@@ -529,6 +529,9 @@ static void subflow_write_space(struct sock *sk)
sk_stream_write_space(sk);
if (parent && sk_stream_is_writeable(sk)) {
set_bit(MPTCP_SEND_SPACE, &mptcp_sk(parent)->flags);
smp_mb__after_atomic();
/* set SEND_SPACE before sk_stream_write_space clears NOSPACE */
sk_stream_write_space(parent);
}
}