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 5F1D0C77B7C for ; Wed, 25 Jun 2025 21:38:16 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 045838D000C; Wed, 25 Jun 2025 17:38:16 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id F10428D0001; Wed, 25 Jun 2025 17:38:15 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DFF0C8D000C; Wed, 25 Jun 2025 17:38:15 -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 C94CA8D0001 for ; Wed, 25 Jun 2025 17:38:15 -0400 (EDT) Received: from smtpin04.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 4FCE01047C8 for ; Wed, 25 Jun 2025 21:38:15 +0000 (UTC) X-FDA: 83595236550.04.67A5846 Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) by imf02.hostedemail.com (Postfix) with ESMTP id 6084D80009 for ; Wed, 25 Jun 2025 21:38:13 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=WVzA1k1b; spf=pass (imf02.hostedemail.com: domain of joannelkoong@gmail.com designates 209.85.160.174 as permitted sender) smtp.mailfrom=joannelkoong@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1750887493; a=rsa-sha256; cv=none; b=NbNQfhUiLU+gBeogsD9EApeL01TDdlcspTEnIlxWEoJTmwNvIlqctL1Gae3whj9xfimm// MpbYxCnWmfqHQYrami3dAltyqw0WaT6XP4OB1jARBRGhQ0snJTQj9MHJ4HNL20Kt0JVaf0 d9x4+r8Kd4M4FEmyW71lh/xwJwJoHns= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=WVzA1k1b; spf=pass (imf02.hostedemail.com: domain of joannelkoong@gmail.com designates 209.85.160.174 as permitted sender) smtp.mailfrom=joannelkoong@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1750887493; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=icS2AouUM5ZODolYe6PBP3Lq/4sYyjlXkKI8jGjPk7c=; b=H3h95v3INuaXfAD2SHADo2oZ/onJeeh3O3/z4H3kYZv+6BZyXKOJirE3ZmxwqxH1ZW5/wL xIQAXjBR7UHpaO/Mw07n+RAQJAbW0aPll+MfWTS+mH2l12qa5e7RUDOx/MG+jzW8DSxE5h V5yf0lHjrjDtgLxYOjNlEPGeQ1SpsKA= Received: by mail-qt1-f174.google.com with SMTP id d75a77b69052e-4a6f3f88613so5327171cf.1 for ; Wed, 25 Jun 2025 14:38:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1750887492; x=1751492292; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=icS2AouUM5ZODolYe6PBP3Lq/4sYyjlXkKI8jGjPk7c=; b=WVzA1k1bNGITUVEW6xq/Nbq3gXMkeeUIip6kKeT9fqJ+Fk+JDcH7ZExUPjCWBjexfS m1+TO3zwBOTRfj9nYnkNTQpbaQoKgzOj1WWG0oSNIXF90OMHgsGBuEV9r51GQ1KEiquH BzDRgCfc+bWmeqpkJjRHoYCLWFrRoxLpO+ZcP9TWNGUPaxZJjs+oaACVnKoBKHOmvif2 OFElwLM1o39COPHJeYpIJDGJWwjUb/EVsm9nPe6QVFLKZMkvZkkBZPaD7RyDwVdXDWC+ hXC3vfa3LIqPwkV4MEKW3F9vMGgC0qxgebhirdlaZqF4JwuTclYS2oRp0XHzGwlqCLJH VX1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1750887492; x=1751492292; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=icS2AouUM5ZODolYe6PBP3Lq/4sYyjlXkKI8jGjPk7c=; b=kNPRxfYYyKzJjxwVSL5FXlu4BxTZOIaIDWTaqpwmDwKDvMI9b7PGuq9gMhsYsAmoBP A8PYDFs5wCJtvg7+oiXTr0gsbl7/UwIFTqWipnQ4cVJjDKGcY+j4IzvSkgeXNet+lC8j od+J/wvTbYe6jyAedbPHijApKZ1CpllbRBjblqbFlKPxQfYAka1T8En79IMICeUN6atK oICggcbKOLXloKX2eBwjw3oT8pYaRRqxkZnh9vXASLJhVAFKM3oIHNxYWd0cRijfUVJ3 OZO2LvDWyTUvFyPWrhxJfopq1UAL309FEC2VRTyLRunoCsDh+1gdAjVS38iRAibH6zCv 2T8A== X-Forwarded-Encrypted: i=1; AJvYcCWbiLnQWAkR3Zb2pwypKnsDJahgoRO7C14j2PBeQge4vsLgDwgTccdcIvRetwcYLS6Sb2G1swNw5Q==@kvack.org X-Gm-Message-State: AOJu0Yzp8h7jKD4SdlhNxxEGdylWzYlGzjG6JusKWPFFt/sl9HvYR7PS 33Y3VKUXaCwSFcWyC7IqlXEcckXQRHcE+nNtGxtp6OOyt6am/J6wJ+05rfExJOCzpjekYeG3i7r 6ej3lccOge6ftkArYc3tPPmolVmLJuKo= X-Gm-Gg: ASbGnctzKSNR8lEUlQeIyvAM7mzQN1oa1n6RzqDW/vEztWB3ZrHErRkfAb5kBRs6+K2 T7ewml6XKoZVmCqN3+1JK0TLC5mi5touZvO/KbZmPiLdEbn38YsInB0SajSWkw6NBElvejzfM3U 7JYcSjkl2AzCn69ETmZCBxN3DO5/MGWGXJummSMVCbY6+Nria6SKMrUMpkNqY= X-Google-Smtp-Source: AGHT+IFZIWsQIXMMcF1W41F7hsUCeEsozAHsACSm5zeGcSmEWqHzYmyUffMSAGUNEkq5Ztg6G/bA9j5d7XROB0GK+2g= X-Received: by 2002:a05:622a:1915:b0:4a5:a447:679f with SMTP id d75a77b69052e-4a7c06d9718mr82122501cf.22.1750887492397; Wed, 25 Jun 2025 14:38:12 -0700 (PDT) MIME-Version: 1.0 References: <20250625-nr_writeback_removal-v1-1-7f2a0df70faa@suse.cz> In-Reply-To: <20250625-nr_writeback_removal-v1-1-7f2a0df70faa@suse.cz> From: Joanne Koong Date: Wed, 25 Jun 2025 14:38:01 -0700 X-Gm-Features: Ac12FXwlVDGHlUh4l_DXXilyT7E1Aq8TPPOR9-Jjm7VABkUY-VOx1-0jVSkO8zs Message-ID: Subject: Re: [PATCH] mm, vmstat: remove the NR_WRITEBACK_TEMP node_stat_item counter To: Vlastimil Babka Cc: Andrew Morton , "Matthew Wilcox (Oracle)" , Tejun Heo , Maxim Patlasov , Jan Kara , "Zach O'Keefe" , Jonathan Corbet , Greg Kroah-Hartman , "Rafael J. Wysocki" , Danilo Krummrich , Suren Baghdasaryan , Michal Hocko , "Kirill A. Shutemov" , Brendan Jackman , Johannes Weiner , Zi Yan , Jingbo Xu , Jeff Layton , Miklos Szeredi , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-doc@vger.kernel.org, linux-mm@kvack.org, Jens Axboe Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Stat-Signature: 7sycp5bzmjssx5s7f1mmresbaiu1axii X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: 6084D80009 X-Rspam-User: X-HE-Tag: 1750887493-195484 X-HE-Meta: U2FsdGVkX19/0BDy9crIwXP8XyfaDfSQe7TNn3HodRdZ1nFVW2AFPmLjedD7XeznaxZ0gk4uCvNbRYnx7EJSawSOwi80eZITzQzZzEV7U2GYkvq3h43lt7x5t1j1PWt2NFoNCONOlwUoolPNB0fL/orRaw2T+ShTC0UiclUbKtGlXh6DZfpkC/PntaCdAHkA8O5jDFB+PZUpwGgYu5iTc4grcNzMQAo/TrzL5DpNzJ5f2wXDuYzZjSmc8rhG9XmSYPno+I6enj2LRZwJ8B5mjLEWKVU/H77IvxgJC9dDT7YHXK+foWISn3a0yC3bZT/8Xn6Ha864sjP901oXSi1XuQh1zDsh9kve1vY7i1iTKNy4NdLY0MRSidCGXoYkRkaagUibzW7yiVlJCt04W37Yk48aQ4ktfbLjgqFYAv2TnacP/G0WcWWUcX0RzmkadT8ZUJG7GCZYDIUOjU01BGU8HXzCqNSmY+JDRL+ksQNDUKtwwh4D6R+24vG9BJAzW0JxaUBqa/dvPY4HKi2KbLApRsLBJ3sWVY+7XY3gXsnF6j3C9h6hth07rdrj5QcM3WD+lK81+rGzLWvMRIWbCyfEyNiwq8n0qSknzs/fxmm3+Ai4PQoR/rWTfFXwM2RTigheDCP8Kr1M+P9xh88denV5YTXyjg7p0BNXxzoxf57rnwrUMczIS1uusEnItLx07hBoMACSZVXwLHybnlL83b0AWJMVbk1gTNoBq7aP2ZuL/p2NT4MLtGYCNrK044kKLnYkxlA1w4Dlcs1M3cui8mY82eNfOI7p/KwgVMvuc8ufXRQhwYAc3nupsv3PRQVJq4VKMinWCkkxv/QF5i8vwzlyKrJn3Y4rUo+JEhnGidaMeILJIHFpwB4IhUMs4soF070I5QS+G8uA/cdQPdB0TBpvNcqLqdLYVMOnuUas+v4+z2wJEWw12bFEqEkOXgVLrhbQc6Exmtc+SpqAKgvEtex UcXl6tcO YznWv+2J+VgBc1oHryNrrJwTPP0WdMKFpRKawBE5ziyTUFbYk8+IBCqOGLj0gQGyTdwfneztourQHo8GEzaaRsHdm9NA7Rv5a43eufmJqpopXZg60uBgCfG+rfc82qz0zI9ojNuL0i8uW/1tpSztevXhafE4BDi+eoUmQVFlLBp/Ms8s3DkBblNKs0hIoo1EVxYgE1O4sSE1uWvHHAUuUlB+rb4sxJRA2BUmGv2LFCsG1ZRwh1/Je+smKQn6bpE+CmNawOrnxsUZlL0H+DJPcY0aiK5jWbf7nhTqxDqMh+yUxmSNAvVnh/kOJ6Oc69Q/IL860IBT7+w7+Cxm+3Dfx0twVjBkWT5UPzFFN/5QOEt+qoXJDnZe/VKAzA+mlXZa+jKBmO03Aj/4IDqb7VFuffKA5VBA1Fe7ilzahBOcYInsQ6K1CIppi9iSWqQ== 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 Wed, Jun 25, 2025 at 8:51=E2=80=AFAM Vlastimil Babka wr= ote: > > The only user of the counter (FUSE) was removed in commit 0c58a97f919c > ("fuse: remove tmp folio for writebacks and internal rb tree") so follow > the established pattern of removing the counter and hardcoding 0 in > meminfo output, as done recently with NR_BOUNCE. Update documentation > for procfs, including for the value for Bounce that was missed when > removing its counter. > > Signed-off-by: Vlastimil Babka > --- > The removal of the counter is straightforward. The reason for the large > Cc list is that there is a comment in mm/page-writeback.c function > wb_position_ratio() that mentions NR_WRITEBACK_TEMP, and just deleting > the sentence feels to me it could be the wrong thing to do - maybe the > strictlimit feature itself is now obsolete? It sure does mention FUSE > as the main reason to exist, but commit 5a53748568f79 that introduced it > also mentions slow USB sticks as a possibile scenario. Has that > happened? I'm not familiar enough with this so I'd rather highlight this > and ask for input here than make "git grep NR_WRITEBACK_TEMP" return > nothing. My understanding is that even without the fuse use case, strictlimit is still used for other devices via the /sys/class/bdi interface (eg /sys/class/bdi//strict_limit) so I don't think the feature itself is obsolete. It's not clear to me whether fuse still needs strictlimit now that it doesn't have tmp writeback pages, but it'd be great to get an answer to this, as strictlimit currently leads to too much dirty throttling when large folios are enabled in fuse. > --- > Documentation/filesystems/proc.rst | 8 +++++--- > drivers/base/node.c | 2 +- > fs/proc/meminfo.c | 3 +-- > include/linux/mmzone.h | 1 - > mm/show_mem.c | 2 -- > mm/vmstat.c | 1 - > 6 files changed, 7 insertions(+), 10 deletions(-) > > diff --git a/Documentation/filesystems/proc.rst b/Documentation/filesyste= ms/proc.rst > index 5236cb52e357dcd00496b26be8578e1dec0a345e..2971551b7235345c9a7ec3c84= a87a16adcda5901 100644 > --- a/Documentation/filesystems/proc.rst > +++ b/Documentation/filesystems/proc.rst > @@ -1196,12 +1196,14 @@ SecPageTables > Memory consumed by secondary page tables, this currently i= ncludes > KVM mmu and IOMMU allocations on x86 and arm64. > NFS_Unstable > - Always zero. Previous counted pages which had been written= to > + Always zero. Previously counted pages which had been writt= en to > the server, but has not been committed to stable storage. > Bounce > - Memory used for block device "bounce buffers" > + Always zero. Previously memory used for block device > + "bounce buffers". > WritebackTmp > - Memory used by FUSE for temporary writeback buffers > + Always zero. Previously memory used by FUSE for temporary > + writeback buffers. > CommitLimit > Based on the overcommit ratio ('vm.overcommit_ratio'), > this is the total amount of memory currently available to > diff --git a/drivers/base/node.c b/drivers/base/node.c > index 6d66382dae6533a0c8481f72ad67c35021e331d3..e434cb260e6182468e0d617b5= 59134c6fbe128f4 100644 > --- a/drivers/base/node.c > +++ b/drivers/base/node.c > @@ -500,7 +500,7 @@ static ssize_t node_read_meminfo(struct device *dev, > nid, K(node_page_state(pgdat, NR_SECONDARY_P= AGETABLE)), > nid, 0UL, > nid, 0UL, > - nid, K(node_page_state(pgdat, NR_WRITEBACK_T= EMP)), > + nid, 0UL, > nid, K(sreclaimable + > node_page_state(pgdat, NR_KERNEL_MISC= _RECLAIMABLE)), > nid, K(sreclaimable + sunreclaimable), > diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c > index bc2bc60c36ccc1dab8913913056f5ff20b448490..a458f1e112fdbc63019239a79= ce39c5576b5f963 100644 > --- a/fs/proc/meminfo.c > +++ b/fs/proc/meminfo.c > @@ -121,8 +121,7 @@ static int meminfo_proc_show(struct seq_file *m, void= *v) > > show_val_kb(m, "NFS_Unstable: ", 0); > show_val_kb(m, "Bounce: ", 0); > - show_val_kb(m, "WritebackTmp: ", > - global_node_page_state(NR_WRITEBACK_TEMP)); > + show_val_kb(m, "WritebackTmp: ", 0); > show_val_kb(m, "CommitLimit: ", vm_commit_limit()); > show_val_kb(m, "Committed_AS: ", committed); > seq_printf(m, "VmallocTotal: %8lu kB\n", > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > index 1d1bb2b7f40d25b430932c9ef9096d97bf1c29de..0c5da9141983b795018c0aa24= 57b065507416564 100644 > --- a/include/linux/mmzone.h > +++ b/include/linux/mmzone.h > @@ -206,7 +206,6 @@ enum node_stat_item { > NR_FILE_PAGES, > NR_FILE_DIRTY, > NR_WRITEBACK, > - NR_WRITEBACK_TEMP, /* Writeback using temporary buffers */ > NR_SHMEM, /* shmem pages (included tmpfs/GEM pages)= */ > NR_SHMEM_THPS, > NR_SHMEM_PMDMAPPED, > diff --git a/mm/show_mem.c b/mm/show_mem.c > index 0cf8bf5d832d6b339b4c9a6c7b8b3ab41683bcfe..41999e94a56d623726ea92f3f= 38785e8b218afe5 100644 > --- a/mm/show_mem.c > +++ b/mm/show_mem.c > @@ -246,7 +246,6 @@ static void show_free_areas(unsigned int filter, node= mask_t *nodemask, int max_z > " shmem_pmdmapped:%lukB" > " anon_thp:%lukB" > #endif > - " writeback_tmp:%lukB" > " kernel_stack:%lukB" > #ifdef CONFIG_SHADOW_CALL_STACK > " shadow_call_stack:%lukB" > @@ -273,7 +272,6 @@ static void show_free_areas(unsigned int filter, node= mask_t *nodemask, int max_z > K(node_page_state(pgdat, NR_SHMEM_PMDMAPPED)), > K(node_page_state(pgdat, NR_ANON_THPS)), > #endif > - K(node_page_state(pgdat, NR_WRITEBACK_TEMP)), > node_page_state(pgdat, NR_KERNEL_STACK_KB), > #ifdef CONFIG_SHADOW_CALL_STACK > node_page_state(pgdat, NR_KERNEL_SCS_KB), > diff --git a/mm/vmstat.c b/mm/vmstat.c > index c3114b8826e4c3b6969fd4af4b0cd32173c42d7b..e0fcd9057f344170b2dc5c82b= eafea4ec18359bb 100644 > --- a/mm/vmstat.c > +++ b/mm/vmstat.c > @@ -1251,7 +1251,6 @@ const char * const vmstat_text[] =3D { > [I(NR_FILE_PAGES)] =3D "nr_file_pages", > [I(NR_FILE_DIRTY)] =3D "nr_dirty", > [I(NR_WRITEBACK)] =3D "nr_writeback", > - [I(NR_WRITEBACK_TEMP)] =3D "nr_writeback_temp", > [I(NR_SHMEM)] =3D "nr_shmem", > [I(NR_SHMEM_THPS)] =3D "nr_shmem_hugepages", > [I(NR_SHMEM_PMDMAPPED)] =3D "nr_shmem_pmdmapped", > > --- > base-commit: 4216fd45fc9156da0ee33fcb25cc0a5265049e32 > change-id: 20250625-nr_writeback_removal-4eca139cf09a > > Best regards, > -- > Vlastimil Babka >