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 5141AC3601E for ; Thu, 10 Apr 2025 18:25:19 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0538528011D; Thu, 10 Apr 2025 14:25:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0023A28011A; Thu, 10 Apr 2025 14:25:17 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E31CA28011D; Thu, 10 Apr 2025 14:25:17 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id C29BC28011A for ; Thu, 10 Apr 2025 14:25:17 -0400 (EDT) Received: from smtpin09.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 38B261CCB45 for ; Thu, 10 Apr 2025 18:25:18 +0000 (UTC) X-FDA: 83318961516.09.853140F Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf16.hostedemail.com (Postfix) with ESMTP id 7578418000B for ; Thu, 10 Apr 2025 18:25:16 +0000 (UTC) Authentication-Results: imf16.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=g8JLUbGN; spf=none (imf16.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=1744309516; 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=f4P+Bmos+5BJg5MJGwRJiUDUj9szeOXEjPkYvMGwy/4=; b=1P1xxNc3g8OgKS23VLJS732BiCGhc5000lvWi7Idkkr6ZfXzSbbzajUz5IvoF1AD51/LO1 35G9XO2ZOg8Zonqy+fzYWzmuKtUNOuFZazwpYRU5t0ZSIGq2VtE9zXtfa3aIsCqm26tMaE Khm1YYvb7SiLE4z8MCndXGWjZ8QI45U= ARC-Authentication-Results: i=1; imf16.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=g8JLUbGN; spf=none (imf16.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=1744309516; a=rsa-sha256; cv=none; b=s6dlLQkIwFahYWU82LxNQwmH7oh7MvZp43/nZzvUP142GlNttIINBlex42blYPsSt0P/IV fld0cBxF3dVexqmYhIJvCFoy1jBii1+phlKg5TjHfn1aHlx0uj0mEF6iFcxtPLzSxJ0m3h SDHBOXua9wJ2YTEFb9ibYOWhApKZs6I= 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=f4P+Bmos+5BJg5MJGwRJiUDUj9szeOXEjPkYvMGwy/4=; b=g8JLUbGNd9XBsYxDE2N/cU/ouz 4U/BzJEJBcVHxWSbauBFYNUgfp2BFqfloNNe1shZS5h3Zrnp2RUXrdJ8R+6EEBdJ7OJqbtHVg5UC7 tkLEVdWdyTl1ZB7A8vU645242WqlT0sZ+pU08Ui0SfqhFymHxeyuV/Ur8PoglMBGHtWQ4AoqMyv6Y Yj/BC8lsQGYtj2Lg2GorxlmBY25nZ5nMItGhc49F/IIt+6aNhzj7vbEIsSlUqbreHayZaIlXCoNLL 0sZdXEMbu4abcbuqoHvmmWy3EiByq1p1EL7HE34/CYRvq/VOm1pFl04kw7tbymugqkAWO0uG73EJu NAbcAzGA==; Received: from willy by casper.infradead.org with local (Exim 4.98.2 #2 (Red Hat Linux)) id 1u2waL-00000003FBB-37NR; Thu, 10 Apr 2025 18:25:09 +0000 Date: Thu, 10 Apr 2025 19:25:09 +0100 From: Matthew Wilcox To: Zi Yan Cc: nifan.cxl@gmail.com, mcgrof@kernel.org, a.manzanares@samsung.com, dave@stgolabs.net, akpm@linux-foundation.org, david@redhat.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, will@kernel.org, aneesh.kumar@kernel.org, hca@linux.ibm.com, gor@linux.ibm.com, linux-s390@vger.kernel.org, Fan Ni Subject: Re: [PATCH] mm: Introduce free_folio_and_swap_cache() to replace free_page_and_swap_cache() Message-ID: References: <20250410180254.164118-1-nifan.cxl@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: 7578418000B X-Stat-Signature: xkjggeq8s4yz47k8cd45uhn8essqaess X-HE-Tag: 1744309516-749872 X-HE-Meta: U2FsdGVkX1+IL48gHFP9K914wfgeEHXH8qfYRm/WuWXjAzMoTy3etAnqMqgnhY7WXFQ9+b/aFHNLQoouwwAGOlcTapdMaLAE5pA6wQJX2HixDnW8d016jcenTkE8OMKdP3+rTmDHsj85Od8ZCgZyuVHmls7O6xSzukZGEre/xTMOCdEHHmjPHJK9mH7o+Fz7WnU9Zs0i/0qtX5C+n75EDB/KffUY7PVF5s4ra2rZyTNCWJX4kSH5hubkW3Na8QRR7iV5t9x7UDQT+aif0udgr/4V1WT9Z6MxSOJAFO9rVo59hAPKhZj77mXvsL2/IwNCk/9uPpkd4VRJXgFAwSoQpede5M8/Hx/Cd5xbnM8Ju4tT7gU0UFvk2UiJs8C9+LE74hGRE4j82iNWfFrdbw7m8TyoO74EVTwTAF+kr3ptrfLiPuzy4TCBMi4Xn86jn8aBuKubA2GkVHmdbB8wS60CmQAD7ajGOK4NxYdECIU/rahy6940wckxb8JPjV7eKPbfrurbaxjSoB6B/u6iKuGMPYgcQydiO9DuDt7bUy17S3NMtzeFBXeb+NJ4qxmbp/jJLCZzz37FWS675o4edEu86Om0f3Y4dlvh5Y/TJn/ekeyfcCXQ1K+GC9PHZnLcRiTVkf7JZ7nWWRqvglaRCahH+z4YB132rKz1565i9c1Bj8MlRCI7a5I1JIg4WQatDIqFJ7Tv76B/PCBQ91EMEqFcS6Nqp6YuPekWsGWWs+hvMOFQqINZ7KbNXdZVgK1HzsR0syQoQxEO9JTjG6r/M+VV+maleQ19AtlRyaaBzQ1xvdvq0N6BPYQDf7YL4pfvB7uR46fQiCIUKdZOpv1MF74SRjXj/6kNzRWIdH9g0O49CC4A/VjwXguf+/jACnQsD2Atr5Ne5L/2MieTWwnewteJHIinv7uc0lV2QuPy2LXi6bekaI5zgVh/GQym9kWWA+gl2h+2FxjplNvn/YvG44x pEV7wqja W+En8kGEqYidjMfWqXzrknqSxelOxZqs/Y+BEcHlSyOLjjaMmHhY30NfU5grP1QrESqxfkJ0KNMulAKpXz7DRezdk5E1Q1CdLT1GGb80PEPKKoNtzcgiZCD+ECeM4Jh2Q+3FUQFYmwiRMz6flgNM3/78VZam/f9l4y35xmWE0igxZmU8GSOp377KH4UGhh/X5QqHBshxoiG1RVUUQyGnTAx94Z7ktRlEJ8dQ8kZWkNdnr6bwzPSOt5zW1MZh27spp9VzLPTuBHlFf8FrgKoILZlJHRgsAvAjMmTi64w3yNU+T/G4Q6HQtsNcDxp129ldmqhnN2Am/VzsdObK4uAlSBWJAsA4rsPwLf/DA 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 Thu, Apr 10, 2025 at 02:16:09PM -0400, Zi Yan wrote: > > @@ -49,7 +49,7 @@ static inline bool __tlb_remove_page_size(struct mmu_gather *tlb, > > { > > VM_WARN_ON_ONCE(delay_rmap); > > > > - free_page_and_swap_cache(page); > > + free_folio_and_swap_cache(page_folio(page)); > > return false; > > } > > __tlb_remove_page_size() is ruining the fun of the conversion. But it will be > converted to use folio eventually. Well, hm, I'm not sure. I haven't looked into this in detail. We have a __tlb_remove_folio_pages() which removes N pages but they must all be within the same folio: VM_WARN_ON_ONCE(page_folio(page) != page_folio(page + nr_pages - 1)); but would we be better off just passing in the folio which contains the page and always flush all pages in the folio? It'd certainly simplify the "encoded pages" stuff since we'd no longer need to pass (page, length) tuples. But then, what happens if the folio is split between being added to the batch and the flush actually happening?