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 E8E4DC36010 for ; Mon, 7 Apr 2025 09:59:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 69EEE6B0005; Mon, 7 Apr 2025 05:59:41 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 64D146B0007; Mon, 7 Apr 2025 05:59:41 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 4EF206B0008; Mon, 7 Apr 2025 05:59:41 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 31C286B0005 for ; Mon, 7 Apr 2025 05:59:41 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 92D69AF0EB for ; Mon, 7 Apr 2025 09:59:41 +0000 (UTC) X-FDA: 83306800962.26.93BFB1F Received: from mail-lf1-f43.google.com (mail-lf1-f43.google.com [209.85.167.43]) by imf29.hostedemail.com (Postfix) with ESMTP id 8993412000E for ; Mon, 7 Apr 2025 09:59:39 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=d+Xr9yB+; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf29.hostedemail.com: domain of urezki@gmail.com designates 209.85.167.43 as permitted sender) smtp.mailfrom=urezki@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744019979; a=rsa-sha256; cv=none; b=lPbQ8rJuKJ4XxqP4ee/D+QpqhxaSzlp/9mO73vuOMwQMSzx7eBnNIkWxMonyTkW0Bma0s0 NUuZArD6xVqnjHy6rIYL09KnoFWVQkW0yWqu2Tumr92XOGK374kzdM7oXhz6rH+zyO6ZTA NW90Grv8JPD15tgEG/mlEeJvntHAxbY= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=d+Xr9yB+; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf29.hostedemail.com: domain of urezki@gmail.com designates 209.85.167.43 as permitted sender) smtp.mailfrom=urezki@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744019979; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=K0eh0BHVtlD2UrTL4wqCP90wqrYXSEQ6XXq15GauWzY=; b=h/1Bj/LbCcBO+kPeOcUUnCT03WQSTpA1lhKpFBCXtFB7hIfEiuLFo15K0Ra7vlXdpZ3SaM VMc1oQ0aa5Ft+hQA3CLNLlWOjiN1wBh1hZZTAYctYcr8DVI+R2wpzoffaKbPFIHz1TZzLS 8AggtALbbPQfZyMKhsUcAckgFQrwgP4= Received: by mail-lf1-f43.google.com with SMTP id 2adb3069b0e04-5499bd3084aso3855060e87.0 for ; Mon, 07 Apr 2025 02:59:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744019978; x=1744624778; darn=kvack.org; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:from:to:cc:subject:date:message-id:reply-to; bh=K0eh0BHVtlD2UrTL4wqCP90wqrYXSEQ6XXq15GauWzY=; b=d+Xr9yB+icQNVAtQkCrjUCiTYmfvK+l2kLu0AwsoD6GWqZWbx/kB6FYFWFXgrfN2ob 2oara2SWMXPS8HLwyVSa0Yu5Kz2sad3+WJC6YRcFnesBNYKrANxJAgBRkSVbGnwlTEaI aV8veRoxYB5wkBDHnAxKbQC38s2bgH8gb4UAGRCa+QMeeky+ANbD6yu2byV1/95B4VM6 U3EC9eOlTtzoWs5KJ6xKu4B4245tZ9/YaRGFDDQQCIwJdaRRX7wGEmxBqB1LNlHftSDB puvT0RCvYZLgasnepx/TGZ9fNml1Bdp3x4o7kKyev/rN9P3fFLVqtj92QnIC20VqQywA 6K6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744019978; x=1744624778; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:date:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=K0eh0BHVtlD2UrTL4wqCP90wqrYXSEQ6XXq15GauWzY=; b=LEisp1GBMFfhHkxS2Lr78QRKDL2Cy5Lfv4Xwkb+TKbAr/SQV+8nRf2fexabg/LY7Ca ROsIIGFl272Jzlh2ZLmb/06r9VgkcKxi2JP1DJ2VX8frz9d4r9/nwZMCbqK2vi0m7Hoz yCMLWPiz+IOtPFiVbsJNpKWXC1V0XICF0mPbO8EHoX2rmUqh+nnMfQdnfrCHzTsdkw0J Ot70FI4RQqRoqR9uGpZsdbt/SsuKsFDrTFycq8jrZ6VA6XA1ou0zLjciwvx5P8GTEr/0 +wLQS8UTr6I8/C2b1X2tSGUK0kQDRIya1H21t98rFJwzYMJaTXSXUZ0c46OgblKLtDIY qPKQ== X-Forwarded-Encrypted: i=1; AJvYcCWyLzxtb5skhwau0uidVyPij75yvWKeBObwunAqcSLgXvCn2TNUX36pgg1PTPWnuAO4mgYHSFxcTQ==@kvack.org X-Gm-Message-State: AOJu0YzaxhmaD/K/YBrUrfNGjP2gRBlqZhqe2azaU5Jf0xuhaQb0mkTP 5UN+X8NMvNx6UNUNdBX67lHb6NPCticlq5KkSFlYNyWnm8jYIqZs X-Gm-Gg: ASbGnctKMT5PJ0YRyvY7MIuk4qLKvsoGsQCw0/Xw8qLrzYOccYoFxH0RcfmJVWNH/ls 0ZLqFU5vvy4GhXRxqKPdJ3iTvCvR94rPYI13r/dqHn/4gP0lTvAyPFP0FiCtILfDKNGAvuyySyd IS4Oozv1KXbc568TLLkHflGFcoTJ08ct2m57T/R1LmNSuHG0GjZPYvGYV5JwJfHpCQRQVMvumjz 2gvtRzl1Pn/4rPdmLhaPX9cxMAt7rRvtPcx9mZQ5SE2eJCCP4sQit2z6/NUW2uJZt6/9lcCasDN 4Oy6M7nDs0sOWpQXQZiiiYcWvsLMSvaonRpr+oCgI4WaGBJFgYFk0Pqrmxp8qO/RZQYSlDeTrGw = X-Google-Smtp-Source: AGHT+IHwkDMThQQsrmXdRg0APF3tkewDcz6lzlSW9TC46yLQkFuh71o2NqPbu+7kx0PyB9DUuy8YOQ== X-Received: by 2002:a05:6512:68f:b0:549:8f15:db36 with SMTP id 2adb3069b0e04-54c227ff86dmr3141200e87.51.1744019977324; Mon, 07 Apr 2025 02:59:37 -0700 (PDT) Received: from pc636 (host-90-233-203-182.mobileonline.telia.com. [90.233.203.182]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-54c1e635c7dsm1182580e87.144.2025.04.07.02.59.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Apr 2025 02:59:36 -0700 (PDT) From: Uladzislau Rezki X-Google-Original-From: Uladzislau Rezki Date: Mon, 7 Apr 2025 11:59:33 +0200 To: Shakeel Butt Cc: Uladzislau Rezki , Andrew Morton , Johannes Weiner , Michal Hocko , Roman Gushchin , Muchun Song , linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, Meta kernel team Subject: Re: [PATCH] memcg: vmalloc: simplify MEMCG_VMALLOC updates Message-ID: References: <20250403053326.26860-1-shakeel.butt@linux.dev> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: 8993412000E X-Stat-Signature: 1m7pmhu6zdjnsjnpdtmjydrs8hqzkrdj X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1744019979-848995 X-HE-Meta: U2FsdGVkX1/RK0zTcig5YcEbNg9cCvO+8S4osFFgD1gJx+eNwqLl8oWym3XCPNgfgVj/Eo5fQUszM5VNQH3VrAHMLcXyjZgsYbND7MHUDZggaj5cfv6iY1dqwPCylCLhT9vusEqoz0Y/J6BkFRjrT7lGeOFF1oQktNmMg4IUeonP1YEVUQncerNX3yPvoDByC5IwvsbKSpVBMgxWRHhZlWvHaymjbFQAt5QIdyvxpT5E9kBZjCv7tn8260ESbfdMzVHvLCRNYi3G2/wfvNz5AuYFcJSH4G5jmtumJYBzH1J+vL7kNg3Eap9q+EfjrCh8mzewqAAdAg04ADSsJ+KMvW16VZpDPhUtlo2YDrSL9ZhkH1BTrCneZbGKu8qZPCTG2XDgXhG6aRFI4rbI0oE0YnpDQIsKL6Ck6pAlOAeIWcdVi8HRTYjqkC/ceD6i52I431W+NdiK9ZVQ/4R9+cvN+ci37Sd5vB2uvIetfEK1VXek7d/VXD7tgfmUvZ4LHXbf07qkS1gnrKNUmeGPh5Cdd96QPDHIcDa/B8v/t6ApxVJTLIdLCy6jmItuYGTE8IFb+U1moWNuFrtuftcaELMcKUSOSSUHPFtXuL41mUYPXanWIkCkrK7T0H7ha0HiAk9WheUgRsjVk4OFPX3PTQOc4r+vvIW26urrjmK06HMEQeTDHDYSVgWLA0pg5Dp0DUnDF8kfZOOcQNhYjYHE1y7lIeNPu2SpylFPRZyc7lliIScpj0HTGtZS7nDnnUk4ufEiZE5yX2AJuqSfrgILnjxx8RTh5+GK2eHuO+0RTQJQW5ipVNOeASO6I9Wa0Jnlv/gn4aNEYfLZE6jJyrA43FQ+kgLUExyzKWQBXx4s7QFA9KTw1nLUip+dYnvRMQ+foG4e1djy29aaCqH+fB1QuW83QYHYekWYC9osuWfDZhF9dh62hctchwnnW0zB+zqhIFE+6B+WjbXS8qnsnK6UYom xebh5Cue pVLYx1/VLlJY0hyVDV2I8szwSuoiui68NcchXoACHYATOVVk3zNM4vUcUYGXbbRN7X/z5UkFrxHH8zsdEIGkYRuI0u2/1JgH123Mx+AYpohiRBIA1U8aZBb38aZxjLY6DhecjjMZ362U/TGuRwhz3nlWRf0eVPmGxpz+CRaPGF5AKo7dk1lMWCeQZtA4yVlD63EvVkH/i4a5SXk9cpvzvPKXIK9FkTsZHWt57uRHmUzJold8+TvuyKeXkYNp08qqGloeYZNilPbUbJCxknzOWkP1w9LhLQantt5qCPM5jyDwVCDYUngvOmX5qJs0mxBpN8HGKq8+iszNABPUCNrLQvsvgG1tqp4OhijIx0f/A2UVIOfo3l0pi8fTDaD39k1vy77hqdoMfTq0BIohfte1NQqOQ++qIlgCeulHpUMdN2HOf3bxFor2gSawpzUfeXs9jBkGovoJm+HpLzWiGUhXLoePyeOtbrc4QozWxnYw4LPjmQQZj/IZctqigPA== 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: List-Subscribe: List-Unsubscribe: On Fri, Apr 04, 2025 at 10:44:05AM -0700, Shakeel Butt wrote: > On Fri, Apr 04, 2025 at 12:34:33PM +0200, Uladzislau Rezki wrote: > > On Thu, Apr 03, 2025 at 11:20:18AM -0700, Shakeel Butt wrote: > > > On Thu, Apr 03, 2025 at 01:17:22PM +0200, Uladzislau Rezki wrote: > > > > On Wed, Apr 02, 2025 at 10:33:26PM -0700, Shakeel Butt wrote: > > > > > The vmalloc region can either be charged to a single memcg or none. At > > > > > the moment kernel traverses all the pages backing the vmalloc region to > > > > > update the MEMCG_VMALLOC stat. However there is no need to look at all > > > > > the pages as all those pages will be charged to a single memcg or none. > > > > > Simplify the MEMCG_VMALLOC update by just looking at the first page of > > > > > the vmalloc region. > > > > > > > > > > Signed-off-by: Shakeel Butt > > > > > --- > > > > > mm/vmalloc.c | 13 +++++-------- > > > > > 1 file changed, 5 insertions(+), 8 deletions(-) > > > > > > > > > > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > > > > > index 3ed720a787ec..cdae76994488 100644 > > > > > --- a/mm/vmalloc.c > > > > > +++ b/mm/vmalloc.c > > > > > @@ -3370,12 +3370,12 @@ void vfree(const void *addr) > > > > > > > > > > if (unlikely(vm->flags & VM_FLUSH_RESET_PERMS)) > > > > > vm_reset_perms(vm); > > > > > + if (vm->nr_pages && !(vm->flags & VM_MAP_PUT_PAGES)) > > > > > + mod_memcg_page_state(vm->pages[0], MEMCG_VMALLOC, -vm->nr_pages); > > > > > > > > > Could you please add a comment stating that the first page should be > > > > modified? > > > > > > > > > > Sorry, what do you mean by first page should be modified? > > > mod_memcg_page_state() will not modify the page but extract memcg from > > > it and modify its vmalloc stat. > > > > > I meant what you wrote in the commit message. A mod_memcg_page_state() can > > be invoked only on a first page within a mapped range, because the rest is > > anyway is associated with the same mem_cgroup struct. > > > > Just add a comment that we do not need to check all pages. Can you add it? > > Ack. Andrew, please squash the following into the patch. > > > From 982971062e6bd04feabf4f6a745469cb9bddef03 Mon Sep 17 00:00:00 2001 > From: Shakeel Butt > Date: Fri, 4 Apr 2025 10:41:52 -0700 > Subject: [PATCH] memcg : simplify MEMCG_VMALLOC updates - fix > > Add comment > > Signed-off-by: Shakeel Butt > --- > mm/vmalloc.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > index cdae76994488..bcc90d4357e4 100644 > --- a/mm/vmalloc.c > +++ b/mm/vmalloc.c > @@ -3370,6 +3370,7 @@ void vfree(const void *addr) > > if (unlikely(vm->flags & VM_FLUSH_RESET_PERMS)) > vm_reset_perms(vm); > + /* All pages of vm should be charged to same memcg, so use first one. */ > if (vm->nr_pages && !(vm->flags & VM_MAP_PUT_PAGES)) > mod_memcg_page_state(vm->pages[0], MEMCG_VMALLOC, -vm->nr_pages); > for (i = 0; i < vm->nr_pages; i++) { > @@ -3671,6 +3672,7 @@ static void *__vmalloc_area_node(struct vm_struct *area, gfp_t gfp_mask, > node, page_order, nr_small_pages, area->pages); > > atomic_long_add(area->nr_pages, &nr_vmalloc_pages); > + /* All pages of vm should be charged to same memcg, so use first one. */ > if (gfp_mask & __GFP_ACCOUNT && area->nr_pages) > mod_memcg_page_state(area->pages[0], MEMCG_VMALLOC, > area->nr_pages); > -- > 2.47.1 > Reviewed-by: Uladzislau Rezki (Sony) Thank you! -- Uladzislau Rezki