mptcp: Fix Bug #45: Split segment when probing for window opening

There is a bug, when the window closes down to sub-MTU size and no
outstanding data is sent.

In this case, the probe-timer does the window probing. But, as the
subflow's window is too small for a MSS, the check in
mptcp_is_available() will prevent selecting a subflow for transmission.

Additionally, in mptcp_write_wakeup we need to split the segment based
on the minimum available window (meta or sub).

This fixes the bug https://github.com/multipath-tcp/mptcp/issues/45

Fixes: 916fcc1585a10 (Fix: Check send-window at the subflow-level)
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
mptcp: Change ack-sock selection

Up to now, we selected the ack sock by tracking the data sequence. Our
goal was to actually use the subflow who was the last time active.

Now, we have a very good estimation of "last active", given by
keepalive_time_elapsed(). So, we should rather use this.

This patch uses keepalive_time_elapsed() to select the ack-sock among
those who were most recently active. Among those within the time of a
meta-RTO (thus reasonably recent), we take the one with the lowest RTT.

If there is no such subflow that is has been so recently active, we just
take the most recent active one.

Depends-on: 0ee43475b2cb0 (Cleanup: Create separate function for subflow-ack-selection)
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
mptcp: mptcp_inherit_sk should take into account cgroups

180d8cd942ce (foundations of per-cgroup memory pressure controlling.)
introduced cgroup memory-control for sockets. It modifies the cloning of
sockets so that the increase of the per-cpu counter takes this also on
a per-cgroup level.

We need to do the same in mptcp_inherit_sk.

Fixes: 180d8cd942ce (foundations of per-cgroup memory pressure controlling.)
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>
mptcp: Optimize socket timestamping

Let's just do the same as in 08e29af3a9096 (net: optimize socket
timestamping)

Depends-on: 08e29af3a9096 (net: optimize socket timestamping)
Signed-off-by: Christoph Paasch <christoph.paasch@uclouvain.be>