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=-2.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS,USER_AGENT_GIT 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 9E698C10F11 for ; Mon, 15 Apr 2019 09:15:17 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6CA2D20656 for ; Mon, 15 Apr 2019 09:15:17 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="knShO30C" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726537AbfDOJPQ (ORCPT ); Mon, 15 Apr 2019 05:15:16 -0400 Received: from mail-pl1-f181.google.com ([209.85.214.181]:38596 "EHLO mail-pl1-f181.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725796AbfDOJPQ (ORCPT ); Mon, 15 Apr 2019 05:15:16 -0400 Received: by mail-pl1-f181.google.com with SMTP id f36so8260613plb.5; Mon, 15 Apr 2019 02:15:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=00T1GnJeghiMFi3GlOxkp3+KrHPr9+dAeMxvAmq2pd4=; b=knShO30CTuOdqxViqqqhXj6Z3GyTKv4Fpxk6/f3A8LBIlzTpYdj5aAD3GbQ1sGREdd EbXpaGdUgWSBDAEBgoxqKizEcyfUNVN165spjvHMdFBn1KWgph2N+0BYM/TSa7yt3B6S 1R2WkiYzqEGGdous+L4a/H/x4h+YjDMPr5mNQrrEIivtjU6zDkEs6j9UVns76/aAXlVm /WyJPpgcmg7rd08bv18tvwmLqfFXstjZJ34+7AiX27g9ULZirzQ63P2jAgqTOM5TB6+/ +KToBxZ5wjR4v6R05Wl44cxq6QE1fmi/VrJVv3GWPTT5qg6sP3WVkhwiWn3l4M9goNld CMxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=00T1GnJeghiMFi3GlOxkp3+KrHPr9+dAeMxvAmq2pd4=; b=g4ws3fP3iRE+Xfi6WaLjEO4gUinWyAFLZENlE6aK6UylxaZ14JgGc3SJhDc3hycbNh 9l+GPpZG7rHfnSEOyqDSSU+wrxyycsXlorDCR15KGC6ylYqtzXYMdU7N1AbounvweWY1 rjckWFPp7XVI9lBEaZIRTnXBsJD6am70IrjFTEdWqt0tMVVXELZIPmsopOIM5ITB4DP6 3CbkumbDeeoMzWz2QcauCm+/HwQLpl63U8DxSNvXS10vaFN1gTgdmWry6k8Gkm+EMpnk PxpiAwy9pECRnCdS3pbdPCEbp3kjN5ZtZoGUJCXdE6cioy91KaBtTCqHJkmdJLOoMvkb 4NRQ== X-Gm-Message-State: APjAAAUW1U4WsewLDphAvgbHmaIVul8MzVqg3ywsergkKMtS6ani3D5A 54dz5NlahHqbaNjmBlKxRj0TtqAm X-Google-Smtp-Source: APXvYqwygB49OpJ+tyJJXHn9Ms+F/JGY/V2k5A3Sq7xbWxi9QdbUVLfQuPwiu9F/jc+WYsIyYcKpmg== X-Received: by 2002:a17:902:ba8b:: with SMTP id k11mr75616804pls.40.1555319715598; Mon, 15 Apr 2019 02:15:15 -0700 (PDT) Received: from localhost ([209.132.188.80]) by smtp.gmail.com with ESMTPSA id q74sm82594105pfc.111.2019.04.15.02.15.14 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 15 Apr 2019 02:15:14 -0700 (PDT) From: Xin Long To: network dev , linux-sctp@vger.kernel.org Cc: Marcelo Ricardo Leitner , Neil Horman , davem@davemloft.net, Matteo Croce , Vladis Dronov Subject: [PATCHv2 net-next 0/2] sctp: fully support memory accounting Date: Mon, 15 Apr 2019 17:15:05 +0800 Message-Id: X-Mailer: git-send-email 2.1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org sctp memory accounting is added in this patchset by using these kernel APIs on send side: - sk_mem_charge() - sk_mem_uncharge() - sk_wmem_schedule() - sk_under_memory_pressure() - sk_mem_reclaim() and these on receive side: - sk_mem_charge() - sk_mem_uncharge() - sk_rmem_schedule() - sk_under_memory_pressure() - sk_mem_reclaim() With sctp memory accounting, we can limit the memory allocation by either sysctl: # sysctl -w net.sctp.sctp_mem="10 20 50" or cgroup: # echo $((8<<14)) > \ /sys/fs/cgroup/memory/sctp_mem/memory.kmem.tcp.limit_in_bytes When the socket is under memory pressure, the send side will block and wait, while the receive side will renege or drop. v1->v2: - add the missing Reported/Tested/Acked/-bys. Xin Long (2): sctp: implement memory accounting on tx path sctp: implement memory accounting on rx path include/net/sctp/sctp.h | 2 +- net/sctp/sm_statefuns.c | 6 ++++-- net/sctp/socket.c | 10 ++++++++-- net/sctp/ulpevent.c | 19 ++++++++----------- net/sctp/ulpqueue.c | 3 ++- 5 files changed, 23 insertions(+), 17 deletions(-) -- 2.1.0