Received: by 2002:a05:6359:c8b:b0:c7:702f:21d4 with SMTP id go11csp24651rwb; Mon, 26 Sep 2022 08:51:09 -0700 (PDT) X-Google-Smtp-Source: AMsMyM61XqgxDy/rXMBs4nePV11jtjyi9Sh914BXP2Tnm2H2Zyb9Q5F3QrD6zUaEAujn2kpEJqYX X-Received: by 2002:a05:6a00:2491:b0:544:2599:6f08 with SMTP id c17-20020a056a00249100b0054425996f08mr24064299pfv.47.1664207469632; Mon, 26 Sep 2022 08:51:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1664207469; cv=none; d=google.com; s=arc-20160816; b=sKzXNp5vzTyimIVhXYfSOCsbchTDRP2zInAiecGEfOI/Qyu3q7A90BjfE/Qln8X3AW iV9m3QoWW1K1vamEN172AnRtBy+RsXectRBIL5f3s+oTkAB1p6v8NTGStDXNDzUPMZAy 5AKxzBsxjigu3lIp2TWQz3FVjz2spfBcqY++8EgAkasBWmGYKYJNxOpe72a53XIQpDL+ 2y5X08x5FV3SnG2ixpg2OZqpxsehL8p5esmMeEuH04xlkPrnf12Ox3sv0OfrQqDw+qdy oCqytO11tYf1ftAZ417RGg9Er8Wrkw66drvO6pewcJpg1P3LqxAIYEe9ocAHgsbxHrhb 9f9g== 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=+6iJEmxp4bl9ohblP/ldB8IdtUPtHQigooDS1dl/Wc4=; b=JZxF3hJI1S4MIWBs9vigjTs1aPcRIH1NjepiclIPGnCi1v17pF96n25yz6l4paMh0X Cgv4JLVaOXAvswSIqUuaFFQiiY9tUeARiI10806ViORT4qFH7p+9+KploAbD6WYSO4nt XgULo5IwhQHeFkSbormZdWyUfFjWBa8UmzXxdJFPeuyW8v9uVUjSee/bXB7H8ZlashrK qtdgJMxlcz/sgH37l8WXZbkHhz4gC34ygr3FgzOoDOr/hVCvnRFhsG07Y39k48i41tz+ PeaIR9BCyYyEv00xxHqwXQ8Oe318h+5fgiQBnIXFi9F8PlL1EdJU4aD28+WpKC8ebBXH zjlg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@cmpxchg-org.20210112.gappssmtp.com header.s=20210112 header.b=etTRTh75; 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=fail (p=NONE sp=NONE dis=NONE) header.from=cmpxchg.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h69-20020a638348000000b0043cc90bd90fsi1684639pge.254.2022.09.26.08.50.57; Mon, 26 Sep 2022 08:51:09 -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=@cmpxchg-org.20210112.gappssmtp.com header.s=20210112 header.b=etTRTh75; 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=fail (p=NONE sp=NONE dis=NONE) header.from=cmpxchg.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236027AbiIZPPC (ORCPT + 99 others); Mon, 26 Sep 2022 11:15:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55958 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236212AbiIZPOR (ORCPT ); Mon, 26 Sep 2022 11:14:17 -0400 Received: from mail-qv1-xf2f.google.com (mail-qv1-xf2f.google.com [IPv6:2607:f8b0:4864:20::f2f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BB35B3FA22 for ; Mon, 26 Sep 2022 06:57:14 -0700 (PDT) Received: by mail-qv1-xf2f.google.com with SMTP id y9so4337372qvo.4 for ; Mon, 26 Sep 2022 06:57:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20210112.gappssmtp.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date; bh=+6iJEmxp4bl9ohblP/ldB8IdtUPtHQigooDS1dl/Wc4=; b=etTRTh75O0L4i1MKIV2WPz590yQ569uvsT2rLsbPXxXGZXz2RBYFV5wchPr7zQK5tL oKGHX2usHRR86OnURr2MSY5OsLn+FPSGi0cWEjYbrBecrnPDlDdIsXtPuhTteUv6OR3a j1i0QT1+oNdpUtMM/f4xY4B9BSZJNunaqZhsqJn+WVGvKfDDTfgT/MCt1pQVZ+y3Ehma DketzHiCsnHYz+XZLjsvaxacOFveJcQ5rSZm/TZuvbXYyQtmkhekX4aNfwoyTdpAqF0J d0qnwZlfllTz+GnXoV8iFQtjUTzGkfeExjCA+2BCn5FZUQiquYNkxnmPLs4fEq73CRFc SvGA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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; bh=+6iJEmxp4bl9ohblP/ldB8IdtUPtHQigooDS1dl/Wc4=; b=sNDpDq8lE/Rc/+Tn7jncqUVJGmOHAWeuFOw6+amEhxifKaL6lwQGp8nNDRpPNDIAjs ebiX1qLRDw3JNLMJ1yaQF9t53avpO//WiJFh1bK7xQhM20/+lgFE5tvVVFxh7BYqC/zG pyS4ZRAwXG4/zlFzBJ1XvIFErMWrX3iBLTetbG8vgbTLOvmbJ/s1dVzx4FT2R+Hz2s0H wUm332UcKqj5u7JY7mO3u2gUD+Q4oCW2AndFOXsDIPaRhLKLhDsMKzcfUbM5JXlYlDvi WMA5pq7e4FwCry+AcQxIikBx+JZPdhhSU28Yjiwu5VICcA4fLmjNnHRYJMyNfKj5FVay 6UTQ== X-Gm-Message-State: ACrzQf19cXuNOc6SuPRUYIaEFEiFSusk7e4DR2lHAuKx6RPRJ6c8zrvG wjx2N3Uw6tYpXDAT2pXvfteLhA== X-Received: by 2002:a05:6214:27c6:b0:4ac:94f9:c727 with SMTP id ge6-20020a05621427c600b004ac94f9c727mr17339942qvb.51.1664200633825; Mon, 26 Sep 2022 06:57:13 -0700 (PDT) Received: from localhost (2603-7000-0c01-2716-9175-2920-760a-79fa.res6.spectrum.com. [2603:7000:c01:2716:9175:2920:760a:79fa]) by smtp.gmail.com with ESMTPSA id h7-20020ac85047000000b0035d0520db17sm10745315qtm.49.2022.09.26.06.57.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 26 Sep 2022 06:57:13 -0700 (PDT) From: Johannes Weiner To: Andrew Morton Cc: Shakeel Butt , Michal Hocko , Roman Gushchin , Hugh Dickins , linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/4] mm: memcontrol: don't allocate cgroup swap arrays when memcg is disabled Date: Mon, 26 Sep 2022 09:57:01 -0400 Message-Id: <20220926135704.400818-2-hannes@cmpxchg.org> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20220926135704.400818-1-hannes@cmpxchg.org> References: <20220926135704.400818-1-hannes@cmpxchg.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS 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 Since commit 2d1c498072de ("mm: memcontrol: make swap tracking an integral part of memory control"), the cgroup swap arrays are used to track memory ownership at the time of swap readahead and swapoff, even if swap space *accounting* has been turned off by the user via swapaccount=0 (which sets cgroup_memory_noswap). However, the patch was overzealous: by simply dropping the cgroup_memory_noswap conditionals in the swapon, swapoff and uncharge path, it caused the cgroup arrays being allocated even when the memory controller as a whole is disabled. This is a waste of that memory. Restore mem_cgroup_disabled() checks, implied previously by cgroup_memory_noswap, in the swapon, swapoff, and swap_entry_free callbacks. Fixes: 2d1c498072de ("mm: memcontrol: make swap tracking an integral part of memory control") Reported-by: Hugh Dickins Signed-off-by: Johannes Weiner Reviewed-by: Shakeel Butt Acked-by: Hugh Dickins Acked-by: Michal Hocko --- mm/memcontrol.c | 3 +++ mm/swap_cgroup.c | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 6b74bbdc2659..9e3c010ca676 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -7459,6 +7459,9 @@ void __mem_cgroup_uncharge_swap(swp_entry_t entry, unsigned int nr_pages) struct mem_cgroup *memcg; unsigned short id; + if (mem_cgroup_disabled()) + return; + id = swap_cgroup_record(entry, 0, nr_pages); rcu_read_lock(); memcg = mem_cgroup_from_id(id); diff --git a/mm/swap_cgroup.c b/mm/swap_cgroup.c index 5a9442979a18..db6c4a26cf59 100644 --- a/mm/swap_cgroup.c +++ b/mm/swap_cgroup.c @@ -170,6 +170,9 @@ int swap_cgroup_swapon(int type, unsigned long max_pages) unsigned long length; struct swap_cgroup_ctrl *ctrl; + if (mem_cgroup_disabled()) + return 0; + length = DIV_ROUND_UP(max_pages, SC_PER_PAGE); array = vcalloc(length, sizeof(void *)); @@ -204,6 +207,9 @@ void swap_cgroup_swapoff(int type) unsigned long i, length; struct swap_cgroup_ctrl *ctrl; + if (mem_cgroup_disabled()) + return; + mutex_lock(&swap_cgroup_mutex); ctrl = &swap_cgroup_ctrl[type]; map = ctrl->map; -- 2.37.3