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 7160CC677F1 for ; Wed, 18 Jan 2023 00:35:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E91DF6B0073; Tue, 17 Jan 2023 19:35:05 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E41976B0074; Tue, 17 Jan 2023 19:35:05 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D08B26B0075; Tue, 17 Jan 2023 19:35:05 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id C2F216B0073 for ; Tue, 17 Jan 2023 19:35:05 -0500 (EST) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 9BAEC402BA for ; Wed, 18 Jan 2023 00:35:05 +0000 (UTC) X-FDA: 80366050170.16.C06112F Received: from mail-pj1-f45.google.com (mail-pj1-f45.google.com [209.85.216.45]) by imf12.hostedemail.com (Postfix) with ESMTP id E02B44001B for ; Wed, 18 Jan 2023 00:35:03 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=jelHYFT7; spf=pass (imf12.hostedemail.com: domain of minchan.kim@gmail.com designates 209.85.216.45 as permitted sender) smtp.mailfrom=minchan.kim@gmail.com; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=kernel.org (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1674002103; h=from:from:sender: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=sMyeYMVXF7IgjfGC7N762xUCyNeQ/iY6VKDjd0bOVPo=; b=P4yNVzd6ZtEpWCEayG4x/GRm23eyHFIsvmKIlC7U1LtewjeEC9IlskPYUAnMTMopjcZTtG msHusMIP21SJoFqkfakjxxMIRCLC/zEtgJ0VTKQwJg3SBfpyM2wLv+42g8/i4bp2RzM8II XC9baoeulntb7gv5dJiAvEnzIuex+FA= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=jelHYFT7; spf=pass (imf12.hostedemail.com: domain of minchan.kim@gmail.com designates 209.85.216.45 as permitted sender) smtp.mailfrom=minchan.kim@gmail.com; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=kernel.org (policy=none) ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1674002104; a=rsa-sha256; cv=none; b=fZv8TBdf9mjd4zAwnQv/IYeEggJArliRKcZ2BRYkqAj4CaFyWn9A/nHBo7yd4mofhl+20l 5FcYZl81/R87vt9pai3zdwJOZWD+DxRZqx6m9kGjcVCMSMT661gIbiYwUHKk+yfolmmhUC c0HshNix+0sjl5ARD0pn2VUtU0omQX8= Received: by mail-pj1-f45.google.com with SMTP id a14-20020a17090a70ce00b00229a2f73c56so633275pjm.3 for ; Tue, 17 Jan 2023 16:35:03 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:from:to:cc:subject:date:message-id :reply-to; bh=sMyeYMVXF7IgjfGC7N762xUCyNeQ/iY6VKDjd0bOVPo=; b=jelHYFT7XhuGmISkWzpel1N0dN82mQBHyhmZsZTHL8zMEqD/3hLnEiDSMkctzGjXNc vM/xwSxy1MluNKtsDZwsS4DScml7WZd8yGNnFTxRR00Z8fsitUGvpJIt57VRVh3z78a9 MD0A5AsXP60Pl+ugxLaB3F7GC6dbPLPG2YUIYWW2poJicwRbsf3kbC9jS5d4N//D7vxR 19L8T2NUHv7EmI2J+JGIBRBK9APoVfXc5fFi+ByNHuLyUoUr8oByZL0Peg1CqSEfVUuE nYnWrJCG9WBPTr1c0RmhQsbqLlV2RIG0/66MddJ4exC873lFVuUt9Er+vYNfH7JeQPTI imDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:sender:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sMyeYMVXF7IgjfGC7N762xUCyNeQ/iY6VKDjd0bOVPo=; b=cnKU2yjCIVoeqLDL3qFPuZCHmQYlwBlPSjPDthaz+Lcg7z7kZ0ywk+HWNK8smyULte u8nN8NjaeOkhLttHjecxhrIUU5Lzc2uJfeh8i29LhCbDBT35sCJV7IcPZBsEFc4QBT/X zoSArArquPqCf9/pmeT7SuPHZn8KkV4lH5Pv1PC2qccfmRzeNUO+/kow//6n/+TjiiHo S85t6Af6FteH2dTAV6AlneN4nXPaviqd25mErF0iXa3K/xuwn/9sLOyxTShM5NfYYLlN y8P2bxz2rsOPZXWXENHRGr5lpEP7oFFUQM537boF4hKPS67tcizdhRTm4//sR0Pe5DPJ 4nfg== X-Gm-Message-State: AFqh2krkWq7pzBlcZrCw+xZ+qn8U8epsRx17i5r50wnKrfwrUyDMDURG MucbdKeKoMD4mecDhlmK86s= X-Google-Smtp-Source: AMrXdXtFFhZxSChR1BIqTlxckVoTu/p350oCSqUYDEFyzbpSuqIr1V2b4+b+/xlPZtb/CKOXpEatNA== X-Received: by 2002:a05:6a20:1456:b0:af:9c75:6699 with SMTP id a22-20020a056a20145600b000af9c756699mr7227993pzi.1.1674002102559; Tue, 17 Jan 2023 16:35:02 -0800 (PST) Received: from google.com ([2620:15c:211:201:27ce:97b5:ee13:dbfe]) by smtp.gmail.com with ESMTPSA id y22-20020aa78f36000000b0058d92ff8a31sm5437323pfr.187.2023.01.17.16.35.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 17 Jan 2023 16:35:02 -0800 (PST) Date: Tue, 17 Jan 2023 16:35:00 -0800 From: Minchan Kim To: Andrew Morton Cc: Suren Baghdasaryan , Matthew Wilcox , linux-mm , LKML , Michal Hocko , SeongJae Park Subject: Re: [PATCH 1/3] mm: return the number of pages successfully paged out Message-ID: References: <20230117231632.2734737-1-minchan@kernel.org> <20230117155312.5464d01c2d639b1ac44f9330@linux-foundation.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230117155312.5464d01c2d639b1ac44f9330@linux-foundation.org> X-Rspamd-Queue-Id: E02B44001B X-Stat-Signature: ftdqzdy1qjju7r5qai4mphoga63z5ogu X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1674002103-92113 X-HE-Meta: U2FsdGVkX18SYk2Fgdilg/rmakXkKe2kBUY4gcxNfs21ptq9BiuBFaFen6w9eiGAgNUNruoHsSrVw+Ll7YmeGxAnSBs7r+SPqQqeHJ1KZK0wbGVfksOEY5la8WWdeUjHUzRZKEmhibUZZTgEL70NUceXmP4L+okCoLb3hePAxCyCWdjYnNY76e/XJZiNojxNUUcCO3TWlMqHvWSAH3D9nULCxxzZdB/10GM/QD7ymmQk91HvQkTC63g9mEQ+bS9Gz2x4s1NcwnOdueyaGYgQ7uf2saugvzu4ZBjJw2GPASbun7SywskM2quFdX51ggw0qY09ZTpEJqGOwo/qbByDX/DZuzzver1YwcZSRmEdX63LEY572WEvU1tsSG/ZmURzIUD6ZEKOUXFEgpFk0c46soFYMftY4nuLRJ5eBPAYcHDQc4KAylQXyteglKHjtyKMXLglno/mwaKQ0LEqPyqdbufIpCizstHbJIAu2t59osdE7f5OeuBoJoD8w9SKQ+2JhH0g0SpfmbYyCHPt5MPOJ4hwxr3DSzwEdwd6cXg/XYWjGuYghyGLalFHRCDZwP7Er2mCZy/1fbr4w0vfzEJqx1Tg1U1ZcCjn6cGBOqTGHHe4AgK+YOd5Ag9tCJSixSyOgLECH0+a23Do+z2zk03hMxOwfMurWew99MacqGI5BuA9PsK57ZYe8HDzl48Yu6UYMm8iCvBmkTTWJj/DY/DyOUXW4LAEUg8wgyRZSy7HdSsezfp+lmTZpHpkBNWxawuPgPNmz0lIrqXagCtfV/IqS37yXTM8YIPX954kqDCQYr6iVKcFD1UXy7eqZJ4mP2olh4UxcsBqscKSvy+/pqAFTt/7xEAcCJGziBQkrOOeh0RsaX80E4SSHHrFqd/EU8cMEtXXQ54eDmNl2E+FYf1WdOhsG9EXeiyGjGODdg2mkK1jTuo0yWLnCFbhWkSInXCdAamUl61WlCcgdGspeAL Hrrj/2wn ylSGCh4JprzcVxPmv+oe4GqHrtXbg1wY7pejSWx+ys9rHdlZ4+KFJe5e8fMbtcIY3t09pcTZiVo2kZEtqN7ruisxcqgigURr5H4P8bxFIXUOZCeGCnl+PXY4JhJx18ZWN1578OJfrf2k4JGmj7rR9+VKjE1MCy06qGUUCLVnSSQemHuLe1bQKW3KeGH0AqHibMs5pp7XpT6RgeyFWV+40awZGdVEX5NJ0mOMjXHiGAogh9agA+HF3l75Z+fP/VVnZt6dVJLnOZDPdlVCmRIMXT7icuxmQJkz2mT/nLg6Zz/Nok1A= 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 Tue, Jan 17, 2023 at 03:53:12PM -0800, Andrew Morton wrote: > > I'm all hung up on the naming of everything. > > > mm: return the number of pages successfully paged out > > This is a vague title - MM is a big place. Perhaps "mm/vmscan: ..." > > On Tue, 17 Jan 2023 15:16:30 -0800 Minchan Kim wrote: > > > The reclaim_pages MADV_PAGEOUT uses needs to return the number of > > pages paged-out successfully, not only the number of reclaimed pages > > in the operation because those pages paged-out successfully will be > > reclaimed easily at the memory pressure due to asynchronous writeback > > rotation(i.e., PG_reclaim with folio_rotate_reclaimable). > > So... what does "paged out" actually mean? "writeback to backing > store was initiated"? From an application's point of view it means "no > longer in page tables needs a fault to get it back", no? Yes, both are correct in my view since pageout is initiated after unmapping the page from page table and think that's better wording to be in description. Let me use the explanation in the description at next spin. Thanks. > > > This patch renames the reclaim_pages with paging_out(with hope that > > "page_out" or "pageout" would be better than "paging_out". pageout was taken from vmscan.c. Then I will use the page_out unless some suggests better naming. > > > it's clear from operation point of view) and then adds a additional > > stat in reclaim_stat to represent the number of paged-out but kept > > in the memory for rotation on writeback completion. > > So it's the number of pages against which we have initiated writeback. > Why not call it "nr_writeback" or similar? Currently, nr_writeback is used to indicate how many times shrink_folio_list encoutered PG_writeback in the page list. TLDR: I need to distinguish syncronous writeback and asynchronous writeback. Actually, I wanted to use nr_pageout but it would make double counting from madvise_pageout PoV depending on backing storage's speed. (For example, madvise_pageout tried 32 pages and 12 pages were swapped out very quickly so those 12 pages were reclaimed under shrink_folio_list context so it returns 12. But the other 20 pages were swapped out slowly due to the device was congested so they were rotated back when the write was done. In the case, madvise_pageout want to get 32 as successful paging out's result rather than only 12 pages) Maybe, nr_pageout_async? > > > With that stat, madvise_pageout can know how many pages were paged-out > > successfully as well as reclaimed. The return value will be used for > > statistics in next patch. > > > > ... > > > > -unsigned long reclaim_pages(struct list_head *folio_list) > > +/* > > + * paging_out - reclaim clean pages and write dirty pages into storage > > + * @folio_list: pages for paging out > > + * > > + * paging_out() writes dirty pages to backing storage and/or reclaim > > + * clean pages from memory. Returns the number of written/reclaimed pages. > > s/reclaim/reclaims/ > > "and/or" it vague - just "or", I think. Since the page list could have immediate reclaimable pages(A) when backing storage is enough fast and just written pages(B) when the backing storage is slowed down, even A + B if the device is congested in the middle of doing operation, I think "and/or" is right. > > "written/reclaimed" is vague. "number of reclaimed pages plus the > number of pages against which writeback was initiated" is precise. Sure, let me correct it. Thanks, Andrew.