From patchwork Mon May 22 07:01:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abel Wu X-Patchwork-Id: 13249866 X-Patchwork-Delegate: kuba@kernel.org Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E43814A36 for ; Mon, 22 May 2023 07:02:17 +0000 (UTC) Received: from mail-pf1-x42c.google.com (mail-pf1-x42c.google.com [IPv6:2607:f8b0:4864:20::42c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8A9441BDA for ; Mon, 22 May 2023 00:01:54 -0700 (PDT) Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-64d2f99c8c3so2107338b3a.0 for ; Mon, 22 May 2023 00:01:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684738907; x=1687330907; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=bAQinShNGu83yZk3rp1RX6U81r/+0AkNU5ra2AmWYPc=; b=R6qQVs8Q1EC7za9C0/4qceRDywImj4defA+/MxD5u5cL6DHOsp8Fo7zRfkA3tL3j4D lNyjLVK9jTeCzqt/i4lcpUIX1xMtpu2n5MLzkWz0bmtuupHIhPGlQ3LrsbHgIiH+zGar GyFrcO5kZ90L8eXWQXvpl4AB9adbMG7raaVldlWWmBkSrPEvinkkSxojT5/qC6t1JoBC ZXFTp6y2KVlqqWOOjQkm668oAE21GsEVSwMZ4j3C2GwxiUCk1a8zYaCJIaes7V48eFmG osdXJSikN8/mo9c59yhD/vAZbZDI3aqEtXB1hsd2HTjTEjgpJVNe2C1o1N9raWiK4Zwo m3Vw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684738907; x=1687330907; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=bAQinShNGu83yZk3rp1RX6U81r/+0AkNU5ra2AmWYPc=; b=g/0tIk+LLGeMh8oXcZybE2gOFo2Tt8fBh8iJVT7eaLzrmAXECtwzYYzjW07gmUB65J 4OChhWImfa3WzvysHG33T3bD+vIguT8ztSRKAEdxe3UPYbVH/3hLLjaQCHJ7GCAQK/0W 3enqyDoseSpfpBEi6jOo3H9MeQwMA2Du0BNsH9jEMZU8fa8hAHyrpKs5rFlLGNwdTSix gSo8LHWLAfkaqVSuV56JxBN3AMPG+GRM9IHPwapecZrt9tlNoJ8qUhIWHPUxpXu4Q+nz R3h59oxNzvM3Gg8ofMd/MZNRAF71maoHwHT0a49llqFK5XEFNMDvh/jNZR0GGQtkOozC PHgQ== X-Gm-Message-State: AC+VfDwY5q0HEVi7AQ3B7XkG6/Gq2LkLVYc8n4MoAMJr/6EVqMCNezxt sfeDlnnY3rjlX5/57kWDRDfowYCm64jv0XRrjBM= X-Google-Smtp-Source: ACHHUZ5KWE6uNrz9B0dQhspuvs0CqmLb5hN3tWINo/EwRjj/SHAKsnFFjJrmCEAnGpvQaQbH8Q0wZQ== X-Received: by 2002:a05:6a00:10c4:b0:63b:1708:10aa with SMTP id d4-20020a056a0010c400b0063b170810aamr12715822pfu.34.1684738907531; Mon, 22 May 2023 00:01:47 -0700 (PDT) Received: from localhost.localdomain ([139.177.225.251]) by smtp.gmail.com with ESMTPSA id d27-20020a630e1b000000b0052cbd854927sm3687505pgl.18.2023.05.22.00.01.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 May 2023 00:01:46 -0700 (PDT) From: Abel Wu To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Glauber Costa , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Abel Wu Subject: [PATCH v2 1/4] sock: Always take memcg pressure into consideration Date: Mon, 22 May 2023 15:01:19 +0800 Message-Id: <20230522070122.6727-2-wuyun.abel@bytedance.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20230522070122.6727-1-wuyun.abel@bytedance.com> References: <20230522070122.6727-1-wuyun.abel@bytedance.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net X-Patchwork-Delegate: kuba@kernel.org The sk_under_memory_pressure() is called to check whether there is memory pressure related to this socket. But now it ignores the net- memcg's pressure if the proto of the socket doesn't care about the global pressure, which may put burden on its memcg compaction or reclaim path (also remember that socket memory is un-reclaimable). So always check the memcg's vm status to alleviate memstalls when it's in pressure. Signed-off-by: Abel Wu --- include/net/sock.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/include/net/sock.h b/include/net/sock.h index 8b7ed7167243..c73d9bad7ac7 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -1411,14 +1411,12 @@ static inline bool sk_has_memory_pressure(const struct sock *sk) static inline bool sk_under_memory_pressure(const struct sock *sk) { - if (!sk->sk_prot->memory_pressure) - return false; - if (mem_cgroup_sockets_enabled && sk->sk_memcg && mem_cgroup_under_socket_pressure(sk->sk_memcg)) return true; - return !!*sk->sk_prot->memory_pressure; + return sk->sk_prot->memory_pressure && + *sk->sk_prot->memory_pressure; } static inline long From patchwork Mon May 22 07:01:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abel Wu X-Patchwork-Id: 13249867 X-Patchwork-Delegate: kuba@kernel.org Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9659F4C6B for ; Mon, 22 May 2023 07:02:26 +0000 (UTC) Received: from mail-pf1-x434.google.com (mail-pf1-x434.google.com [IPv6:2607:f8b0:4864:20::434]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 648B11BF8 for ; Mon, 22 May 2023 00:02:01 -0700 (PDT) Received: by mail-pf1-x434.google.com with SMTP id d2e1a72fcca58-64d2981e3abso2852881b3a.1 for ; Mon, 22 May 2023 00:02:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684738911; x=1687330911; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=sgzO2oS5bCjgkGEKcuzpbbehzv1fqa08++GJhHZGJnk=; b=B9OMUnv33tNdd4xn/p1rnp8gpM96UCeXIDdHTzof5dEwYWX67z6JpdsyQaZPSH7fYP 0xl2BymrQyLxgojJyRmIBKH64o8K6wqmHipT3fNNM8HjCm30OCRTAFhRZnQETqcP5thx P5yO6NgOVwy8MwNho2m98VZV1UY7rWaamv2fjlUEUnhCVpFhLcvZ7dp3OIYtosvdeWZc jfnYzwwptrztNkN3CdKh1BIIyb5WkJiJzBO9KXXNBx/b4FdN5Af3B47IgPO7hW9tXQNA 4UA5fFW/5Os2QHbMchluOHsxg1m1u7Pl0bZEh6iuGfbBnVDFKNYDbK9/BDiwQbwl5uGz Ugwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684738911; x=1687330911; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sgzO2oS5bCjgkGEKcuzpbbehzv1fqa08++GJhHZGJnk=; b=FXpPT7TlTZcw4ffrnQkn3Ag3m0p+gLN4s8YcMYKj0Db7gVH81i01YW/63ulvgIKKhU lBsQjJNh0uok+AZqPER3FCVDxa60b33TOYCZXhVuBc5UuZQMMr0e0gQiiTB+2rcPSt0k amsellxSIE1dXub0KpC60XAbbsf3BQ0IXzLDN5TiC23KcW+1Mkj6ttEnO3ouUew1QB5K OweR6Tq8OBn4nBMBWqsjRwrdOqz3+iZbS+j5/aVCmjrMtIPDn8Uf9MCcyU/C9tYDshHx DwnWkataejSztqARuzeJ6j3bIH8yVNX4O3Kpi/ksPaKtA6xywG8ZLaQhlU4rb2xBUAPy 5jjQ== X-Gm-Message-State: AC+VfDyyV7CLTZBp0L/k4p3mST0VIhUQoWq/AyNfF6j1crva9+bKRfVG mVMc6QlQU8T6KgjyePcN4ejkrw== X-Google-Smtp-Source: ACHHUZ4ZJe5qP97101KavMhYgetzTkIyNddrBs0aAl/z7IHiyA0QOaL7RwH6lY3RFknmPsPuiBa9nA== X-Received: by 2002:a05:6a20:7fa8:b0:101:9344:bf82 with SMTP id d40-20020a056a207fa800b001019344bf82mr11034569pzj.15.1684738911283; Mon, 22 May 2023 00:01:51 -0700 (PDT) Received: from localhost.localdomain ([139.177.225.251]) by smtp.gmail.com with ESMTPSA id d27-20020a630e1b000000b0052cbd854927sm3687505pgl.18.2023.05.22.00.01.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 May 2023 00:01:50 -0700 (PDT) From: Abel Wu To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Glauber Costa , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Abel Wu Subject: [PATCH v2 2/4] sock: Fix misuse of sk_under_memory_pressure() Date: Mon, 22 May 2023 15:01:20 +0800 Message-Id: <20230522070122.6727-3-wuyun.abel@bytedance.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20230522070122.6727-1-wuyun.abel@bytedance.com> References: <20230522070122.6727-1-wuyun.abel@bytedance.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net X-Patchwork-Delegate: kuba@kernel.org The status of global socket memory pressure is updated when: a) __sk_mem_raise_allocated(): enter: sk_memory_allocated(sk) > sysctl_mem[1] leave: sk_memory_allocated(sk) <= sysctl_mem[0] b) __sk_mem_reduce_allocated(): leave: sk_under_memory_pressure(sk) && sk_memory_allocated(sk) < sysctl_mem[0] So the conditions of leaving global pressure are inconstant, which may lead to the situation that one pressured net-memcg prevents the global pressure from being cleared when there is indeed no global pressure, thus the global constrains are still in effect unexpectedly on the other sockets. This patch fixes this by ignoring the net-memcg's pressure when deciding whether should leave global memory pressure. Fixes: e1aab161e013 ("socket: initial cgroup code") Signed-off-by: Abel Wu --- include/net/sock.h | 9 +++++++-- net/core/sock.c | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/include/net/sock.h b/include/net/sock.h index c73d9bad7ac7..bf930d4db7f0 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -1409,14 +1409,19 @@ static inline bool sk_has_memory_pressure(const struct sock *sk) return sk->sk_prot->memory_pressure != NULL; } +static inline bool sk_under_global_memory_pressure(const struct sock *sk) +{ + return sk->sk_prot->memory_pressure && + *sk->sk_prot->memory_pressure; +} + static inline bool sk_under_memory_pressure(const struct sock *sk) { if (mem_cgroup_sockets_enabled && sk->sk_memcg && mem_cgroup_under_socket_pressure(sk->sk_memcg)) return true; - return sk->sk_prot->memory_pressure && - *sk->sk_prot->memory_pressure; + return sk_under_global_memory_pressure(sk); } static inline long diff --git a/net/core/sock.c b/net/core/sock.c index 5440e67bcfe3..801df091e37a 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -3095,7 +3095,7 @@ void __sk_mem_reduce_allocated(struct sock *sk, int amount) if (mem_cgroup_sockets_enabled && sk->sk_memcg) mem_cgroup_uncharge_skmem(sk->sk_memcg, amount); - if (sk_under_memory_pressure(sk) && + if (sk_under_global_memory_pressure(sk) && (sk_memory_allocated(sk) < sk_prot_mem_limits(sk, 0))) sk_leave_memory_pressure(sk); } From patchwork Mon May 22 07:01:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abel Wu X-Patchwork-Id: 13249868 X-Patchwork-Delegate: kuba@kernel.org Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E54A163BD for ; Mon, 22 May 2023 07:02:27 +0000 (UTC) Received: from mail-pj1-x1031.google.com (mail-pj1-x1031.google.com [IPv6:2607:f8b0:4864:20::1031]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 034121BFF for ; Mon, 22 May 2023 00:02:03 -0700 (PDT) Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-253724f6765so3191468a91.3 for ; Mon, 22 May 2023 00:02:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684738915; x=1687330915; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=y1oOKoVyoIUj8JPcN8+63Cdo8i/cPI1zhOYlcZa0hSM=; b=enaay0xaoWLn/utKosxoWRmovCC2iDOPsViPWAcSu4/JYlpa61g+2mofypwr36XV6P 5J3FltcUkPLQkIl0AZJuYxAJtrS6Ks0D8MuZLcveqzNcyyAJqnubyinFllJt+2ys+NkJ 68YlViqxi2UvNOTwFFXFpMSMLyiRimLE2iWipptXmQyAZXdKBmKATAFkFEQgja08ESC7 2bKN4+w6r38j+xphjcn508J/X8RhzgKuNcSOUxWHrnOH3iClosHDqVgE0Fl8TVP7ywoO W8xflpGtFM3isY8piNeZ98x693UPRt6aX4eeOCZnFll7sC9O0u1+a2pAmnLNHXwULg9U pJVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684738915; x=1687330915; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=y1oOKoVyoIUj8JPcN8+63Cdo8i/cPI1zhOYlcZa0hSM=; b=UtAu7wD/KigprNzBU5+z5l+ff6x6pXWMtbXCrRAupixKC0OqtFJY8/voJFRU2zq2V7 klFjFWKqIDiNmNDVrk/mvLByJROAP5Xay2obCHNNfZoKv4wv/nrem6+WRqIbP3Q7ZEsz E1IlI3gzJ+uf03rlPzUzbijHiebTVVCZ87PeovGqB45iLJhoveM+XcGYRSbTBhAZTPYe ZIQwDCxv5ckjgGBLkatddcIBLYWaAxwTXhZpPAsqrfWImnJU26PRiVApSEByV1Vh+GB/ X4xo1vbey1L5K6EtXfiQsif5XEMhFmHUlnS42OmbUewgid6N689vLLGr0xOTtNG0fFwE z96Q== X-Gm-Message-State: AC+VfDxmZpGAO7t0OXvpmEEtN3h8ovgj6nmatYAebEvifqayzLPKPv// uG2O+MvmmRLT32NrQCsNA+mwUQ== X-Google-Smtp-Source: ACHHUZ4o2D5U9H7O9EVzembFmHB5vNmURPTxvA+5i11/ATadoYPSFYWcOfJ9V/84ql5EYbtBEo1FuA== X-Received: by 2002:a17:90b:1d0c:b0:255:67e3:98a with SMTP id on12-20020a17090b1d0c00b0025567e3098amr2054678pjb.11.1684738915145; Mon, 22 May 2023 00:01:55 -0700 (PDT) Received: from localhost.localdomain ([139.177.225.251]) by smtp.gmail.com with ESMTPSA id d27-20020a630e1b000000b0052cbd854927sm3687505pgl.18.2023.05.22.00.01.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 May 2023 00:01:54 -0700 (PDT) From: Abel Wu To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Glauber Costa , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Abel Wu Subject: [PATCH v2 3/4] sock: Consider memcg pressure when raising sockmem Date: Mon, 22 May 2023 15:01:21 +0800 Message-Id: <20230522070122.6727-4-wuyun.abel@bytedance.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20230522070122.6727-1-wuyun.abel@bytedance.com> References: <20230522070122.6727-1-wuyun.abel@bytedance.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net X-Patchwork-Delegate: kuba@kernel.org For now __sk_mem_raise_allocated() mainly considers global socket memory pressure and allows to raise if no global pressure observed, including the sockets whose memcgs are in pressure, which might result in longer memcg memstall. So take net-memcg's pressure into consideration when allocating socket memory to alleviate long tail latencies. Signed-off-by: Abel Wu --- net/core/sock.c | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/net/core/sock.c b/net/core/sock.c index 801df091e37a..7641d64293af 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -2977,21 +2977,30 @@ int __sk_mem_raise_allocated(struct sock *sk, int size, int amt, int kind) { bool memcg_charge = mem_cgroup_sockets_enabled && sk->sk_memcg; struct proto *prot = sk->sk_prot; - bool charged = true; + bool charged = true, pressured = false; long allocated; sk_memory_allocated_add(sk, amt); allocated = sk_memory_allocated(sk); - if (memcg_charge && - !(charged = mem_cgroup_charge_skmem(sk->sk_memcg, amt, - gfp_memcg_charge()))) - goto suppress_allocation; + + if (memcg_charge) { + charged = mem_cgroup_charge_skmem(sk->sk_memcg, amt, + gfp_memcg_charge()); + if (!charged) + goto suppress_allocation; + if (mem_cgroup_under_socket_pressure(sk->sk_memcg)) + pressured = true; + } /* Under limit. */ - if (allocated <= sk_prot_mem_limits(sk, 0)) { + if (allocated <= sk_prot_mem_limits(sk, 0)) sk_leave_memory_pressure(sk); + else + pressured = true; + + /* No pressure observed in global/memcg. */ + if (!pressured) return 1; - } /* Under pressure. */ if (allocated > sk_prot_mem_limits(sk, 1)) From patchwork Mon May 22 07:01:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abel Wu X-Patchwork-Id: 13249869 X-Patchwork-Delegate: kuba@kernel.org Received: from lindbergh.monkeyblade.net (lindbergh.monkeyblade.net [23.128.96.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3D80963C5 for ; Mon, 22 May 2023 07:02:28 +0000 (UTC) Received: from mail-pf1-x431.google.com (mail-pf1-x431.google.com [IPv6:2607:f8b0:4864:20::431]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 412491FC3 for ; Mon, 22 May 2023 00:02:04 -0700 (PDT) Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-64d2981e3abso2853002b3a.1 for ; Mon, 22 May 2023 00:02:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684738919; x=1687330919; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YKnhyBNVHnSoKN/wGLElGxvEFyvxXF8SFNAoMlqNKrY=; b=ZmZuiA9chQo3zzFy1MN/j1tmB3q9BwCEWejSH0Rw60P8CaMT86ntqYQ03QfwrZEVwq FkbNnm6pV+w/CbkyNpQ+JIfm6QmwN+qoKl+h+4+1xWAYo+xx2dS5AKRsDAhmXzTm3riv 6Yo7TWV0fJGX3G/KMzwrWpCBq6ukeZdBlNENLcrA8ScMItzQjo6RKpDunzDs2oanPBXD bT6lMxF4eYBiZGA4Lw23kjUspUGRjpSUqS+8SDubOpIx/Nv5FJzFWf0+MgMdaFfeddqZ lv86fX/pMhyqLJO8qog2FKOhcCKTrmCQUbQsEEaaKowuWMks0r3LIMi2U5OtkHIU1Vd4 ihOw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684738919; x=1687330919; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YKnhyBNVHnSoKN/wGLElGxvEFyvxXF8SFNAoMlqNKrY=; b=EOUAjCGy0suSWcYERy97pZPiPfgIdL2XCcXu0X1Ro9RY/KEk1J2SS+QbuJ1WfU9OYx igCw2wJgo/croCea5R4TNz7SfUyglrn6hdJ7jRDWUjRZAD5QoVnuIpTJ2JrrG6p9gVng R0I5ghZrvtFQ5gs1LD/sYGqH+YeSPS1pC7wZrK464A0yJZdyXFy6CGQTptg6C607WPqu LYlLy04/hOHG+etx7eETy8Ss6F0IXA+Ur5YvB3uvsXsbvf1/r7KhxO9sXnEY2ZRsLd8j vWQMlVRqhflgls70wsdvrmEKz09I+kSWuGl/0arQz17emsegdgLqtnIPG86g7Hx/nK5k JNkw== X-Gm-Message-State: AC+VfDyJg+o4rPYvGiZSH2hkX2q8HXD9CPDLjQ3xswJEwGEFvRu2+5v7 hcW/0FCkcaw973M8fy90WqBXBw== X-Google-Smtp-Source: ACHHUZ4B/jsyzL/apdJ3kEiN7e27Upz2uNormul3H87UZR7L7LeAxfmRdG+5Y/bM8xTdHdg7t8zukg== X-Received: by 2002:a05:6a21:918c:b0:106:3b67:b5db with SMTP id tp12-20020a056a21918c00b001063b67b5dbmr9275449pzb.18.1684738919559; Mon, 22 May 2023 00:01:59 -0700 (PDT) Received: from localhost.localdomain ([139.177.225.251]) by smtp.gmail.com with ESMTPSA id d27-20020a630e1b000000b0052cbd854927sm3687505pgl.18.2023.05.22.00.01.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 22 May 2023 00:01:58 -0700 (PDT) From: Abel Wu To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Glauber Costa , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Abel Wu Subject: [PATCH v2 4/4] sock: Remove redundant cond of memcg pressure Date: Mon, 22 May 2023 15:01:22 +0800 Message-Id: <20230522070122.6727-5-wuyun.abel@bytedance.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20230522070122.6727-1-wuyun.abel@bytedance.com> References: <20230522070122.6727-1-wuyun.abel@bytedance.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net X-Patchwork-Delegate: kuba@kernel.org Now with the preivous patch, __sk_mem_raise_allocated() considers the memory pressure of both global and the socket's memcg on a func- wide level, making the condition of memcg's pressure in question redundant. Signed-off-by: Abel Wu --- net/core/sock.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/net/core/sock.c b/net/core/sock.c index 7641d64293af..baccbb58a11a 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -3029,9 +3029,14 @@ int __sk_mem_raise_allocated(struct sock *sk, int size, int amt, int kind) if (sk_has_memory_pressure(sk)) { u64 alloc; - if (!sk_under_memory_pressure(sk)) + if (!sk_under_global_memory_pressure(sk)) return 1; alloc = sk_sockets_allocated_read_positive(sk); + /* + * If under global pressure, allow the sockets that are below + * average memory usage to raise, trying to be fair among all + * the sockets under global constrains. + */ if (sk_prot_mem_limits(sk, 2) > alloc * sk_mem_pages(sk->sk_wmem_queued + atomic_read(&sk->sk_rmem_alloc) +