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 93D27C4332F for ; Tue, 13 Dec 2022 14:40:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 066FA8E0003; Tue, 13 Dec 2022 09:40:46 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id F32038E0002; Tue, 13 Dec 2022 09:40:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DD24B8E0003; Tue, 13 Dec 2022 09:40:45 -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 C96AB8E0002 for ; Tue, 13 Dec 2022 09:40:45 -0500 (EST) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 932C41206EA for ; Tue, 13 Dec 2022 14:40:45 +0000 (UTC) X-FDA: 80237544450.03.ACD7C23 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf06.hostedemail.com (Postfix) with ESMTP id 17CEA18001B for ; Tue, 13 Dec 2022 14:40:43 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=LvNd3B7Y; spf=none (imf06.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1670942444; a=rsa-sha256; cv=none; b=ClV3kIJcA71QjUb8YokAznjPsoa161ShMuWer9j4h2Hpt4bZYJz945RraG2MgdaX6fNKhs Lt0fGTUZQg3t4yfIPNO8EN6+DBI7KtrkBMmExy3HPzzv0+xnR0vZT4OlyDT14PmEwOqDGS naqE8+r1i0VmD0tGSjcgPpQVJghcMf0= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=LvNd3B7Y; spf=none (imf06.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1670942444; 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=FQag/jd2GO3yImxnyVKI+1I/10Zv1F9ZtlVjYTPl/hk=; b=OOcdNVtzadofpujrIKZxajjr1MSAbYBm5LahVDwQPE/sRFeR1rNZdZNDI7vBEmAno0g1cv l58I+1ErkvAvG7PJQkbPJZkI6fcBDe92augOyDPHmo94ScmcsYefzk4554MDf8dt3tDwNf wcsrglqapQqEWH46joZeEA2qZYgpFAg= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=FQag/jd2GO3yImxnyVKI+1I/10Zv1F9ZtlVjYTPl/hk=; b=LvNd3B7Y+1FKup7/J0jsz0gQCT vtacOOldquFFwwc67FE95SWaH6CgmDTgn8wiVwoEcrY1z9awxnM1z3DgeyrEpiXSqn2A0FzhiHY2j EB3U3lxlZvaKUqN3N5kxTFPlwcBwfOZQe1k1s3rQrAVvvq4PLvE+EBMyFklsvBSEZp1uRkl+6ZXnk ftW88Gg2M6sI99+G0W3E4PN/BOOilZfgiicCE4ozaAqmIQ3KoBSeEtLHC0+7UewnE8sDXqJBcp/Kl 1vu7JdoPJwVWQqEbyVVmCQXd5bMNYI0byAVfuWOM693g2s+k8nYtZQ+ZRHpOW7OHbLSu4nua01UiN 0msfGlxg==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1p56SX-00CJ9w-UA; Tue, 13 Dec 2022 14:40:42 +0000 Date: Tue, 13 Dec 2022 14:40:41 +0000 From: Matthew Wilcox To: Kefeng Wang Cc: Andrew Morton , David Hildenbrand , Oscar Salvador , SeongJae Park , linux-mm@kvack.org, linux-kernel@vger.kernel.org, damon@lists.linux.dev, vishal.moola@gmail.com Subject: Re: [PATCH -next 4/8] mm: damon: add temporary damon_get_folio() Message-ID: References: <20221213092735.187924-1-wangkefeng.wang@huawei.com> <20221213092735.187924-5-wangkefeng.wang@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20221213092735.187924-5-wangkefeng.wang@huawei.com> X-Rspam-User: X-Rspamd-Queue-Id: 17CEA18001B X-Rspamd-Server: rspam01 X-Stat-Signature: tuyyris3jxjpqjzw44ay99bsr1g63ymu X-HE-Tag: 1670942443-26321 X-HE-Meta: U2FsdGVkX1/TOry6loyJ8eAZwd3NQG3FW9xUziKc7TJWBqnz0vwRk5ZQroTKn4LVmU5zeFS7iYug4z17H0f8JcLODEdoerCWR0euN33WxcLsCC/ibcyIt2gV9YRYWcMN51BOtVO6uaI1cpNrH18Uq8ENjFKEoygs9TrLCoSTJvHeK478v3YR/YxyeuKvgPln+kMYHTXIVFdnVmR/wenNdNKkqpk9xzPD4N3RJzlOuIn66ty3jsB/wRyR1EIilmVCCq582A8MAlNIFCUb2XwW6/hscBch/Kpce1MZk3FxmhlFN4nQibRP0zxJDpIj7RRb0NPRdpzFbCDxfJFAkcb6yczzD7q/K+6cHoIABjPMmu5yVxs1WZ4PTcuq5PTWvs1mWEFd9JHYBJ6jTU15jdi4uXFyAuIJPJF3+bNTw+sdtShfMx64KTi4UbHpPwZW4WUGgSt6nQ8QlGSznzjUzSw4CtlBDtIjBODTXNZma2T8VhlpLoZIQXRVdxgPMNc3rBqrVc9AOcqdhHgGalVMkDwCK8B4YC87SkzfhnmesmxugDW6th9Tep8ex9ZjM/4LpUXx8KokUv1lxb8FG/v5rujaaP8ltx4r1ij36NLFMvKcaaOz3/vJx7PhL++BHslqFYmlBQJipEyX50gndgrpZxA0ErasKH0FTUdxuf2ITpyVUbD8wMjvi6vqnjhdIM/G/jQfsN+RnFofKB7gJUZBHxZKWSE554ah4Cr8xRl5GcCktBJi5YIOtMZLq4p5E6e+AY0blztfgYsAuVK+TNtjbwdj3j35U8ZxsRBu0NRRpTUGFNhA9S2pVnK5DZj1ntTWvOeJDLbQ5aAmPXo83OEoagznCZA4oaGZ7GDKUpJxmkR8P2uEpNhuc2niUntPNZmsZObNB/T4uJaTr6EvdpMaz7xxrZALWJDLJQ3fkCsZp1eMyBnX8pC6Q9DVR7gT9k5A5zdEl8bdP3RG2xmhkrmUV51 5Zg== 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, Dec 13, 2022 at 05:27:31PM +0800, Kefeng Wang wrote: > -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 = pfn_to_online_folio(pfn); > > - if (!page || !PageLRU(page) || !get_page_unless_zero(page)) > + if (!folio || !folio_test_lru(folio) || !folio_try_get(folio)) > return NULL; Well, this is awkward. I asked Vishal to think about exactly this problem and we were going to talk about it after we're both back from vacation in January. But I guess we're going to do this in public instead ... Specifically, what should the semantics be for a putative damon_get_folio() when it encounters a tail page? Should it return the containing folio, or should it return NULL? And if the semantics change here to return the containing folio, what adjustments need to be made to the callers?