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 67E6AC433EF for ; Wed, 22 Dec 2021 04:15:48 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 526776B0072; Tue, 21 Dec 2021 23:15:47 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 4D6816B0073; Tue, 21 Dec 2021 23:15:47 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 39ED56B0074; Tue, 21 Dec 2021 23:15:47 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0198.hostedemail.com [216.40.44.198]) by kanga.kvack.org (Postfix) with ESMTP id 2AED86B0072 for ; Tue, 21 Dec 2021 23:15:47 -0500 (EST) Received: from smtpin14.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay01.hostedemail.com (Postfix) with ESMTP id C84F4180ED7B4 for ; Wed, 22 Dec 2021 04:15:46 +0000 (UTC) X-FDA: 78944116692.14.6B2E492 Received: from mail-yb1-f176.google.com (mail-yb1-f176.google.com [209.85.219.176]) by imf17.hostedemail.com (Postfix) with ESMTP id A8C504001B for ; Wed, 22 Dec 2021 04:15:34 +0000 (UTC) Received: by mail-yb1-f176.google.com with SMTP id v138so2639347ybb.8 for ; Tue, 21 Dec 2021 20:15:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance-com.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=oT+RbBLIKBM3vSkjIiPDbKf1O19T4rONwiomV1ipgfI=; b=QwKty6KWq5QMJhxZgV567EepaUUUIwOFMs5BeJbBS0f5BckTQ5+BTONi3lkFwADjkG zBGepaxWiNFeFzsK/dhoTvQmhmD0A7KpKQTS8GR7vkXVddxkLAV4l5SNA7I6sW2UKdD3 4Xlir1PTb2U1VbwXkMBOBZrVmHnGDtLYgr0z2Q0wtLCfZUHzCtr4QZSayNKSaozRxQSM RquTb1SyUXkYIba4zpVA83yfbtKUkeEOiNbka8Y3pTTUlntE+ZHGH/QXIk8M0f/+8HhC C17peu3BWACBAwClIjy4VyE+4mhMk83kC9TX7pYzyRTsyTHnCsId2XMGhcuK0QDfpv/B wi/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=oT+RbBLIKBM3vSkjIiPDbKf1O19T4rONwiomV1ipgfI=; b=jYlVj65FoInMyV1ZNN9egHEe2Nq9TaW7eOSCaiviin9FaZPa6LOV4ttDhIoLDJgDWQ hPG99aZiIjt+T3rmmL3o7zNTJ9P/i29HErHMpsL/MUxUqd7TIqxzcAMnKPO50zCEsdYf MuvydDyGwJE1Dg9KWSorRsqHNs8Fzkqr/HGvuSoeo8uKP0kWM5Jf6rWmFeFF0amZexsg HrreiXpCNseA0FvQQzk/rUcII58lZe2lTII1zPD2CUUlNYZXgQgWM1VbIh7eiNN7gxCQ xTq79mO6uhxy8BShahIs8H18VrsTwdq11h9VnFhBwkdSrM0G+/Hub5qM8794Tz7kv38z 5b0Q== X-Gm-Message-State: AOAM533EFcQL2ejBdn1FWzdszXEkLN2GU1aRp4hluWkMMm3tOjzZdjQb TEyXAxtPc00gfXPsZPq9DC5mZAOn04cXiWkM8B8pVA== X-Google-Smtp-Source: ABdhPJxEreUxQzxG3beGM0FkO7SavVLYSkzAZUjm7CNoqM8DtvTGGhIPrrESNts0JTPFLbe8/IGM3roquR08dZOBYQw= X-Received: by 2002:a25:e541:: with SMTP id c62mr1910542ybh.199.1640146544767; Tue, 21 Dec 2021 20:15:44 -0800 (PST) MIME-Version: 1.0 References: <20211221215336.1922823-1-shakeelb@google.com> In-Reply-To: <20211221215336.1922823-1-shakeelb@google.com> From: Muchun Song Date: Wed, 22 Dec 2021 12:15:06 +0800 Message-ID: Subject: Re: [PATCH] memcg: add per-memcg vmalloc stat To: Shakeel Butt Cc: Johannes Weiner , Michal Hocko , Roman Gushchin , Andrew Morton , Linux Memory Management List , LKML Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: A8C504001B X-Stat-Signature: waedfs77ryhz4pbgadhif7aeawojn9hi Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=bytedance-com.20210112.gappssmtp.com header.s=20210112 header.b=QwKty6KW; spf=pass (imf17.hostedemail.com: domain of songmuchun@bytedance.com designates 209.85.219.176 as permitted sender) smtp.mailfrom=songmuchun@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com X-Rspamd-Server: rspam10 X-HE-Tag: 1640146534-824019 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, Dec 22, 2021 at 5:53 AM Shakeel Butt wrote: > > The kvmalloc* allocation functions can fallback to vmalloc allocations > and more often on long running machines. In addition the kernel does > have __GFP_ACCOUNT kvmalloc* calls. So, often on long running machines, > the memory.stat does not tell the complete picture which type of memory > is charged to the memcg. So add a per-memcg vmalloc stat. > > Signed-off-by: Shakeel Butt > --- > Documentation/admin-guide/cgroup-v2.rst | 3 +++ > include/linux/memcontrol.h | 15 +++++++++++++++ > mm/memcontrol.c | 1 + > mm/vmalloc.c | 5 +++++ > 4 files changed, 24 insertions(+) > > diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-guide/cgroup-v2.rst > index 82c8dc91b2be..5aa368d165da 100644 > --- a/Documentation/admin-guide/cgroup-v2.rst > +++ b/Documentation/admin-guide/cgroup-v2.rst > @@ -1314,6 +1314,9 @@ PAGE_SIZE multiple when read back. > sock (npn) > Amount of memory used in network transmission buffers > > + vmalloc (npn) > + Amount of memory used for vmap backed memory. > + > shmem > Amount of cached filesystem data that is swap-backed, > such as tmpfs, shm segments, shared anonymous mmap()s > diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h > index d76dad703580..000bfad6ff69 100644 > --- a/include/linux/memcontrol.h > +++ b/include/linux/memcontrol.h > @@ -33,6 +33,7 @@ enum memcg_stat_item { > MEMCG_SWAP = NR_VM_NODE_STAT_ITEMS, > MEMCG_SOCK, > MEMCG_PERCPU_B, > + MEMCG_VMALLOC, > MEMCG_NR_STAT, > }; > > @@ -944,6 +945,15 @@ static inline void mod_memcg_state(struct mem_cgroup *memcg, > local_irq_restore(flags); > } > > +static inline void mod_memcg_page_state(struct page *page, > + int idx, int val) > +{ > + struct mem_cgroup *memcg = page_memcg(page); > + > + if (!mem_cgroup_disabled() && memcg) > + mod_memcg_state(memcg, idx, val); It's not safe to access @memcg throughout mod_memcg_state() for the kmem charged through objcg infrastructure. It's supposed to be safe to access @memcg under rcu read lock. Otherwise, it looks good to me. Thanks.