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=-6.7 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=no 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 EEC41C4727C for ; Thu, 1 Oct 2020 13:50:38 +0000 (UTC) Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.kernel.org (Postfix) with ESMTP id 6CAF220706 for ; Thu, 1 Oct 2020 13:50:38 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=cmpxchg-org.20150623.gappssmtp.com header.i=@cmpxchg-org.20150623.gappssmtp.com header.b="pnDuYOYG" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 6CAF220706 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=cmpxchg.org Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=owner-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix) id B28856B0062; Thu, 1 Oct 2020 09:50:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id AFF226B0068; Thu, 1 Oct 2020 09:50:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A3D866B006C; Thu, 1 Oct 2020 09:50:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0101.hostedemail.com [216.40.44.101]) by kanga.kvack.org (Postfix) with ESMTP id 767E96B0062 for ; Thu, 1 Oct 2020 09:50:37 -0400 (EDT) Received: from smtpin22.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay05.hostedemail.com (Postfix) with ESMTP id F047D181BC83E for ; Thu, 1 Oct 2020 13:50:36 +0000 (UTC) X-FDA: 77323491672.22.cover75_2d0c4172719c Received: from filter.hostedemail.com (10.5.16.251.rfc1918.com [10.5.16.251]) by smtpin22.hostedemail.com (Postfix) with ESMTP id CA1AB18038E6A for ; Thu, 1 Oct 2020 13:50:36 +0000 (UTC) X-HE-Tag: cover75_2d0c4172719c X-Filterd-Recvd-Size: 4430 Received: from mail-qt1-f196.google.com (mail-qt1-f196.google.com [209.85.160.196]) by imf48.hostedemail.com (Postfix) with ESMTP for ; Thu, 1 Oct 2020 13:50:36 +0000 (UTC) Received: by mail-qt1-f196.google.com with SMTP id r8so4364494qtp.13 for ; Thu, 01 Oct 2020 06:50:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cmpxchg-org.20150623.gappssmtp.com; s=20150623; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=PsNYo0YsNs8xrb+jwsnFkfkNY3CsLyZk0ScKGuwNA3c=; b=pnDuYOYGfglcjkvGnl7jBFrbKJ8RpZKHHuZehYd/d35rMyV9CwmUJWHRuWbyU5bo44 PW/dQ+z2x5uoVco+04B/wK5/Tfnf/GeE1GHF7Jbsj0uLqRVvuhRXJNC3t/rMVUNWYPWm p9OYf2feu43w8k3tnBDaHEqhXosUccAWq2leUfKTF7XTxcS0hH5G+9w7JFP/glG0jtbO gYlo9l8V1dTLSYPurIIiI7zsUbxRA5DBj6PHSjcegPjhEzkNcWMe5MZ+FS6Odw+BiueG sbcfp5ji2YSqaoH0UJcp3s0hbwqdJp8uNmV2dQFZ+eIIXMxfXvHpEJL/92fq4UFDPlig NG0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=PsNYo0YsNs8xrb+jwsnFkfkNY3CsLyZk0ScKGuwNA3c=; b=pqKe1S0mTsUkvN7kFDKCs6Rm6PFg+2PdG9rjsV6YMeqtRA3lvVR6p32+pijs/HjNy6 7Vu3Gz/k7OTA85hTuq+5yFBlWdGoYRkNjd5UflgBA/dpejXQmfae3UOiS0+yMJMoI8mf ZQcrQyW9rNCBxuvzzIYihnaxebB0wPAkmwi2gl4jkKJnIwG2mPLhQ4WWIZawMZOnXH1B i/OWxzg+oZe3FfNdMXDQhuBdfnKpyoDMphE0o98512GlzledScpNMpY2KrI51TFQKTrn OToiAqFa61RPvtG/K60RRitNRgXcTj5ZKmUeFOIFlQMf/lROQ9A5Ie3qNYNGGHw/N3Wa TU5Q== X-Gm-Message-State: AOAM532UdLUg9N0PKreLxQXx02MsovwW2wzO8bD5vQVetk1t9iaHWR7K 27FTfd/0UrsT3g5CAhmf1BW4EQ== X-Google-Smtp-Source: ABdhPJzTHRWzaoPywHudcIiE2qJDlBJY4ZDJ4ju/8kJUZOsHC+U8poTe0NHFWKD/gP0U9d++HafolQ== X-Received: by 2002:aed:2308:: with SMTP id h8mr7659240qtc.65.1601560235500; Thu, 01 Oct 2020 06:50:35 -0700 (PDT) Received: from localhost ([2620:10d:c091:480::1:4e22]) by smtp.gmail.com with ESMTPSA id p205sm5801638qke.2.2020.10.01.06.50.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 01 Oct 2020 06:50:34 -0700 (PDT) Date: Thu, 1 Oct 2020 09:48:54 -0400 From: Johannes Weiner To: Roman Gushchin Cc: Andrew Morton , Shakeel Butt , Michal Hocko , linux-kernel@vger.kernel.org, linux-mm@kvack.org, kernel-team@fb.com Subject: Re: [PATCH v4 4/4] mm: convert page kmemcg type to a page memcg flag Message-ID: <20201001134854.GF469663@cmpxchg.org> References: <20201001002710.748166-1-guro@fb.com> <20201001002710.748166-5-guro@fb.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20201001002710.748166-5-guro@fb.com> 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 Wed, Sep 30, 2020 at 05:27:10PM -0700, Roman Gushchin wrote: > PageKmemcg flag is currently defined as a page type (like buddy, > offline, table and guard). Semantically it means that the page > was accounted as a kernel memory by the page allocator and has > to be uncharged on the release. > > As a side effect of defining the flag as a page type, the accounted > page can't be mapped to userspace (look at page_has_type() and > comments above). In particular, this blocks the accounting of > vmalloc-backed memory used by some bpf maps, because these maps > do map the memory to userspace. > > One option is to fix it by complicating the access to page->mapcount, > which provides some free bits for page->page_type. > > But it's way better to move this flag into page->memcg_data flags. > Indeed, the flag makes no sense without enabled memory cgroups > and memory cgroup pointer set in particular. > > This commit replaces PageKmemcg() and __SetPageKmemcg() with > PageMemcgKmem() and an open-coded OR operation setting the memcg > pointer with the MEMCG_DATA_KMEM bit. __ClearPageKmemcg() can be > simple deleted, as the whole memcg_data is zeroed at once. > > As a bonus, on !CONFIG_MEMCG build the PageMemcgKmem() check will > be compiled out. > > Signed-off-by: Roman Gushchin Acked-by: Johannes Weiner