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 D0CFCC4167B for ; Tue, 27 Dec 2022 19:43:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0B6268E0002; Tue, 27 Dec 2022 14:43:04 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 066968E0001; Tue, 27 Dec 2022 14:43:04 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E99AE8E0002; Tue, 27 Dec 2022 14:43:03 -0500 (EST) 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 DD73A8E0001 for ; Tue, 27 Dec 2022 14:43:03 -0500 (EST) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 7C024805E8 for ; Tue, 27 Dec 2022 19:43:03 +0000 (UTC) X-FDA: 80289109446.11.0646936 Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf06.hostedemail.com (Postfix) with ESMTP id D60CF18000F for ; Tue, 27 Dec 2022 19:43:00 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="CL7Y/uW0"; spf=pass (imf06.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1672170181; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=2GiPuBBuRwgfA8XiLCkfTgTQCn8d2XomtkaKmo5KQtQ=; b=5GQtb7sLwtzsdtbVAFXohADFBzo1Idz1wFdnF+2nweNclMKBCk2Bg4B0gR6ZnvOjLXR0m5 lAu2vYNIk3M/BKNdEWhKiOwvNgXG2WHqV55K8BDG2ArLhFD1u+9OCqROkyOs3ys2IkqVqF 2spKC2fuYDkiTrRTL0M5SrLbFHTIZjg= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="CL7Y/uW0"; spf=pass (imf06.hostedemail.com: domain of sj@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=sj@kernel.org; dmarc=pass (policy=none) header.from=kernel.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1672170181; a=rsa-sha256; cv=none; b=f3BEsn6SuQ45UTZKleTo77RkCXs0/ioOyBMUZe7wN407RcKDK9m+hR0QPQF4NkvfKCPY1a QMxB1s4cEg9r33V/gK/w4BnyAvBmEJhRYpwbhH4E/Sa3UXg9G17OmA3cXaXQVxB7Pk3YEe 47/QPvfSiFoCciBHEYPWC9UNIPV7l/w= Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id D4E7361166; Tue, 27 Dec 2022 19:42:59 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 9B9CEC433EF; Tue, 27 Dec 2022 19:42:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1672170179; bh=ndjXj2bFtuxWHzxqZ4f5g2WLfiRgnsCCho8XX+smju4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=CL7Y/uW0ufuRhI2qSL8vBNIinxHyVNaX2ReqyuVJ7ofv6RHJY7pKJ4aBVc3gKYeaW eV1XrvbEvYdCZpNYN3bfvA34ofWB2egHg5uXobavgpja2mNIz0CcUmn6QDtdcdI7Lb CwZjj69zHX47/kuBe40TpHopBsCBSDbroU+eyeL4YqgvCNQnJtmM/iEk8GmopFksW9 0w4T9W1TGmqtmElNip/rWadXJYYWYzx8pUGj8wPNati6RcUoFILZKTHcn//0f2QYab XY9b4LfdXlmHx3bGmP0Fz+4W40mhOatzSHGn9lp3zdtg7MaYOLqa9RUXgRpcG/pF6j D3a1bC0K7Yh/w== From: SeongJae Park To: Kefeng Wang Cc: Andrew Morton , SeongJae Park , damon@lists.linux.dev, linux-mm@kvack.org, vishal.moola@gmail.com, willy@infradead.org, david@redhat.com Subject: Re: [PATCH -next v2 2/7] mm: damon: introduce damon_get_folio() Date: Tue, 27 Dec 2022 19:42:57 +0000 Message-Id: <20221227194257.2744-1-sj@kernel.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221227122714.161224-3-wangkefeng.wang@huawei.com> References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Stat-Signature: o1hqztstobszmk8muio8y57777r5ddx9 X-Rspam-User: X-Rspamd-Queue-Id: D60CF18000F X-Rspamd-Server: rspam06 X-HE-Tag: 1672170180-565631 X-HE-Meta: U2FsdGVkX1/wG9voRbG/YOE9abZgoYALuhPFriMVUF+Be8U9GY2d4dG35qW3yWaTW2zCLMS7QQnrKkpT6T/U2VVMz+XVmwV3lv+bAFkiqm8QWI0FTW7/F9WDpmuI3iwkmk4Lt5U2PTAfUOkFKEuPl+Yw5puxyeokf5+Axo6X/B7EKW4SdjAxDWorIA1p+m8XM3amgjr9ySNuhyJzFL7dW7cmuheuqoet4Hg7js+ZUj6cREBd2ZcG0k4OLvE5SKAvG3wiFRNj4v6ULI3B2xc6ak911DTkOKvsNMsnhMLBWHiHhsV5Ot0hlFF/FAeRTnDAcr1/+8RO9MBRcLVZ0y26hH06KkBBvFU1Hl8pGAmctvk7JQfhxpdvzGPbmlIf97Sab0WtW46NONF2LRyaIB3Mr7oA+m6ZPIIXT7PNpnu7BQ1tp9M85BdyX/SiiP47VjhAFVNou8H5e5XMekhhC/0xSg7oDC+fIh4B2wypaNQm/NvexNdnJ9cSwTJ7de50qWx4TlqyjpnusanYhbtok2Y71U3d0c3a2nMZ5jPkLf06e+20bF4reoQIWMjxsAYGTclkzEMW+ehEwzgwdsysILeSmQf8xF0z1KeKrPpzijtg+cq/DUAHtWw5tYBgt2dBRTAIL7JHZsovbnpusUMB4LZKCbDLgzfqhWvz5S3xtVtlxldH4/8a3f1VP8qr2S3ZnFt551kMkXuQJW2oWgBDHaprPHvakd/0WntpvvFuikIFZYrZOFQvB05stkVYr3zGjcuvu8YXfcU/soQqGO+nV+srwha1t6XxGBWTva7/oCYndHxqBIOPdld8kZ1HHYVF4FGI5ATWmn18WNtf5kbwLKzFHQQtP8TRVyr8N2nUFmaiPSKJ3PAZ0pG5cdDkKg/XWSnaSk650ULGczuUJaxoOilVD0Sbf75FsJdw6QFgPEvF5OMmscOL5lL65RudaR7Eu0RhojtJ3ONacJSgSVj0Ejl cqhTfiXh aiUQBBaZfVEcXT1NVxCj30v8gsqKECjRTb0VZoUuKP7Tw1FvExq85wYcPiytJLYH47Kf8tETTeBWpc09oVWwHB07R8p+Gvs44ODHhsKy+HnNMZ1lDyzU1U8QBufO2lg00h1vzNJmLn0w117XuDJR8owO1qZpvNz0EBCGC04LmzjEPXjrjjgABB+sroRaVzVJ+0Ioq 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: Hi Kefeng, Could we use 'mm/damon:' prefix instead of 'mm: damon:' for the patch subjects? On Tue, 27 Dec 2022 20:27:09 +0800 Kefeng Wang wrote: > Introduce damon_get_folio(), and the temporary wrapper function > damon_get_page(), which help us to convert damon related function > to use folios, and it will be droped once the conversion is completed. > > Signed-off-by: Kefeng Wang > --- > mm/damon/ops-common.c | 14 ++++++++------ > mm/damon/ops-common.h | 8 +++++++- > 2 files changed, 15 insertions(+), 7 deletions(-) > > diff --git a/mm/damon/ops-common.c b/mm/damon/ops-common.c > index 75409601f934..ff38a19aa92e 100644 > --- a/mm/damon/ops-common.c > +++ b/mm/damon/ops-common.c > @@ -16,21 +16,23 @@ > * Get an online page for a pfn if it's in the LRU list. Otherwise, returns > * NULL. > * > - * The body of this function is stolen from the 'page_idle_get_page()'. We > + * The body of this function is stolen from the 'page_idle_get_folio()'. We > * steal rather than reuse it because the code is quite simple. > */ > -struct page *damon_get_page(unsigned long pfn) > +struct folio *damon_get_folio(unsigned long pfn) > { > struct page *page = pfn_to_online_page(pfn); > + struct folio *folio; > > if (!page || !PageLRU(page) || !get_page_unless_zero(page)) > return NULL; > > - if (unlikely(!PageLRU(page))) { > - put_page(page); > - page = NULL; > + folio = page_folio(page); > + if (unlikely(!folio_test_lru(folio))) { > + folio_put(folio); > + folio = NULL; > } I think Matthew's comment for 'page_idle_get_folio()'[1] could applied here? [1] https://lore.kernel.org/damon/Y6s2HPjrON2Sx%2Fgr@casper.infradead.org/ > - return page; > + return folio; > } > > void damon_ptep_mkold(pte_t *pte, struct mm_struct *mm, unsigned long addr) > diff --git a/mm/damon/ops-common.h b/mm/damon/ops-common.h > index 8d82d3722204..4ee607813981 100644 > --- a/mm/damon/ops-common.h > +++ b/mm/damon/ops-common.h > @@ -7,7 +7,13 @@ > > #include > > -struct page *damon_get_page(unsigned long pfn); > +struct folio *damon_get_folio(unsigned long pfn); > +static inline struct page *damon_get_page(unsigned long pfn) > +{ > + struct folio *folio = damon_get_folio(pfn); > + > + return &folio->page; I think we should check if folio is NULL before dereferencing it? > +} > > void damon_ptep_mkold(pte_t *pte, struct mm_struct *mm, unsigned long addr); > void damon_pmdp_mkold(pmd_t *pmd, struct mm_struct *mm, unsigned long addr); > -- > 2.35.3 >