Received: by 2002:a25:c205:0:0:0:0:0 with SMTP id s5csp3922405ybf; Tue, 3 Mar 2020 15:55:16 -0800 (PST) X-Google-Smtp-Source: ADFU+vu9rOWBfwDbQZ+EtiXM9j9+hf8JjtUVa2enxcHJwNoO58yWou0HPakyoC3zw2Ke1Q4/DyCi X-Received: by 2002:aca:4b47:: with SMTP id y68mr15496oia.38.1583279716094; Tue, 03 Mar 2020 15:55:16 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1583279716; cv=none; d=google.com; s=arc-20160816; b=g1anv91JIbPo9qlOvsNbZThVCtmTvu69Z6APMTRLAIjIjvTTa2oG51YFJCZjUvK60n 7hC+nDHOu/dux6X0jM2+/2u388d0DsEcDY8mQcBYVWFdjHDjrtCvxAec2mIlY8nhOvr7 x34mrJoXqTWK9D9HbuxgAXdknycjFrx1cyl65fkVlmHUhZVMsdRA35USURLQx7MYaM+F Sv+jRrm8mptnZgswmOC/1hP6eMGe5QnS+iFjTvUDYlW4cp0aBtPWivXqfHlkEHlV8yS4 1zm7DB+OvPd5VIvQzxVfXYSMZthgRQPqe9xXuLhvKFrTaw7nIi/jrn/2mBXsvcvtc4s3 mIqw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=U/AZ7U0KHmcr9QXvwZlQmeLdBD0j8SEt/BJmgUku3Ig=; b=FUGhdfXs3TKV63WYOOP/A7qQ4VPclyK6iOgTdKTgejhXgmLwRrsSwAGe7Wmcc6xzzg iZRTJiBTeGM2ylkF7Biw5hIyM9BzBMhvugAjpN3Kaw2kvlXQ9mUzgWVVQoCY6FvEZFHd vx2MAz1bRYgkvT1uLJ9vKoLlsqCBwusJjm0MDVlCQM2brHX7OGCYm1kWaTHCRFFoZZjT bNh4JGnV4kP2ZKGDVpjgNLOMQwOZr73dsCEXmLvwPKWgu6Cpc0Ly2mk/joQgqBClzUgp ixb6CHZrfRSZIibXSBvMEiHhzOzHIdIa/LdEmZUvDsJWqFJYZxdJkcqmtevTiQ9ldcqh 2Zag== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=BuPLToiB; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k23si82463otb.210.2020.03.03.15.55.04; Tue, 03 Mar 2020 15:55:16 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=BuPLToiB; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728107AbgCCXyh (ORCPT + 99 others); Tue, 3 Mar 2020 18:54:37 -0500 Received: from mail-oi1-f194.google.com ([209.85.167.194]:46330 "EHLO mail-oi1-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727707AbgCCXyh (ORCPT ); Tue, 3 Mar 2020 18:54:37 -0500 Received: by mail-oi1-f194.google.com with SMTP id a22so194280oid.13 for ; Tue, 03 Mar 2020 15:54:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=U/AZ7U0KHmcr9QXvwZlQmeLdBD0j8SEt/BJmgUku3Ig=; b=BuPLToiByk/bx7Wu2BMsoB3elyNG+L/DRg5LKFbkWa6X6b0EwIvfkdejfsQ5zJmGk7 aI0NT/6ojh5joNirrWv/cYnjAZKUHbUxjodu3BQBfXaOlnxsaDgcZmgz33RuCyOl41N6 ApY08xTTc5Pp82cNM848Bd1K7V/F2GoBZFsDbxeHv5jv2aKG5bxfNwFCTKn+zdj/baC1 lEQ6mtT1ul2femrlG0iGDgfCwSQAkTMRDzBCTCEE5dAOJtPCPZYvK8pQ/mu7/OhBNNsz aIcphStoDNK76S5JPz/wdMl7GkLFrbrruHkrHPsu1/oT8QYdMs4VimVxtYIn5KsKOclI 2Gaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=U/AZ7U0KHmcr9QXvwZlQmeLdBD0j8SEt/BJmgUku3Ig=; b=CTHng49JN71PnfSa8vBMhfAV7nHrUBmgWyFc5DTg1HJMqXJ9Rce4X9n7LjGHwnDlEr HXFJPIjUUc/nFh9z9BZjllhJcKPcbrfUJgOmgvmJTVf2ptnurla2R71BjpH/fDrw6SCM KxOu0A1fBD+uU2PjtC0PWd1nOsoG5Xirx3jDfip3woNEPykWG4atcXwspeeQkncWaACU eqUC0Z0VXnXeDUUl2WJQsoXRgK4pxZC7jgu0oTkpKSssrCcnNJ9AVX55S3Ab7Mvvzvpf IgMtWIJyHX26yBB7tdtMQVwOxNMzQd3RxY+LQLWAHKgoP4Nxq2nBKOddhYHG7jYU9DG+ vFoQ== X-Gm-Message-State: ANhLgQ36O6Xun1XkhQTdo51dfxolb9t4r7mQI+NWK0syw4orflgv/unE MrS/EM75rgqw2gi9FxU2wIRGZSeCldD977XlVywDAQ== X-Received: by 2002:aca:3bc6:: with SMTP id i189mr6540oia.142.1583279675263; Tue, 03 Mar 2020 15:54:35 -0800 (PST) MIME-Version: 1.0 References: <20200303233550.251375-1-guro@fb.com> In-Reply-To: <20200303233550.251375-1-guro@fb.com> From: Shakeel Butt Date: Tue, 3 Mar 2020 15:54:24 -0800 Message-ID: Subject: Re: [PATCH] mm: fork: fix kernel_stack memcg stats for various stack implementations To: Roman Gushchin Cc: Andrew Morton , Johannes Weiner , Michal Hocko , Linux MM , Kernel Team , LKML , Bharata B Rao , stable@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Mar 3, 2020 at 3:36 PM Roman Gushchin wrote: > > Depending on CONFIG_VMAP_STACK and the THREAD_SIZE / PAGE_SIZE ratio > the space for task stacks can be allocated using __vmalloc_node_range(), > alloc_pages_node() and kmem_cache_alloc_node(). In the first and the > second cases page->mem_cgroup pointer is set, but in the third it's > not: memcg membership of a slab page should be determined using the > memcg_from_slab_page() function, which looks at > page->slab_cache->memcg_params.memcg . In this case, using > mod_memcg_page_state() (as in account_kernel_stack()) is incorrect: > page->mem_cgroup pointer is NULL even for pages charged to a non-root > memory cgroup. > > It can lead to kernel_stack per-memcg counters permanently showing 0 > on some architectures (depending on the configuration). > > In order to fix it, let's introduce a mod_memcg_obj_state() helper, > which takes a pointer to a kernel object as a first argument, uses > mem_cgroup_from_obj() to get a RCU-protected memcg pointer and > calls mod_memcg_state(). It allows to handle all possible > configurations (CONFIG_VMAP_STACK and various THREAD_SIZE/PAGE_SIZE > values) without spilling any memcg/kmem specifics into fork.c . > > Note: this patch has been first posted as a part of the new slab > controller patchset. This is a slightly updated version: the fixes > tag has been added and the commit log was extended by the advice > of Johannes Weiner. Because it's a fix that makes sense by itself, > I'm re-posting it as a standalone patch. > > Fixes: 4d96ba353075 ("mm: memcg/slab: stop setting page->mem_cgroup pointer for slab pages") > Signed-off-by: Roman Gushchin Reviewed-by: Shakeel Butt