From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.3 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_PASS,USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id A0EB5C4360F for ; Tue, 2 Apr 2019 11:48:15 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6C74E208E4 for ; Tue, 2 Apr 2019 11:48:15 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="GucojseQ" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730780AbfDBLsO (ORCPT ); Tue, 2 Apr 2019 07:48:14 -0400 Received: from mail-qk1-f193.google.com ([209.85.222.193]:38164 "EHLO mail-qk1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726903AbfDBLsN (ORCPT ); Tue, 2 Apr 2019 07:48:13 -0400 Received: by mail-qk1-f193.google.com with SMTP id g1so7668711qki.5; Tue, 02 Apr 2019 04:48:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to:user-agent; bh=usMjZlAYEZs0nH/0/UGiQ2jELAoOOFeKmcydXnOkd6I=; b=GucojseQGAAFsHu2BExLqmnebqRu48xXiQKdYVznQ/qlf2UqZA5zda9d6rpjsViTY/ PVbddkP2cOMARUdwzin4s1X3Q8tyLH8Tyz2mCyHQY8nqUFXgJRV8CCRY+VDNfU/sJoUy Bj6cG657QSYec1w9BCaJAvR29yDpMAf8B2yugsh+0E/PryvgYsRGdKG9NBSXGQ7DoSZd Ai+983llPxNLArxU4s0ENFn6guIBu4/VIqLEvuNne43lCgMhRVZtZjXY3xeUenCvz1R4 rOlfP9/5E9yBzTlVvC1MWMeftiNSLg4Rj0Lr0K32yUA8rIUMmxWjCtWNPE4b+YJLLhpE 4rBg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to:user-agent; bh=usMjZlAYEZs0nH/0/UGiQ2jELAoOOFeKmcydXnOkd6I=; b=BW0vYeaVBbt/D8MIDX2uL/S7crpejL8o+j3RPotGnWLVlSGy0U5rtk80tphnlx1rpY iGV9w8IGdgGtU+8ZhNJb2whcLMMcuogRZZycuA1YrCIrVA0SZt3V5XMSph3dR9sEF5KI sXvjNT+d6Ta2vJU/raJvagKrJQMsBAjwyTHlIRbDNJ3XmSwJOhCYTLRGfDWOlf4Bnz2l P6/KoGH/3X/7sJy9/ffpX92azx3BhqdG6bU0uB3NR8eoUxYmzdpQFdDoV08czGx4KX3X mD/loTdyoSqFoWUJfvW23w2TeWnfftDpemqEaLmu72r+lzskNZvEhuQHUaXq3fqMoff/ m7lQ== X-Gm-Message-State: APjAAAVkpnKaJkcwx4BS9kEN7wV3rX8zC/wylXno2QBnmefk1zwBVQV0 BZOTkwSlrmcYD0s+bXA9mrkFVN1qWAaZCA== X-Google-Smtp-Source: APXvYqzhGDx4X2a7qr+4JILpAhB5jBVAlin0A24Ttl76U5wNbpVjM+SoKYf5DOyOBHKPo5ThmNCwMg== X-Received: by 2002:ae9:e70d:: with SMTP id m13mr40089909qka.285.1554205692741; Tue, 02 Apr 2019 04:48:12 -0700 (PDT) Received: from localhost.localdomain ([177.220.172.146]) by smtp.gmail.com with ESMTPSA id x33sm7720542qth.7.2019.04.02.04.48.11 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Tue, 02 Apr 2019 04:48:12 -0700 (PDT) Received: by localhost.localdomain (Postfix, from userid 1000) id 4FB3E180C43; Tue, 2 Apr 2019 08:48:09 -0300 (-03) Date: Tue, 2 Apr 2019 08:48:09 -0300 From: Marcelo Ricardo Leitner To: Xin Long Cc: network dev , linux-sctp@vger.kernel.org, Neil Horman , davem@davemloft.net, Matteo Croce , Vladis Dronov Subject: Re: [PATCH net-next 1/2] sctp: implement memory accounting on tx path Message-ID: <20190402114809.GP16876@localhost.localdomain> References: <57b7c29e160acf1a7e5f86ae8549b23ba8946c4b.1554022192.git.lucien.xin@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <57b7c29e160acf1a7e5f86ae8549b23ba8946c4b.1554022192.git.lucien.xin@gmail.com> User-Agent: Mutt/1.11.3 (2019-02-01) Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Sun, Mar 31, 2019 at 04:53:46PM +0800, Xin Long wrote: > Now when sending packets, sk_mem_charge() and sk_mem_uncharge() have been > used to set sk_forward_alloc. We just need to call sk_wmem_schedule() to > check if the allocated should be raised, and call sk_mem_reclaim() to > check if the allocated should be reduced when it's under memory pressure. > > If sk_wmem_schedule() returns false, which means no memory is allowed to > allocate, it will block and wait for memory to become available. > > Note different from tcp, sctp wait_for_buf happens before allocating any > skb, so memory accounting check is done with the whole msg_len before it > too. > > Signed-off-by: Xin Long Acked-by: Marcelo Ricardo Leitner > --- > net/sctp/socket.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/net/sctp/socket.c b/net/sctp/socket.c > index 6140471..06c6f4a 100644 > --- a/net/sctp/socket.c > +++ b/net/sctp/socket.c > @@ -1913,7 +1913,10 @@ static int sctp_sendmsg_to_asoc(struct sctp_association *asoc, > if (sctp_wspace(asoc) < (int)msg_len) > sctp_prsctp_prune(asoc, sinfo, msg_len - sctp_wspace(asoc)); > > - if (sctp_wspace(asoc) <= 0) { > + if (sk_under_memory_pressure(sk)) > + sk_mem_reclaim(sk); > + > + if (sctp_wspace(asoc) <= 0 || !sk_wmem_schedule(sk, msg_len)) { > timeo = sock_sndtimeo(sk, msg->msg_flags & MSG_DONTWAIT); > err = sctp_wait_for_sndbuf(asoc, &timeo, msg_len); > if (err) > @@ -8891,7 +8894,10 @@ static int sctp_wait_for_sndbuf(struct sctp_association *asoc, long *timeo_p, > goto do_error; > if (signal_pending(current)) > goto do_interrupted; > - if ((int)msg_len <= sctp_wspace(asoc)) > + if (sk_under_memory_pressure(sk)) > + sk_mem_reclaim(sk); > + if ((int)msg_len <= sctp_wspace(asoc) && > + sk_wmem_schedule(sk, msg_len)) > break; > > /* Let another process have a go. Since we are going > -- > 2.1.0 >