Received: by 2002:a05:6358:701b:b0:131:369:b2a3 with SMTP id 27csp580134rwo; Fri, 21 Jul 2023 17:39:23 -0700 (PDT) X-Google-Smtp-Source: APBJJlEn8t2f3QBNPvfMBG0lZ35iekG6jrWAGcLy9hGNF8s8lXT04klZsY2S/F6BJTm2ybZNtYq/ X-Received: by 2002:a50:ed08:0:b0:51e:1c18:dd99 with SMTP id j8-20020a50ed08000000b0051e1c18dd99mr2810379eds.38.1689986363380; Fri, 21 Jul 2023 17:39:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689986363; cv=none; d=google.com; s=arc-20160816; b=wBFrpEdmXWkKUM9jWh5NeY9sJUMToDTTf7Gd1Y6l55EQLCa6/26aKB8RSfSpZj+Jda 10Jwcltntj53y/ZTUZdIJwkA1Jv41xxMZpxtWkwXIs2u6QZUhFOXERkblBBif4VkCo5M jiMKzoQyWCIYJxLbSPutEtrpKkTWVhiA+izHHsqnYS/co2Mkw9BcL8bkBG9L0NMxkPC/ M3TbyLLQmatKDowhcW90C29DujCpICYxCVACrkcvwyoKjljN+DRyZRRagL7I5g0L24tr Bsb7pm5AG2rF/lynztjUG6jDy1MNnSKn0/bZN3i5GbWnIuOAs2jeisY870Iuu17Jc/ni 9Vww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:dkim-signature:date; bh=A7C+8fr0BBPGVeSyRwGjl6x7NUz9yaHHzvCjQiFNnwk=; fh=4iXgJX52FQtMjCk2TzFrTBu6n0T5NOoWQ289GEZF05U=; b=ymPDVLq04RiBaHwkcqUyfOY6Qd3AhRZ45ypJof4D1UlUzoO/1qWK26LL4/9+wDq3SB h5sbnQHPEsaKHFHzyTMh3gt9WpW5CCsNyiVZ/8Zplv3Ja4gmU687uPEkuP0I1Fdl2mVq TMMNLkQW2AKsVbxuBICy3fZHJXiTXK0GJHTQNu24vvWhr/nwz6YtMFY8PfCNKEMX147/ faRAuoOTYJOvp7xTt2kzTzxkFDgWExEHAwT2YN5tLgiqauvBJMRdEwBuZWu0ZXGWO3Ji JQNul5JSE8UC8CWyiytkNbMCBX2ClHhnV4XtJEe3K85OUrsZYCFprUeqtBw9SYd/W8zf vFsA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linux.dev header.s=key1 header.b=reFwmzSJ; 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=NONE sp=NONE dis=NONE) header.from=linux.dev Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id l15-20020a056402344f00b0051defda017esi2832996edc.506.2023.07.21.17.39.00; Fri, 21 Jul 2023 17:39:23 -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=@linux.dev header.s=key1 header.b=reFwmzSJ; 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=NONE sp=NONE dis=NONE) header.from=linux.dev Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231166AbjGVA0f (ORCPT + 99 others); Fri, 21 Jul 2023 20:26:35 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:43640 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230495AbjGVA0f (ORCPT ); Fri, 21 Jul 2023 20:26:35 -0400 X-Greylist: delayed 343 seconds by postgrey-1.37 at lindbergh.monkeyblade.net; Fri, 21 Jul 2023 17:26:33 PDT Received: from out-42.mta0.migadu.com (out-42.mta0.migadu.com [91.218.175.42]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CEA65272D for ; Fri, 21 Jul 2023 17:26:33 -0700 (PDT) Date: Fri, 21 Jul 2023 17:20:39 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1689985248; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=A7C+8fr0BBPGVeSyRwGjl6x7NUz9yaHHzvCjQiFNnwk=; b=reFwmzSJKDypmXEH61HXIerGh6JIYZnQqxTMEmPW+WGdsJVV2gP66kkp6rKtbHLPm4hu0e yvBiZt6XWYSXhyo/57SYZv/ujqH6Tu6OfJrUrvcVzIB7aKgM1WpQnyOWZfA/3AOr4Recow xRrMKjl726QaHrI7xqB5PF1dcABIDi4= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Roman Gushchin To: Abel Wu Cc: "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Johannes Weiner , Michal Hocko , Shakeel Butt , Muchun Song , Andrew Morton , David Ahern , Yosry Ahmed , "Matthew Wilcox (Oracle)" , Yu Zhao , Kefeng Wang , Yafang Shao , Kuniyuki Iwashima , Martin KaFai Lau , Alexander Mikhalitsyn , Breno Leitao , David Howells , Jason Xing , Xin Long , Michal Hocko , Alexei Starovoitov , open list , "open list:NETWORKING [GENERAL]" , "open list:CONTROL GROUP - MEMORY RESOURCE CONTROLLER (MEMCG)" , "open list:CONTROL GROUP - MEMORY RESOURCE CONTROLLER (MEMCG)" Subject: Re: [PATCH RESEND net-next 1/2] net-memcg: Scopify the indicators of sockmem pressure Message-ID: References: <20230711124157.97169-1-wuyun.abel@bytedance.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230711124157.97169-1-wuyun.abel@bytedance.com> X-Migadu-Flow: FLOW_OUT 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_BLOCKED, 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 On Tue, Jul 11, 2023 at 08:41:43PM +0800, Abel Wu wrote: > Now there are two indicators of socket memory pressure sit inside > struct mem_cgroup, socket_pressure and tcpmem_pressure. Hi Abel! > When in legacy mode aka. cgroupv1, the socket memory is charged > into a separate counter memcg->tcpmem rather than ->memory, so > the reclaim pressure of the memcg has nothing to do with socket's > pressure at all. But we still might set memcg->socket_pressure and propagate the pressure, right? If you're changing this, you need to provide a bit more data on why it's a good idea. I'm not saying the current status is perfect, but I think we need a bit more justification for this change. > While for default mode, the ->tcpmem is simply > not used. > > So {socket,tcpmem}_pressure are only used in default/legacy mode > respectively. This patch fixes the pieces of code that make mixed > use of both. > > Signed-off-by: Abel Wu > --- > include/linux/memcontrol.h | 4 ++-- > mm/vmpressure.c | 8 ++++++++ > 2 files changed, 10 insertions(+), 2 deletions(-) > > diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h > index 5818af8eca5a..5860c7f316b9 100644 > --- a/include/linux/memcontrol.h > +++ b/include/linux/memcontrol.h > @@ -1727,8 +1727,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 (!cgroup_subsys_on_dfl(memory_cgrp_subsys) && memcg->tcpmem_pressure) > - return true; > + if (!cgroup_subsys_on_dfl(memory_cgrp_subsys)) > + return !!memcg->tcpmem_pressure; So here you can have something like if (cgroup_subsys_on_dfl(memory_cgrp_subsys)) { do { if (time_before(jiffies, READ_ONCE(memcg->socket_pressure))) return true; } while ((memcg = parent_mem_cgroup(memcg))); } else { return !!READ_ONCE(memcg->socket_pressure); } And, please, add a bold comment here or nearby the socket_pressure definition that it has a different semantics in the legacy and default modes. Overall I think it's a good idea to clean these things up and thank you for working on this. But I wonder if we can make the next step and leave only one mechanism for both cgroup v1 and v2 instead of having this weird setup where memcg->socket_pressure is set differently from different paths on cgroup v1 and v2. Thanks!