• Paolo Abeni's avatar
    mptcp: implement wmem reservation · e93da928
    Paolo Abeni authored
    This leverages the previous commit to reserve the wmem
    required for the sendmsg() operation when the msk socket
    lock is first acquired.
    Some heuristics are used to get a reasonable [over] estimation of
    the whole memory required. If we can't forward alloc such amount
    fallback to a reasonable small chunk, otherwise enter the wait
    for memory path.
    
    When sendmsg() needs more memory it looks at wmem_reserved
    first and if that is exhausted, move more space from
    sk_forward_alloc.
    
    The reserved memory is not persistent and is released at the
    next socket unlock via the release_cb().
    
    Overall this will simplify the next patch.
    Acked-by: default avatarFlorian Westphal <fw@strlen.de>
    Signed-off-by: default avatarPaolo Abeni <pabeni@redhat.com>
    Reviewed-by: default avatarMat Martineau <mathew.j.martineau@linux.intel.com>
    Signed-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    e93da928
protocol.c 77.1 KB