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 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id A71F4EB64DD for ; Sat, 22 Jul 2023 00:20:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BBEE28D0002; Fri, 21 Jul 2023 20:20:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B6F778D0001; Fri, 21 Jul 2023 20:20:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A0FDE8D0002; Fri, 21 Jul 2023 20:20:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 911408D0001 for ; Fri, 21 Jul 2023 20:20:52 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 5D2718028B for ; Sat, 22 Jul 2023 00:20:52 +0000 (UTC) X-FDA: 81037342344.16.733C40D Received: from out-54.mta0.migadu.com (out-54.mta0.migadu.com [91.218.175.54]) by imf20.hostedemail.com (Postfix) with ESMTP id 5FCF61C0022 for ; Sat, 22 Jul 2023 00:20:50 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=reFwmzSJ; spf=pass (imf20.hostedemail.com: domain of roman.gushchin@linux.dev designates 91.218.175.54 as permitted sender) smtp.mailfrom=roman.gushchin@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689985250; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=A7C+8fr0BBPGVeSyRwGjl6x7NUz9yaHHzvCjQiFNnwk=; b=HmUBUw/A+6ChDxXaETX1L7c4lNyU4m/mIh0wFvwV9WmzQykrsEyt7sbq0LpLo1WCL5tyLQ fxzjI1QN9Ftk1dsVU+TulOCjUg4349uA2WbER4TOAgbr8OPRV5+OJPzFI3HqBeP8MNh9zy xMQ0KKwnbhYkDfO/jPxicXSvKjMzmbY= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689985250; a=rsa-sha256; cv=none; b=JAMh8sPkGNJeZ8DRLJgUjOxXR9Q09wqjT9HBcwMHD8xXQBDfibhouEoNF2hXYXtVh93Jip BUztAuwBmVLuU8MUcZ66zNCPW3znRP8AeosF9Otg82Lo62480Dpl05LimRLN4YSOI1i0Da Bp6ht0IIn/WGygBhvRJCPcrAM71EifI= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=reFwmzSJ; spf=pass (imf20.hostedemail.com: domain of roman.gushchin@linux.dev designates 91.218.175.54 as permitted sender) smtp.mailfrom=roman.gushchin@linux.dev; dmarc=pass (policy=none) header.from=linux.dev 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-Rspamd-Queue-Id: 5FCF61C0022 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: 774z778dykoczxog5w9ietuddtpyg3p5 X-HE-Tag: 1689985250-239885 X-HE-Meta: U2FsdGVkX18DQ8jNXGfvQ/a/3Kt7yOROwcvc0YIvs8f/dMKmQd1pP811HOojoQaiGW8G+axnllzM5bnEC9asBibLQdB/G4VIzE0jANga8P8a6Te3XmF5ADxwJlektUuW+uMA65k5Er3GqlaNOII5og0AgUMzcYPxUSB9lPLDlblpDDzt79oBV23qf2d4eyOEwCnheC46mz9i/qfS7mbpB7aHZRRDt6o5m3Cuf3xjp4gaT6E+eeAH5Z7V1o4E7pIAPyoVvIAH0iMOIX9dn6ostTgmW4rvng5NLzsfgSVYwuarOfzN8LE4iZ96ZMnc4oj/yTxT4pF4xgy5kcXbCjPkuiIY8rWJkfjc8fIIyflNo6dQYGv9apIJtWBU2h8y7gN4OLvwm1tcBh2lyd1buRK/e/aN+nhSnmrJtXi5/Rh2xni40o+9IFDOkMUufFRPlD9BspMIXKAHI0BzcCGPReYzkDtwsYq1uTGkHwV/Av3gWqSLSWdPr+O65RSrkixxEl5glTiRiI4aCE9fjj+kQ9ZryZzcXjcT1b2SL6KYgzpBPdrNKghLyFSIzNDC3vTbHrMkaVzYLfKDZ1IpmwWo+hbPntwthnGgta3AOwEJGAVc5iXEtKEzsiPaDmLLPVpEibiafh4DPTcDlLPU8jwK/RxAKl+4TcJDO2FwV0X6VKQLD5hmPgw966tcXj9tfAkSzVD1M/xKV1xrKI0khC88WhNol1wUHuL+cMje24zsedWgs82g53ILHdNBLr55SeKicM3roHVNmoeJkQpMBkDNyOycVTsRyz9tE5bD4lFvbyQ7oXZQ/tmgOzPyuVKUxsx1nKK/TvoBcLN+vU0XnsvrmynWVS/cqngIwUEmtPrw348crO9AA2/Cf+VEKzB5qeuQ06e0YRfRr6cRXMAM4iKL+HOxw/kaWMLcUNhCbOpFf5GTIOhzl2V6ZxGA45W47IqP8TS0/riVIaw73BbLuOhMLUt LRP0bBis dhZM9NJQlShqvpRFOs1HaDYB2TcBWl/fQdbQdOm1mGiJq69j9QHoEab6LkA7b9WZaVacVAy0Q1WIdUgSjRd0n8s8AD9r7bGDHBSBjwzT3r0QkcVX4eRsH1knUEX2cZ8mBEgtu5dfi6MIF5tmjcT+x+ZKsVcIxJx64prDxjkLI+cP7wnmW5cIGC39Lw7CrdJroYXe1207Dr0A2d6n/cdS5a7Rok0aeJN2cOOSbmqWsfoavaRLxW5LHZ4k1gHtRk+RmguPE4pD4tKqF3sU= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: 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!