From patchwork Tue May 23 09:46:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abel Wu X-Patchwork-Id: 97943 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2022457vqo; Tue, 23 May 2023 03:06:12 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6jb79ono66ajClzdkf8b+DATPZ9dzRo/GrvZb1hstl816BE+eov1H7BZ7fgD6BIj/CeAA4 X-Received: by 2002:a17:90a:b791:b0:255:53b4:278c with SMTP id m17-20020a17090ab79100b0025553b4278cmr7439902pjr.36.1684836371919; Tue, 23 May 2023 03:06:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684836371; cv=none; d=google.com; s=arc-20160816; b=XsdiomAN5pfG6mUQuvNsijjYkZDoo4jnOtaQP+zce6K3vzm9m6pt+8xfc7VLdi5CF3 OIELVWrET/Dtq/DW0Efj3OuNE9alI69+VJ/n7T8NJd+hL0TOl+TFa5VkRlu6LtO19E1D ksOH5S3XW+vA3DwYitxnLLHrca6yI7+qynrrWl9k+i8/to9mBIU7TAOfWs62IpbDzXyB bvctneBzjuSWSdvBQ31ZACQMC2clB0WTs614wA5lGRMyAc8vyNphE8MCqUEwMPRRUsgy xe6QyHnU3Kw1WbFKhKacWjFaQ7v33ogc/Ax+yBY/5g+4dJqX1h7nOM6d9t9yRMRqXbz7 Zs2g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=zSeZy3dBgM/hAvW1l4S3j81M4ry+F3vLfbl4Wg72DeY=; b=IwJMjGAqLWm9qGHRWImmCvCNHWlPqbdqHiz1U8D0fhKEH3wQe2Zy5C/ik4nZ6vNOtr 3UM3T0cwKuM86odhdwVmdnoenTrOOkXrRFccF210Tj7d+a2JhoS1zxchSCY3Pwdw9s9m C+kwomlwYH7H+bRLJw9rwI7lVAxoS45cZUKtYtxjYK3tVj3O81KGK4Ye1CmhTsUvU038 c+i/vp+9apvPj6K44pjx9Z6lW/yoQfIsSEnqFgs0+yQw7DWcxI7LR+FmP6rYoCFLcpOy 7a57TiTPvL6Rw8C39+LlvGvgmL3I4nhOBALcr31uMSw+paIHZflbMRB+3AhZvC2AwePU Hvrg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bytedance.com header.s=google header.b=O06lEBAs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=bytedance.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id mm5-20020a17090b358500b0024e01bbc60asi8312105pjb.117.2023.05.23.03.05.57; Tue, 23 May 2023 03:06:11 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@bytedance.com header.s=google header.b=O06lEBAs; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=bytedance.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235716AbjEWJrR (ORCPT + 99 others); Tue, 23 May 2023 05:47:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33840 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232957AbjEWJrO (ORCPT ); Tue, 23 May 2023 05:47:14 -0400 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 59ACA109 for ; Tue, 23 May 2023 02:47:13 -0700 (PDT) Received: by mail-pf1-x42c.google.com with SMTP id d2e1a72fcca58-64d426e63baso4138548b3a.0 for ; Tue, 23 May 2023 02:47:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684835233; x=1687427233; 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=zSeZy3dBgM/hAvW1l4S3j81M4ry+F3vLfbl4Wg72DeY=; b=O06lEBAs+5Eoxzd1wIs6DBaPLQaIKoySacNOnVoqMNyuuuH7QAO7G1QGk4c99I8+s/ ZGgXooronTdovPxYNwkii+X4BWjP+OkCBIQKjNd2rdLzhkzbEjBTRHnEYvW2t9LWHSCc epJfFOheoOPOBWJ2uYRHSVB+TRR7MnHFCHHipwrAZL3WwjLmvdaWxE/ufB9Ni23DX9tR aVC8Ed1tWF4kMycrLwek1nsWvnOWC2zkkZ8U3l7l2+j6/c8lOx8I+/0h+1U0uKlQTULU YRrQetIlPircJ5m0BuklZMOMwuPFbKEt7M3gFbVbueJosraYOXJxbjMfNCCRhuTkdtyr koTQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684835233; x=1687427233; 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=zSeZy3dBgM/hAvW1l4S3j81M4ry+F3vLfbl4Wg72DeY=; b=I5Q+Y3imyUAviRQ7QT9y62B5ktBS+XAcXgcb23JldHneae0RTcrQ4APzOJgaL7Pf7V S6GKUxGPLg1wMK1gXRNNjdWz5Axz1W3FF+SBfZCrNALVME+YpBzVtQJ9ME3nUNM71hXT NQhhdb6KJJbM/CxbWgUgoGooQ9pFTowZ3lYZVV2EjHQDl1QuPG3Csp25njJxj2PxxcXZ cz/TmS2deBH5gM0y4Y46ev2Xo5iWqFVr1JpGnDAUHviH9KQI5CWrDOeKV93d6SBI6Ckw 2hQqRHBce4PXa93WKpwyCiuEIt8YUsYDP2MetRNEu+cWNMzkN0xANhbjViUTrZgx/onP XHGQ== X-Gm-Message-State: AC+VfDwpkPMZBJMJpmoCoQJwieY2hJApOn/44khL9a6tJgWg8cds9HEe 9nEzSWMup7px7J+DAnCcTZBu2w== X-Received: by 2002:a05:6a00:98f:b0:645:cfb0:2779 with SMTP id u15-20020a056a00098f00b00645cfb02779mr19397362pfg.26.1684835232865; Tue, 23 May 2023 02:47:12 -0700 (PDT) Received: from localhost.localdomain ([139.177.225.230]) by smtp.gmail.com with ESMTPSA id 22-20020aa79116000000b0063b898b3502sm5457216pfh.153.2023.05.23.02.47.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 May 2023 02:47:12 -0700 (PDT) From: Abel Wu To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Simon Horman , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Abel Wu Subject: [PATCH v3 1/5] net-memcg: Fold dependency into memcg pressure cond Date: Tue, 23 May 2023 17:46:48 +0800 Message-Id: <20230523094652.49411-2-wuyun.abel@bytedance.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20230523094652.49411-1-wuyun.abel@bytedance.com> References: <20230523094652.49411-1-wuyun.abel@bytedance.com> 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,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766678983565853145?= X-GMAIL-MSGID: =?utf-8?q?1766678983565853145?= The callers of mem_cgroup_under_socket_pressure() should always make sure that (mem_cgroup_sockets_enabled && sk->sk_memcg) is true. So instead of coding around all the callsites, put the dependencies into mem_cgroup_under_socket_pressure() to avoid redundancy and possibly bugs. This change might also introduce slight function call overhead *iff* the function gets expanded in the future. But for now this change doesn't make binaries different (checked by vimdiff) except the one net/ipv4/tcp_input.o (by scripts/bloat-o-meter), which is probably negligible to performance: add/remove: 0/0 grow/shrink: 1/2 up/down: 5/-5 (0) Function old new delta tcp_grow_window 573 578 +5 tcp_try_rmem_schedule 1083 1081 -2 tcp_check_space 324 321 -3 Total: Before=44647, After=44647, chg +0.00% So folding the dependencies into mem_cgroup_under_socket_pressure() is generally a good thing and provides better readablility. Signed-off-by: Abel Wu --- include/linux/memcontrol.h | 2 ++ include/net/sock.h | 3 +-- include/net/tcp.h | 3 +-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 222d7370134c..a1aead140ff8 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -1743,6 +1743,8 @@ void mem_cgroup_sk_alloc(struct sock *sk); void mem_cgroup_sk_free(struct sock *sk); static inline bool mem_cgroup_under_socket_pressure(struct mem_cgroup *memcg) { + if (!mem_cgroup_sockets_enabled || !memcg) + return false; if (!cgroup_subsys_on_dfl(memory_cgrp_subsys) && memcg->tcpmem_pressure) return true; do { diff --git a/include/net/sock.h b/include/net/sock.h index 8b7ed7167243..641c9373b44b 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -1414,8 +1414,7 @@ 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)) + if (mem_cgroup_under_socket_pressure(sk->sk_memcg)) return true; return !!*sk->sk_prot->memory_pressure; diff --git a/include/net/tcp.h b/include/net/tcp.h index 04a31643cda3..3c5e3718b454 100644 --- a/include/net/tcp.h +++ b/include/net/tcp.h @@ -261,8 +261,7 @@ extern unsigned long tcp_memory_pressure; /* optimized version of sk_under_memory_pressure() for TCP sockets */ static inline bool tcp_under_memory_pressure(const struct sock *sk) { - if (mem_cgroup_sockets_enabled && sk->sk_memcg && - mem_cgroup_under_socket_pressure(sk->sk_memcg)) + if (mem_cgroup_under_socket_pressure(sk->sk_memcg)) return true; return READ_ONCE(tcp_memory_pressure); From patchwork Tue May 23 09:46:49 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abel Wu X-Patchwork-Id: 97941 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2016327vqo; Tue, 23 May 2023 02:55:00 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7pf81IUqLix9zeii3VJxr5Vc/I3XbFXswLsCTdwGVmxX8/Dh9aWO/VqiApn3o7kf/pA04g X-Received: by 2002:a17:902:c3c4:b0:1ad:eb16:35e2 with SMTP id j4-20020a170902c3c400b001adeb1635e2mr13060421plj.66.1684835699710; Tue, 23 May 2023 02:54:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684835699; cv=none; d=google.com; s=arc-20160816; b=Oj7oyxln8vPbW6pAmgPSeQ8X+8xsm9etrwiDK3dZ7LerKSxj9jOKC2L015mpG2GgEA cCsckHTam7SHyBjbomQBF5mobvVuEJlqTHURWaYSRoYcGH61jRD2AyziyWgG6Gx9JQPD JGueTTjf7GwRI+O2j0q13GW4v1MbpZgHx1wdsW2bUOFVHEKHkpa/jh0eFjzTF5WGH9AX 5ot0ZxqJdmybF5M69wox0ob7ufQ1sRlWFZTZrDT7f0bguiPmYHR9Ejdy7ziuKikhBF9z GTptsYbhxR8WyEVbErPBoP4cSGQO7gxtY1tIjmgPimXQrlyJjWdBSq4BjS3HWmELaSQx TbWA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=7JbrrHsu8KzXBp8abtNpZsLO9DbdsQWsXzCPkkoYMdc=; b=SuK1fNQe3ATFD9nNoFWTgxVYgGh1pGWWVsSmuykvSVONM3OMMh0Z/MUAQKXTSrXknZ bR6HZ/gVn+7uuC1rn8wewNh1J6GTLAxjgUoUmsLe5hby7kWwdgyE1sO9LeN3naOTV2pC xFgtexSiRRalN+ubwORYhcvXglz34UMEVX3wxfTx5/5MHqkWgrCKJm+uza6j4NdKMV56 IznH4Y0mT0i8ddVTJlqyK2iit3R4SxDecwIxeTmBYJnSwj2dNw4CGDfDdEd5R2obNaSg LZ4htxhqlT2Fd0keRDENbEReLn+jVpNZnmk8+6dXqri7ibdkYLaMEcvFr5dif8G7obLF N1Rw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bytedance.com header.s=google header.b=LeHmRtCQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=bytedance.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u3-20020a170902714300b001ae5fe35b78si6064909plm.497.2023.05.23.02.54.45; Tue, 23 May 2023 02:54:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@bytedance.com header.s=google header.b=LeHmRtCQ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=bytedance.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236241AbjEWJrr (ORCPT + 99 others); Tue, 23 May 2023 05:47:47 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33860 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236169AbjEWJrk (ORCPT ); Tue, 23 May 2023 05:47:40 -0400 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 4CE37E6 for ; Tue, 23 May 2023 02:47:17 -0700 (PDT) Received: by mail-pf1-x434.google.com with SMTP id d2e1a72fcca58-64d604cc0aaso2028855b3a.2 for ; Tue, 23 May 2023 02:47:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684835237; x=1687427237; 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=7JbrrHsu8KzXBp8abtNpZsLO9DbdsQWsXzCPkkoYMdc=; b=LeHmRtCQCbob1Ad8YEm2YLv5mAvn+aMuWIv78A1fohJzHjOiXc2rnwxby8WYnL/ewR MM/7pB74gbS7eWJdjpORMMbyBiKMsXNEt5il7o9ta5Xb8AQNhVbeCV53MtlCKD+g508Q blH+tGTg7Ad8TJmgxxgRqvyA+gGdI+HlgAxQPcczFNCWeQ9K2YrePJc4cC9xs85ovsqf KpGnxmHPLuTkrbE7lo+EzKQQENuGbRlZiS2MY4/iSmoOG0eV0ubhmDgjaQQ/+E313Fq0 xqIhDGAC3+YdMS3ra3frtU5ICniR63D2pB6KBB73hMsEgnpaEENCB6/OsfpVmRS6qRJc NL8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684835237; x=1687427237; 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=7JbrrHsu8KzXBp8abtNpZsLO9DbdsQWsXzCPkkoYMdc=; b=Z8CnTGUPOKZlOnLINoBULcOYXAv0SXUsXtIftdaKrnl9/1zyZU1Iwg1FWzjikxoxWW /Ggs74B3m93HPPKCmm9/1v2F0+UgySG0vobPnvXJptiUhzrn+r1oD2IU/ksKzDXT+6/u +MsMEZJJu+YFK4fLOzLnhLP9+zXhDtDWFEZmkzk77Rb86uObSZ5WYuTSw8ZQsISm7AYi HQ60geIZY6NDCd7ACWu2vJgbvggdvO50c5gHGJlai7fogoPhu2Db/X7VzZX615RlWjAP epywhfZRgDMZjQ+G6SEE6/pao127N2JjQOthFMGxoBaf7b8Xmv/c/TegBpIdKXZpG96L mJTw== X-Gm-Message-State: AC+VfDxwgIHzUvVV0loj5A0lvZauBpcbJrd6bitJQ7HXipWidLDhVn/Y WNq2RQHB3APm01PbQOGKZNGs3Q== X-Received: by 2002:a05:6a20:3d0c:b0:106:8b:99d2 with SMTP id y12-20020a056a203d0c00b00106008b99d2mr16375595pzi.51.1684835236832; Tue, 23 May 2023 02:47:16 -0700 (PDT) Received: from localhost.localdomain ([139.177.225.230]) by smtp.gmail.com with ESMTPSA id 22-20020aa79116000000b0063b898b3502sm5457216pfh.153.2023.05.23.02.47.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 May 2023 02:47:16 -0700 (PDT) From: Abel Wu To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Simon Horman , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Abel Wu Subject: [PATCH v3 2/5] sock: Always take memcg pressure into consideration Date: Tue, 23 May 2023 17:46:49 +0800 Message-Id: <20230523094652.49411-3-wuyun.abel@bytedance.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20230523094652.49411-1-wuyun.abel@bytedance.com> References: <20230523094652.49411-1-wuyun.abel@bytedance.com> 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,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766678278209981935?= X-GMAIL-MSGID: =?utf-8?q?1766678278209981935?= 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 641c9373b44b..b0e5533e5909 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -1411,13 +1411,11 @@ 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_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 Tue May 23 09:46:50 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abel Wu X-Patchwork-Id: 97944 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2023017vqo; Tue, 23 May 2023 03:07:07 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5DjaUhiRup+bLQg2h/7g7hCOK+VnPP+dLE2w67h5q+Ujn/6cZN9Z62jzVBQ3FGMf+jGDGo X-Received: by 2002:a17:902:e889:b0:1aa:e30e:29d3 with SMTP id w9-20020a170902e88900b001aae30e29d3mr17824510plg.29.1684836426768; Tue, 23 May 2023 03:07:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684836426; cv=none; d=google.com; s=arc-20160816; b=t1LMpDm+iWFaremPeYcld2BfRxfOBHH93Ep7iCax08PMz8qiibiIY9e8NYDn9Lee7T 8N+zwS1Grs+uWzqw5cGFzGCvPcZqkJg1aLLB4NbjVhhKMzMxTEcaToiVDoltlPVWBP/t ivHZSU2AA14gD333/IzW3x/vteU4+19MrkiY4IxQMsCCtaHClnT291EWDeo2LssPok/N xAcQ5+B7RAGhzdr2W3SE16aO2Kh9DuHebF/fJ12GajeidWiFy+eL2EX5MBg9Gqo4m9L3 ZM/PAft/ARNC0wDmHawdnXS2/IfFvUHEz7A6/Y1Iyp36Yr2upIy/8W3OxfwYADBh+u7i cv2w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=RMeJmdZ3LE5akFulN2YKZF3yDR93Nfz5GrpK/FAs6Mo=; b=o9JbEJWyBJTajatCEwOUM6ktdem85msH3g2igyPsuKXTr8C0rgVYgwLKJyl8qzi9hn F2Z9HQT86KBT+TUwM8UyIT4h1MgE84azCsO4bEk5t0IlNrd/qDHWJgoP/yy8E/TygQIz 4n9x4N4TSzp4+4Pt59ZtPjA3O8zATwcsLhR/t9CLB7YGxtuhNYehy3ikm0NQsSjHUA1g lcGqHdQHsTP4DOVrxPzOPIv78Z4grj6vD4+eUHfsRAgNZwYE1nboN/3lmNBWdolb3jw8 tIOyMOR0t22ADGJAI1um0TC4j+ceJ5/auETWBPy40Ta/R1sKmim99WX58XwqECi47TS4 FDLw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bytedance.com header.s=google header.b=B880Cxou; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=bytedance.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b14-20020a170902650e00b001aae63a371esi4536174plk.478.2023.05.23.03.06.51; Tue, 23 May 2023 03:07:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@bytedance.com header.s=google header.b=B880Cxou; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=bytedance.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233158AbjEWJr2 (ORCPT + 99 others); Tue, 23 May 2023 05:47:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33896 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231220AbjEWJr0 (ORCPT ); Tue, 23 May 2023 05:47:26 -0400 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 DE15912B for ; Tue, 23 May 2023 02:47:20 -0700 (PDT) Received: by mail-pf1-x434.google.com with SMTP id d2e1a72fcca58-64d2b42a8f9so4052172b3a.3 for ; Tue, 23 May 2023 02:47:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684835240; x=1687427240; 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=RMeJmdZ3LE5akFulN2YKZF3yDR93Nfz5GrpK/FAs6Mo=; b=B880Cxou7jMNKnnSKqDvzpC383QnKFgaQTrZAh4pbCWGQDOYZUEc8zYZUAxp7NPvWc CsjI7yZYanPUalpRPeD2nCqoLZMUtdNB+Ms+r7OTLt11AnB6gE9PzZX2y4l/uEgB82su bk4IUOW9jAt+YQbn+pEhnisTxz4JT9+fK1UPMkDDqmvFehCp110UUTwT82dkhOCRSV2B OusFDNXP5SXR3tQoyhiFkMm9c3F5Ystg4nQLs88KZkmM4R+US3twYrGo4ZoU+pTU+56O Al76H1vOTCw/bvnS3oRpbJAO76zM5SiM+8ysyWNCRK02fSpe4Lv3Usptqw1AiFqFxgJ3 gufg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684835240; x=1687427240; 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=RMeJmdZ3LE5akFulN2YKZF3yDR93Nfz5GrpK/FAs6Mo=; b=BrF26BL2juIGQzJW0255CWB420yiKwHSZZpT6FsDIu6cOhJrhGsWMe5pWj88amkP/x AsERo43pWXd3WyIZroXvAT4x8a5bkfsZHC168G6jjyrZA6xQJI/MOaDSIbs2kBNRNtG+ +UK+IWF9RwUu4Tww6XibBUG1VeN+fOlBS3PsATkaRqkXgw+fhdby3omnaiu/0VihVCbW T57cDfthwMZVdNulVYDBzlQxR/Di8oTD/AWqAn3TkqjBM1XPSm877OmJUJORE+HptJ9x oLf6/pN/pdh0tfMkfGU4TZXmFud4h7/2N6AVt90juFtbaSI0iGUFrTOFaPjnKGOQOX85 44Zg== X-Gm-Message-State: AC+VfDxt+siAtY2yOBHQpO1Wgxrj7xi4GQXP0Jq7LWXF6VI4II1oC4P8 eW9SXmnI20roZWXJN4Lypp5x3A== X-Received: by 2002:a05:6a00:2e0e:b0:646:3c2:4d30 with SMTP id fc14-20020a056a002e0e00b0064603c24d30mr16266161pfb.30.1684835240594; Tue, 23 May 2023 02:47:20 -0700 (PDT) Received: from localhost.localdomain ([139.177.225.230]) by smtp.gmail.com with ESMTPSA id 22-20020aa79116000000b0063b898b3502sm5457216pfh.153.2023.05.23.02.47.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 May 2023 02:47:20 -0700 (PDT) From: Abel Wu To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Simon Horman , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Abel Wu Subject: [PATCH v3 3/5] sock: Fix misuse of sk_under_memory_pressure() Date: Tue, 23 May 2023 17:46:50 +0800 Message-Id: <20230523094652.49411-4-wuyun.abel@bytedance.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20230523094652.49411-1-wuyun.abel@bytedance.com> References: <20230523094652.49411-1-wuyun.abel@bytedance.com> 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,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766679040536639248?= X-GMAIL-MSGID: =?utf-8?q?1766679040536639248?= 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 b0e5533e5909..257706710be5 100644 --- a/include/net/sock.h +++ b/include/net/sock.h @@ -1409,13 +1409,18 @@ 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_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 Tue May 23 09:46:51 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abel Wu X-Patchwork-Id: 97946 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2023386vqo; Tue, 23 May 2023 03:07:45 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6ZkqugFp9TEcEsOCl1bOiS3K1iYEhelbc9hpnfvhZicESM9IiHaBAjyv6upEsDv7s1Zw/X X-Received: by 2002:a05:6a00:850:b0:647:776c:d19c with SMTP id q16-20020a056a00085000b00647776cd19cmr19881486pfk.13.1684836465142; Tue, 23 May 2023 03:07:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684836465; cv=none; d=google.com; s=arc-20160816; b=X/SsXXWi73kiQg7knISGGGap1djY7yVNJ6QmFp9qr+AfAyzU1+LqhlaiinFabpiM4g gYZVXhZDTYM4W8UJIejDn0EQw3qk6o8HycBvN/wPEbKCOXOAgporNp8fnZwSsvp6JGZZ VDVPk4q9PiX1A+tN3rVh7HbiFNMwVmRS0DHMbcIm3TUZslzvVWH7I44St/dmUJC1Ik2u o8dyTWsxw55CvZcqP0nJXOD89J0pCUsnGAmFiAQkvRRknB7I6HhbxYgIsshnm1eQy/at H7n15tFWOkYPjLtoIVuTMn6xqz55hQ+7r7/kLYdeEzEzIsd6ilsD7q0cSj0zmlr0wyLK ZgQw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=wljfsHXHo/5dnZRd+Tp9MykDSGj/AnuCuvCHil+r0Q0=; b=gE5X9j/pTGp78rc/EQTxJC+8P9o1i+7wc4mpv712P1V4J0UvV5xX1ApADg8YJsAahl d0ZL3kfRItlZ+uFGwuKT4Wtppl2dMkkrnH7NYrY6kkouc1dpfVW+aXz+tKx732ovwOrZ 5jT4UIEldNi0CUcz6waqwOmXcicPSrdfnTBTWjhDGoeYwl1XK1fzLv+qlEKZdbWmgDr1 sN36oCUMMsnG3RpLLNC4owDM/ElApapscmI4zHFFjkP7rB8105YyX+8YaVxv7R0zX8CU 77egZ96Gm5H4RQHNYIP8oH9ubJQBbbm2KmrBXiZyj8515ekKIlSK+lFsUvtt/fI2VZW1 HOog== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bytedance.com header.s=google header.b=Wk4AsMej; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=bytedance.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id y13-20020aa78f2d000000b0063afb349e8fsi6292162pfr.141.2023.05.23.03.07.31; Tue, 23 May 2023 03:07:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@bytedance.com header.s=google header.b=Wk4AsMej; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=bytedance.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235889AbjEWJsI (ORCPT + 99 others); Tue, 23 May 2023 05:48:08 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33948 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236384AbjEWJrw (ORCPT ); Tue, 23 May 2023 05:47:52 -0400 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 001A1138 for ; Tue, 23 May 2023 02:47:24 -0700 (PDT) Received: by mail-pf1-x431.google.com with SMTP id d2e1a72fcca58-64d2e8a842cso3590117b3a.3 for ; Tue, 23 May 2023 02:47:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684835244; x=1687427244; 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=wljfsHXHo/5dnZRd+Tp9MykDSGj/AnuCuvCHil+r0Q0=; b=Wk4AsMej2kFn2vk6ySqFSw0wYlfCctDm1y9dO/NXtgPyjoCFO7fD+mNjbXE5ii9egR fAzkSX11GOa1h9RD0fMJ/iJALgwbS7eEPS2c5FhLye8DHrs0smXM9Bm5IDvCFx7HlS1X gXaDjlgcvO1qiCK8OLndIWQUrFhEv7BLVe7ORpTI1Hzo4qdtIEjNodfDbYJMfQkuY3dL 5R2b/Jrsb3YHOZsEY8BhCksLDo4X6RM8z44pPg2ymI0PMn1CR6jWh2Ox321uXC/Tk7Tu 0HOJyipQKU7yVeh5qZ++ubCoWE2vN2VwaBSEG7tQMchuc1xwsd2NyO1uzg3Zj8tCqh3h qdZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684835244; x=1687427244; 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=wljfsHXHo/5dnZRd+Tp9MykDSGj/AnuCuvCHil+r0Q0=; b=W0Y64C0qVNY/59QiNyhB9XHS0Ia8/8oZ5Xm1893KmCu3Mx/jJYEEyeMKfiGstshkHp DL0N2YQxZ9YLpNjIVKGO7V7kMkykkReDnafiy3hZ5te++jsDMgI55ODCt373UO26wa2C UxA3EjlMdRRHihtvP8vG5m0/Aq+3Sd5A4apTOpODCHb0sjSq3K7ErjtUg/lRfUfAiq5u 1a+QDa+/O7aSyCfVlODE1wP5qjWwMN2Hk0SO3m3p+CCjSgQ8N5ejxCU5ItNhuEJB1tsz ArhtbLtk35381v0XOoaAAPMbXlVHWFoon/9+9vuol5bCGv49RCd9C7G8U4mM8VYbInhN G74w== X-Gm-Message-State: AC+VfDxh2Ev2I6s2d2Ik193KJ/fa/6GGmi+0pbHXTnQMk/jMMFDd4/dE wrDUAiOGyEy5LqE56zUjMbDyoQ== X-Received: by 2002:a05:6a00:23c7:b0:63d:2f13:200 with SMTP id g7-20020a056a0023c700b0063d2f130200mr18310565pfc.16.1684835244458; Tue, 23 May 2023 02:47:24 -0700 (PDT) Received: from localhost.localdomain ([139.177.225.230]) by smtp.gmail.com with ESMTPSA id 22-20020aa79116000000b0063b898b3502sm5457216pfh.153.2023.05.23.02.47.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 May 2023 02:47:23 -0700 (PDT) From: Abel Wu To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Simon Horman , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Abel Wu Subject: [PATCH v3 4/5] sock: Consider memcg pressure when raising sockmem Date: Tue, 23 May 2023 17:46:51 +0800 Message-Id: <20230523094652.49411-5-wuyun.abel@bytedance.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20230523094652.49411-1-wuyun.abel@bytedance.com> References: <20230523094652.49411-1-wuyun.abel@bytedance.com> 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,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766679080759744902?= X-GMAIL-MSGID: =?utf-8?q?1766679080759744902?= 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..b899e0b9feda 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -2976,22 +2976,31 @@ EXPORT_SYMBOL(sk_wait_data); int __sk_mem_raise_allocated(struct sock *sk, int size, int amt, int kind) { bool memcg_charge = mem_cgroup_sockets_enabled && sk->sk_memcg; + bool charged = true, pressured = false; struct proto *prot = sk->sk_prot; - bool charged = true; 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 Tue May 23 09:46:52 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Abel Wu X-Patchwork-Id: 97947 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2023969vqo; Tue, 23 May 2023 03:08:50 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6myMra9btwCCOehygnAxKwzWVYiFxt/ecSxgUwwDpZOLbDVlVdkrsew54AJmhzM3P+n6iO X-Received: by 2002:a05:6a00:1487:b0:64f:3fc8:5d26 with SMTP id v7-20020a056a00148700b0064f3fc85d26mr2585182pfu.9.1684836529948; Tue, 23 May 2023 03:08:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684836529; cv=none; d=google.com; s=arc-20160816; b=qUQotYLOQP0vO0xTnKzjTO7rDIbTbIbLwbJLSH0r6RQl2HDVkZylpgIoUwFfD4BVMc K8Zc4JzPDf5Qr0VR8+Uv6/pVyMdWTB+aRkC5lZx7jpse9OCa6VbdTMFin/2HAiv0iqNP uD9rAp+5JDuavchEfaNq29n9cXlKj+UWDK8VgaijlI3uxpGBmePjCMFn/xfKuhnFsh4s vHKm+Yu5kx5ZnIaM0OHfPW2JutL/YfMZuxbvvA/CtGfoYa+Hgl8eUekS5so7tqKQEwfC IYzZdjMjVen1yF5Al2icyWjq0proDhQAmH2eOvbHYSaakL8AUape1IFQMMT767Ab69gb h06g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=bJNRFp1URkkAv14Fvh/BUBB9PNFK79930mw7UGuUDQY=; b=M6yZGRBT+ylyu2284H55jbOIrClkcn7TGbQGkGALfrwhJxYlnJYA7S50y0s663B47a eLkNXAv5K8PUY/kyd5n7IpWrDLTjXqDKxkuVE+EyOZJqzBZfGNwYKZy2pjRhb3STlfHE /mTyRf7HPP+ogIfjo+VTozlbACOOmtRAtNdZhAxppcCUhFBxUTcBpb/h0ZPtOQS8fJAu gMWTX9F7tGNppHqCi8NoGx5liU4yfh5t6FCpZBu8S1mtNNw/I4Pq6s8fni+cQ1jvzPRb 9EgnwAUlmExTFwfVRNluTz+M9KVFrspyRo2Mq6A8yaJOwphEuNLQsVKWnT3jUWTZwpcF ZxHQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@bytedance.com header.s=google header.b=U4Qt34Z6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=bytedance.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bs184-20020a6328c1000000b005073e3342eesi1086578pgb.143.2023.05.23.03.08.34; Tue, 23 May 2023 03:08:49 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@bytedance.com header.s=google header.b=U4Qt34Z6; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=bytedance.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234741AbjEWJrg (ORCPT + 99 others); Tue, 23 May 2023 05:47:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34044 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235897AbjEWJra (ORCPT ); Tue, 23 May 2023 05:47:30 -0400 Received: from mail-pf1-x429.google.com (mail-pf1-x429.google.com [IPv6:2607:f8b0:4864:20::429]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 12EDB130 for ; Tue, 23 May 2023 02:47:29 -0700 (PDT) Received: by mail-pf1-x429.google.com with SMTP id d2e1a72fcca58-64d2c865e4eso3772268b3a.0 for ; Tue, 23 May 2023 02:47:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1684835248; x=1687427248; 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=bJNRFp1URkkAv14Fvh/BUBB9PNFK79930mw7UGuUDQY=; b=U4Qt34Z6pN6W4AL25USGqBadP06Vqhmo9JSJfVQCZc70CiJ7M0OKga9craqFE0GnI8 NLMJIANE63+DHnEOMIxX7DO2qCdEbewRVqGS/O5pO5br4bfTrc3uDxLszVxc0OgolxnV aTa3JwnkdYOcbk3XEh+RIbsrLWwrH+lxONrUG5XwpcLq7ppOwFzilXmbro7u+yhFVsMP EN7fQjzet+Sv/Ubmgtxp0XjM+pbLUo9GrvYaHYWEq6DDhhD4nRGmFih1fAPFp9SgP5jG tRmJMdYXzqa4ezGKi45YbtXY94ukxpsPSM9JKp5hSByxj0OnJRYdhlAJFFui19XBhUR6 1qkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684835248; x=1687427248; 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=bJNRFp1URkkAv14Fvh/BUBB9PNFK79930mw7UGuUDQY=; b=hW6dRd/mOd4RyxpNiooF/LZ2bnnHjWk8by+2jvzbWuKPodQENA8FlLewZjcB3Kr6MU NSUBwmJ6SVNrq2ZoXfmHGBOUpyXuBRPgskoWmntBUTIOxZDgKiYtILdWi6uXa+ydctTH BTGVePVPnurlQMfCBywy4G6k9BjBLl9615CJBy9yZWbdYXP1aSm+iQ3wzj+tr1sCcR3/ O/9MEIC1INWd6zzQYgg3BxxonPYabtnVdMBgj6W0Li8XWXEUXY5xvDe6GqUo6akrVBbJ tZq08e5qz7k+ZNQz73hdp68SU/ZFWis93U9QLJtGY8PFc0PntJCVmVrr0iBzm8Vlo4te J/xQ== X-Gm-Message-State: AC+VfDz6eG2q1gGfE1rJjJn1gJnEOapHsQp3GAj05tPArThQZT478bN6 wQaEYcn08g0Ymn3Jfuc13iEPSg== X-Received: by 2002:a05:6a20:3d09:b0:10a:cbe6:69f0 with SMTP id y9-20020a056a203d0900b0010acbe669f0mr11156449pzi.10.1684835248601; Tue, 23 May 2023 02:47:28 -0700 (PDT) Received: from localhost.localdomain ([139.177.225.230]) by smtp.gmail.com with ESMTPSA id 22-20020aa79116000000b0063b898b3502sm5457216pfh.153.2023.05.23.02.47.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 May 2023 02:47:28 -0700 (PDT) From: Abel Wu To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni Cc: Simon Horman , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Abel Wu Subject: [PATCH v3 5/5] sock: Remove redundant cond of memcg pressure Date: Tue, 23 May 2023 17:46:52 +0800 Message-Id: <20230523094652.49411-6-wuyun.abel@bytedance.com> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20230523094652.49411-1-wuyun.abel@bytedance.com> References: <20230523094652.49411-1-wuyun.abel@bytedance.com> 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,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766679149325661418?= X-GMAIL-MSGID: =?utf-8?q?1766679149325661418?= Now with the previous 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 | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/net/core/sock.c b/net/core/sock.c index b899e0b9feda..b2deffb81c86 100644 --- a/net/core/sock.c +++ b/net/core/sock.c @@ -3029,9 +3029,15 @@ 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) +