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 X-Spam-Level: X-Spam-Status: No, score=-16.6 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1A3C4C433E0 for ; Fri, 19 Mar 2021 16:39:16 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id B623161936 for ; Fri, 19 Mar 2021 16:39:15 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B623161936 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=bytedance.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id 592A08D0014; Fri, 19 Mar 2021 12:39:15 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 542226B008C; Fri, 19 Mar 2021 12:39:15 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3BC968D0014; Fri, 19 Mar 2021 12:39:15 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0059.hostedemail.com [216.40.44.59]) by kanga.kvack.org (Postfix) with ESMTP id 244A36B008A for ; Fri, 19 Mar 2021 12:39:15 -0400 (EDT) Received: from smtpin03.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id E25F6A768 for ; Fri, 19 Mar 2021 16:39:14 +0000 (UTC) X-FDA: 77937183828.03.047F302 Received: from mail-pg1-f177.google.com (mail-pg1-f177.google.com [209.85.215.177]) by imf11.hostedemail.com (Postfix) with ESMTP id DA16A2000390 for ; Fri, 19 Mar 2021 16:39:06 +0000 (UTC) Received: by mail-pg1-f177.google.com with SMTP id m3so4043633pga.1 for ; Fri, 19 Mar 2021 09:39:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=EXGZ6vDG2a1eZeTzRSZB0jHuhMCuUpF3ItkaVaacSL8=; b=p7Y0nmmY5gp4ASuWh5hZmoWDSRrfcJZeWv6p/KSmtuKv7nZ21+azoq3I/s4Ij5Xx14 IRkgxHEf7kksT7v1/fZ8TEC4Nmx+tP6gmhhGb9lcv4Kxr/o/e8DsYhpLt5CMGMJterX9 ROFVTMT1IZtAkzrpW9saiD/E3ANHjzYINBid2I2x2URuIXZHvhJfOxCSqqMruh0COux8 Uy8ejr7QAHfIMoGRsGpumyeHP4ILai4ijNONHUwxwcZJsGEW/BLf0qIKe9NQ4u2B1Z+b s0HJ67rK77lXXUM/HwlX9pYTjWMvcCc2CguiDQ0Wi5IRwwu7d6h64ZQYzeYVxNPNC6BP oT0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=EXGZ6vDG2a1eZeTzRSZB0jHuhMCuUpF3ItkaVaacSL8=; b=eNi0ov8HK1UY3s14q922XbnIs4KjBjplaDDInsXSZwRtgki8SdHQ9GMWl55bDcRaGP W29xorvrPYQ8kAwkLDCVWYqjN31acxy+SiGYsH2ChxuSTP2KzrO1PD4Cv1pc4j9LEMot XHZZvbmxH8bxnA0yI4y5YY/pVLtTGP6igYXlHLPYbahPsklVUrAVbVC7e9p2mcHkCJx0 jizboxQ1mGgqJN3MtWOMNF1AY3UPGqQuc93HKRSB32nlWS4SM7XJtmNa0PMTgVlVyqfB zzMv0YMX926gsIICmUM63UcszZcaBeXJTBZ4TJR1bZ05pTpbfqAyO+EJW3CiziQ6yfK7 tqfQ== X-Gm-Message-State: AOAM5334kz3fN7Xr9BIoh22/oCy9LgHc1IpGFt469B7umtCIc0FpfMTU UJbynhJc6fAxN8npMuYzrLEQsmApEK8n6Qlx X-Google-Smtp-Source: ABdhPJyhh2n5LgD32ubXUuyzP9bBzi7XNR7Nflj4NX51VQzHo76y7TCe9A8AahIe1urtB+xZFvKoxg== X-Received: by 2002:a63:4421:: with SMTP id r33mr12025068pga.247.1616171930332; Fri, 19 Mar 2021 09:38:50 -0700 (PDT) Received: from localhost.bytedance.net ([139.177.225.231]) by smtp.gmail.com with ESMTPSA id z25sm5860239pfn.37.2021.03.19.09.38.46 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Fri, 19 Mar 2021 09:38:50 -0700 (PDT) From: Muchun Song To: guro@fb.com, hannes@cmpxchg.org, mhocko@kernel.org, akpm@linux-foundation.org, shakeelb@google.com, vdavydov.dev@gmail.com Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, duanxiongchun@bytedance.com, Muchun Song Subject: [PATCH v5 3/7] mm: memcontrol: directly access page->memcg_data in mm/page_alloc.c Date: Sat, 20 Mar 2021 00:38:16 +0800 Message-Id: <20210319163821.20704-4-songmuchun@bytedance.com> X-Mailer: git-send-email 2.21.0 (Apple Git-122) In-Reply-To: <20210319163821.20704-1-songmuchun@bytedance.com> References: <20210319163821.20704-1-songmuchun@bytedance.com> MIME-Version: 1.0 X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: DA16A2000390 X-Stat-Signature: 979j9n79bajiiy7w9zr9yk59cqmymtgt Received-SPF: none (bytedance.com>: No applicable sender policy available) receiver=imf11; identity=mailfrom; envelope-from=""; helo=mail-pg1-f177.google.com; client-ip=209.85.215.177 X-HE-DKIM-Result: pass/pass X-HE-Tag: 1616171946-296295 Content-Transfer-Encoding: quoted-printable 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: The page_memcg() is not suitable for use by page_expected_state() and page_bad_reason(). Because it can BUG_ON() for the slab pages when CONFIG_DEBUG_VM is enabled. As neither lru, nor kmem, nor slab page should have anything left in there by the time the page is freed, what we care about is whether the value of page->memcg_data is 0. So just directly access page->memcg_data here. Signed-off-by: Muchun Song Acked-by: Johannes Weiner Reviewed-by: Shakeel Butt --- mm/page_alloc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mm/page_alloc.c b/mm/page_alloc.c index f10966e3b4a5..e5454b85a106 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -1124,7 +1124,7 @@ static inline bool page_expected_state(struct page = *page, if (unlikely((unsigned long)page->mapping | page_ref_count(page) | #ifdef CONFIG_MEMCG - (unsigned long)page_memcg(page) | + page->memcg_data | #endif (page->flags & check_flags))) return false; @@ -1149,7 +1149,7 @@ static const char *page_bad_reason(struct page *pag= e, unsigned long flags) bad_reason =3D "PAGE_FLAGS_CHECK_AT_FREE flag(s) set"; } #ifdef CONFIG_MEMCG - if (unlikely(page_memcg(page))) + if (unlikely(page->memcg_data)) bad_reason =3D "page still charged to cgroup"; #endif return bad_reason; --=20 2.11.0