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 64C83C02180 for ; Wed, 15 Jan 2025 21:36:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id EA325280003; Wed, 15 Jan 2025 16:36:09 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id E53696B0085; Wed, 15 Jan 2025 16:36:09 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D1B7E280003; Wed, 15 Jan 2025 16:36:09 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id ADBDA6B0082 for ; Wed, 15 Jan 2025 16:36:09 -0500 (EST) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 5C838A0306 for ; Wed, 15 Jan 2025 21:36:09 +0000 (UTC) X-FDA: 83010994458.01.B08F260 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf12.hostedemail.com (Postfix) with ESMTP id D3F3040008 for ; Wed, 15 Jan 2025 21:36:04 +0000 (UTC) Authentication-Results: imf12.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=ToVkVfF9; spf=none (imf12.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=1736976967; 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=0OijV5p7C7RviN2UZr1cmsa6u4crmEp6ronCk1lgptI=; b=OBaPp3FPQ7k6K50nNfiJ4uZ6Wt8dKe/42dm6bhsc6KrK1IBp8dNdJseT8sSutcsAxAuN+c 9iDqTqhqr62kPNDmMwUZEs09eRIQdg1yT3dhppMyKnPvTkhDDKIXP7SCufo3ai73d6CZyG ZW5URgIXnrEKEr1eHs98QJGPSIQovcg= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736976967; a=rsa-sha256; cv=none; b=kTFmp9Pv+kbnRmmtU0uGz2HPUxpo12LdzQg/qhjT+i7tFlJL0t4Y94jkBMYsi0M6hNTrHj rFeHcI/Uh9wUs0KKTKvS2uk/118J6vovre76pq9z9hw4AFiZCTaTgTPzeOVml0hFr/L4IA 6QDUIaNWe9GgleKWhL0wy2yJwr+Uv34= ARC-Authentication-Results: i=1; imf12.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=ToVkVfF9; spf=none (imf12.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none 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=0OijV5p7C7RviN2UZr1cmsa6u4crmEp6ronCk1lgptI=; b=ToVkVfF9/LpCeHgqRA5mEb2Asr 5IiQa1pSVMQ6mQ6jaE+0AsazgzqSxYkpPEmBGojEh8PatZnK/5QthRSP/VYH6rh70nn6Ke/EJPSqR pQvIeA+gO9O286BzuBzwiq2/nIhxNeuYTGDoy1KPurQxuR3srMkbURdzu+yYH6lHGZbedKnufVhtr S9bwMcCETcS5GTTW5WKl/k/od94Vb1K4FfaL3nYNNeJ4VYYUz82ygpQr3Bbz68Mw9tcQMJoi4Lsda Ph6zvEZ4kSPPfC4N68dEshZ6RHmhrllQtU2V+OMl8wsC0eInunxvmZ41WLChbyJSb3Mcunp/jP/Ca pMZOl1QA==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tYB30-00000002AHj-3YDk; Wed, 15 Jan 2025 21:35:34 +0000 Date: Wed, 15 Jan 2025 21:35:34 +0000 From: Matthew Wilcox To: "Kirill A. Shutemov" Cc: Andrew Morton , Jens Axboe , "Jason A. Donenfeld" , Andi Shyti , Chengming Zhou , Christian Brauner , Christophe Leroy , Dan Carpenter , David Airlie , David Hildenbrand , Hao Ge , Jani Nikula , Johannes Weiner , Joonas Lahtinen , Josef Bacik , Masami Hiramatsu , Mathieu Desnoyers , Miklos Szeredi , Nhat Pham , Oscar Salvador , Ran Xiaokai , Rodrigo Vivi , Simona Vetter , Steven Rostedt , Tvrtko Ursulin , Vlastimil Babka , Yosry Ahmed , Yu Zhao , intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-trace-kernel@vger.kernel.org Subject: Re: [PATCHv2 05/11] mm/truncate: Use folio_set_dropbehind() instead of deactivate_file_folio() Message-ID: References: <20250115093135.3288234-1-kirill.shutemov@linux.intel.com> <20250115093135.3288234-6-kirill.shutemov@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250115093135.3288234-6-kirill.shutemov@linux.intel.com> X-Stat-Signature: thekfn45scionp4indma3k64357tdj6o X-Rspamd-Queue-Id: D3F3040008 X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1736976964-835123 X-HE-Meta: U2FsdGVkX1+xQHbG4UjvcQKM2ZTuDf4oz6VqgXnLaqoxW0Aoga4gv6y04U1MonT2b/juWnJcv8AyiXkThJbT/dv0y1J9IXpxTgxZx4SGqki5dJkuLmWa9IXPnuT8UydMPCdTgZRf/N+uL4BXPiYZdVRQPmEP8uiZLrME10vXTqjM2ghE4kZNQAqE0YxVWkQCb14D9kE3ypnZMQO2T0zKaNq8qYcyus5PS4MXC1dmfvKYVTcQAd2yGRt/M8gQ1TLCXrYBnW2c88uAlHEVHGxLWVFQLG9gNympK3yp+0Ylc0gxL25oMOQkwzUFxwM9WiIE18Up1fHCouG0MpilZYvQLzRpTlVbSVAnqzQ1JNTeGIV8PcIjDz6QbsAPb0pZB6XbDCahZ8ZfN1nF9KrgrzMw8eobxvcW3G1jrxgccurUBfwIlGfrtkksD8yB64MyyaAKJpKQSsGxb5gMaNshUuGcPWxTmI/S9ba4OcZjhplrFBbvhOLDr8+UaYLfFzTm5aXRi27wkbJ/StSmmyzAPvkVCONf4ZPX2SYxIfwXd+Tr7nRt1dUK2h74f8NNHO+pbZQSS+8iQRN+xpinsaUaJTD0SlutwHf0v3AsT66kN7hykhcsBlk1UC7MnDHMqguy3ZXJhrMtxdqQpfIOiUMWErM88qul0CY3PNzHhXBrwCLFnXnuMh4kHLK/ogc0Iumyds03hKA4pLvv1piEuI/Z0iCcw34iy9Mbz9rPN6DvNqu2H0s5BP9Kxm8APQaZpgCOmR0c6wCeISjfOR8q9fVjxZTHT71bxYKSG381sVPz5xkEab+bOmOI9K53plxlUiIt2VApTHdHKX+s9Fe+FKLXNX9CvXWX2wIjKjg4/4jv+CSazxMO5qSCYUhyXU4kuEb1v7txsAZcVSTZSpYlc6gG2p3m5d4Ku7gkL3+WuSM6NI1a/cpodIncwUkdxgHBHHAcyqM0UvYyeNfIS4ZG0eWeNHp EDD+vY5k 44y+WyHyt3cZv3bELxlZiDiP0coxbgrUkzfgT+JIQUUPOx4ug9eM4m7+jzDOzYw9hy01ZI8trd5oEGYBERn1bYOno6vSoV6k9zg3V/fvHiUKbWbdAL5UduEPh2ppUVl36+oYC3j++Z4ifF4x3s9bbU6GUUfS0ES3Ee3dzK9oZC0k3QWcyfZt5cBmkrPVooZ5dJcFZKadm3zQWJof6qmkwIlZsNFOZ/xF/7HWBB4kfUGbhmLeKw3rF9rN7eHOr2u3lGxQiMY1Pemp9iZW3mrUjDZCmIg== 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, Jan 15, 2025 at 11:31:29AM +0200, Kirill A. Shutemov wrote: > -static void lru_deactivate_file(struct lruvec *lruvec, struct folio *folio) > -{ > - bool active = folio_test_active(folio) || lru_gen_enabled(); > - long nr_pages = folio_nr_pages(folio); > - > - if (folio_test_unevictable(folio)) > - return; > - > - /* Some processes are using the folio */ > - if (folio_mapped(folio)) > - return; > - > - lruvec_del_folio(lruvec, folio); > - folio_clear_active(folio); > - folio_clear_referenced(folio); > - > - if (folio_test_writeback(folio) || folio_test_dirty(folio)) { > - /* > - * Setting the reclaim flag could race with > - * folio_end_writeback() and confuse readahead. But the > - * race window is _really_ small and it's not a critical > - * problem. > - */ > - lruvec_add_folio(lruvec, folio); > - folio_set_reclaim(folio); > - } else { > - /* > - * The folio's writeback ended while it was in the batch. > - * We move that folio to the tail of the inactive list. > - */ > - lruvec_add_folio_tail(lruvec, folio); > - __count_vm_events(PGROTATED, nr_pages); > - } > - > - if (active) { > - __count_vm_events(PGDEACTIVATE, nr_pages); > - __count_memcg_events(lruvec_memcg(lruvec), PGDEACTIVATE, > - nr_pages); > - } > -} > +++ b/mm/truncate.c > @@ -486,7 +486,7 @@ unsigned long mapping_try_invalidate(struct address_space *mapping, > * of interest and try to speed up its reclaim. > */ > if (!ret) { > - deactivate_file_folio(folio); > + folio_set_dropbehind(folio); brr. This is a fairly substantial change in semantics, and maybe it's fine. At a high level, we're trying to remove pages from an inode that aren't in use. But we might find that some of them are in use (eg they're mapped or under writeback). If they are mapped, we don't currently try to accelerate their reclaim, but now we're going to mark them as dropbehind. I think that's wrong. If they're dirty or under writeback, then yes, mark them as dropbehind, but I think we need to be a little more surgical here. Maybe preserve the unevictable check too.