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 5506CC021AA for ; Wed, 19 Feb 2025 20:57:46 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E34826B00A6; Wed, 19 Feb 2025 15:57:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id D6F8A6B00A9; Wed, 19 Feb 2025 15:57:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BEA2F6B00A7; Wed, 19 Feb 2025 15:57:45 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 9DAD7440179 for ; Wed, 19 Feb 2025 15:57:45 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 49BF180257 for ; Wed, 19 Feb 2025 20:57:45 +0000 (UTC) X-FDA: 83137905690.21.DA652F9 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf07.hostedemail.com (Postfix) with ESMTP id EC5B04000A for ; Wed, 19 Feb 2025 20:57:41 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=LVULq6oP; spf=none (imf07.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=1739998663; 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=f94VpCiIl8a2I0qDr+LujsMvrVHieoe1sVcOcgeYMTE=; b=bPnJtNAz6RVAvh1c6S1YAmPbxjwdr4qSpIfz5CuRTA3JibAlKmdj0SEhRPxgQ72raQlIe2 4KduMUPDu5wktRr3n8n8+ZY5YrlJj4xZ+mnhg1lYy5DyvqYoNK+ZRk1ceN/sYzpEEQzoI0 u8O3QMRLxIarWDONITCj37sumPX4+OI= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=LVULq6oP; spf=none (imf07.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=1739998663; a=rsa-sha256; cv=none; b=2VCK+0NgU1kSIMpZ2L9NKxNdBRaA7TPDBztHP+OtNsZNGqh1OqZVSnUZ5B8ujTrgXG8rv3 WEuuuLOdYf3l6k3nutKzSJ8kHrFVreHYI8ezV4GdRQDsC4pnqiCJQ93rNTIHXkJq6NUWg7 O7hWrBYz+YExm8dbdwlmjmjIC6Wakgk= 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=f94VpCiIl8a2I0qDr+LujsMvrVHieoe1sVcOcgeYMTE=; b=LVULq6oP2UzHNWOGK9KNudBmFg 06TwrTMhQne+4T3RQ/fRXzrSLkzdane8eDpIPFLP1e7PSPGlh/BapVTlQMh/76TjEx2XcxVbVV5qY FEL3UFwAPkUfyh2XDgyHcM9vlxtvEpq92E41pyUWonGxU+OTuLRxgCrsrFrYA2Lc0OCW9RcHLemeD TzmW6gLpNYs1uJOIhFV5d7jmmMNG+A34KPBMTwUz8CT7JfSWgqKlq8SGljwBMF0+U9YdUtqYsDkaG jzTJ7CLcRy1w5XvtajVKtD77c9LbTmaXuUvVS4q2fNydYmGvhVqo9oXr6BkD4+N1o6ozTImz9pbPC Sjobfsww==; Received: from willy by casper.infradead.org with local (Exim 4.98 #2 (Red Hat Linux)) id 1tkr8T-00000007BID-1vcw; Wed, 19 Feb 2025 20:57:37 +0000 Date: Wed, 19 Feb 2025 20:57:37 +0000 From: Matthew Wilcox To: Barry Song <21cnbao@gmail.com> Cc: Suren Baghdasaryan , Lokesh Gidra , linux-mm@kvack.org, akpm@linux-foundation.org, linux-kernel@vger.kernel.org, zhengtangquan@oppo.com, Barry Song , Andrea Arcangeli , Al Viro , Axel Rasmussen , Brian Geffon , Christian Brauner , David Hildenbrand , Hugh Dickins , Jann Horn , Kalesh Singh , "Liam R . Howlett" , Michal Hocko , Mike Rapoport , Nicolas Geoffray , Peter Xu , Ryan Roberts , Shuah Khan , ZhangPeng , Yu Zhao Subject: Re: [PATCH RFC] mm: Fix kernel BUG when userfaultfd_move encounters swapcache Message-ID: References: <20250219112519.92853-1-21cnbao@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: rspam11 X-Rspamd-Queue-Id: EC5B04000A X-Stat-Signature: xfjghyq8qu9tu76iqcr6cr9sh5fbc5sj X-HE-Tag: 1739998661-105099 X-HE-Meta: U2FsdGVkX18hZuzz9LoXhlB8oKoSyUbSzZhZDOTFu0fIX50Je8ajXfoxeKCCW3y7Ul+ShiITlx/WRy4AS0x+Wsv9cJumTiCjaC+sRAebU1I0dsDxchcZRfOGniNp6JyZNFfFTaQ7mD8U9WsgMTVKfUUQJb1i7Epnq+YtC2HuB/JYkjlr8ABKGCwpbSBe/YveXfMpzy+gy6QA0Q5qW2Qvu5+Xp3GppWgUt1NygnZXK9f9Qc0/z/jzLKzGwv7x6jo12Wrr0C49xvxlmBJkL7U4ucz6z98WXaDu49fFGNuO4QRACyPy5e+iBrxa507hFCWOkWGT9m8dUBQ+Y02zfKHnbh3Rvubiox0Ol2y5hMz3myJJkCGHfcAn+0VDqdaf21Eft8frC+bIsCSKYC9mL0a85Fxcwfsu3f4ghxjJ5mBsdob2e9r2T2e5FLvmhg5UU6HVo5/vjmVicRSZuv8N2KzDbXy68AZZ0546xYLUIWeCItXHlTA2UcYH587B5zmtGyWFpSF/mx6ORm4Q7NUR/Xk/dS55aSvqMWOxj28rsXggnAUMzMI64e1CtC0hHkjNBtoYDIvbn/iPkIOHhOplJMcG7u+Z5quH/PCv63kuCP7hbeaN1Xs32Y/+UiIQPl0h7o4/FzUXPxYKC52MDWIeStbmwTQTBYQqFUYLNKB70udM9QwMY9Ywps8VRtnB8xXTtK1PLtcfeGnK8gyQ0i++QyxZQhOe9xzpMwjiCri7ExBjw0CEADYgOkCKKax9M4Pca2hguIV+Ch6gHqAwTqxW00NVt7CrnKAGoM8yZ/W9RFgzOTFSOpNrDsx3TgKFqXWc3ZefRIRDKeZEYYyq2wYO2iaitIAeT1qa8aswAqbzWN3j1m+QjPe14GKIHZrJhSfcN9KymuqcKhiMBatBMUEotKzir2hfcbebmiDuWQGz4RrqAwx57GT3UogpIwXIH/f48Cazf5bevQ7LRoxvj4C+Xxm dwrjoEUS yJvIyMf/cPmsRXdSjHD/jYIjeNPECL2Ag/X/EUyuapKDZalZFk7GYE3UdlhdeG4X5rFUlOwghNx3VXuIbAPtF0oliyoApZm0VHk8tyrJ2NDt1fe9rHQOzYSHxcrJr31sc4couN2AVI9X4ZaPEHWvh1wdp3yvvYXdH6D3njMADgB04XDIF1sKSfK2UOahxpN5p8WjTfv5/gpY1GHjIQqPzDF9FDRKnrd93dRjSqkwGtpMuE4kumQul4cRKJOI/JKOkfoAvFn6kioTU2TKzNYT3Zr879g== 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, Feb 20, 2025 at 09:37:50AM +1300, Barry Song wrote: > > How complex would that be? Is it a matter of adding > > folio_maybe_dma_pinned() checks, doing folio_move_anon_rmap() and > > folio->index = linear_page_index like in move_present_pte() or > > something more? > > My main concern is still with large folios that require a split_folio() > during move_pages(), as the entire folio shares the same index and > anon_vma. However, userfaultfd_move() moves pages individually, > making a split necessary. > > However, in split_huge_page_to_list_to_order(), there is a: > > if (folio_test_writeback(folio)) > return -EBUSY; > > This is likely true for swapcache, right? I don't see why? When they get moved to the swap cache, yes, they're immediately written back, but after being swapped back in, they stay in the swap cache, so they don't have to be moved back to the swap cache. Right?