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 C797FC61DA3 for ; Tue, 21 Feb 2023 04:39:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1F2E36B0073; Mon, 20 Feb 2023 23:39:35 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1A3356B0074; Mon, 20 Feb 2023 23:39:35 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 06B606B0075; Mon, 20 Feb 2023 23:39:35 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id E97896B0073 for ; Mon, 20 Feb 2023 23:39:34 -0500 (EST) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id BE2E640BA1 for ; Tue, 21 Feb 2023 04:39:34 +0000 (UTC) X-FDA: 80490045468.28.904DDB9 Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by imf19.hostedemail.com (Postfix) with ESMTP id C04F71A0002 for ; Tue, 21 Feb 2023 04:39:31 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=dpInxF46; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf19.hostedemail.com: domain of ying.huang@intel.com designates 192.55.52.151 as permitted sender) smtp.mailfrom=ying.huang@intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1676954372; 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=JTUM8ICKB74YDD1izoHCQuXWzg3d/87/qPMi6Yfl2Pw=; b=vr5hNMqYBjE29HDql+ZtEQNAriIVcRxrkt97Uj174troQC3UY4cgmqYTBvWCAIp0ShDoE3 /E5tdeQ50xCeCBVGXSSMEjLJYILwPGgW5YCmeoS3LVNeMmMScKlKfRIY0yhUEty8AiyH2+ lL2qX9HlCCgfiPv3ON+07Fmn/BCp0Ic= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=dpInxF46; dmarc=pass (policy=none) header.from=intel.com; spf=pass (imf19.hostedemail.com: domain of ying.huang@intel.com designates 192.55.52.151 as permitted sender) smtp.mailfrom=ying.huang@intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1676954372; a=rsa-sha256; cv=none; b=eYuzEMdg8Atqg4Mt67rrY4Ngn05Ivx9UQLzhv28WJs+CFMaqZo/+RPYlNyxB6hQeSYV6Gd SAEm1KNDuY/3pnKsy2L74uTSdhpKf8dBMGanirxsMvW+Vc8IIWws/XYMm99ZMs5paB7pFB vzR4vlMS4PJROUQm+ZWMbBdNsMi5O/U= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1676954371; x=1708490371; h=from:to:cc:subject:references:date:in-reply-to: message-id:mime-version; bh=H6rTIPIOCt+UY2zyHDEnqkD8A6gukmrfa7VgPX8asaA=; b=dpInxF46CL2qnCxMiUT4OJoAJOphcYQvsge1bC1ZXMRKE4EwkAGu4nP8 P7aIlY+v5eud6IXh85yyy7ayZ1xotp98ytgiYkHbMLDSjwRP1ctpWhU4E TZhoRqpGUeegjDWOZHe/WqwKgsFKcUvrhIsEApAelRiyKOaHGalfmFU4V V2ZHdsJ2kFGQIOItVQeMOrCpKMpM6jCiWMMj9EBq4j+Eg9apGlMAfJQuo NAhgC6Pbmpu1fDrpjLKCm9V/MYWQ7Ft+cWo0p5pgtwpEqn6gxBlG0lymK SKAL9w/qQSvqGwyYqhDk6XARQXJzXx4wi3oo0MKGtE4fOKIxtzATkg8PR w==; X-IronPort-AV: E=McAfee;i="6500,9779,10627"; a="312914259" X-IronPort-AV: E=Sophos;i="5.97,314,1669104000"; d="scan'208";a="312914259" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Feb 2023 20:39:30 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10627"; a="1000461185" X-IronPort-AV: E=Sophos;i="5.97,314,1669104000"; d="scan'208";a="1000461185" Received: from yhuang6-desk2.sh.intel.com (HELO yhuang6-desk2.ccr.corp.intel.com) ([10.238.208.55]) by fmsmga005-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 20 Feb 2023 20:39:25 -0800 From: "Huang, Ying" To: Matthew Wilcox Cc: Hugh Dickins , Andrew Morton , Jan Kara , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, Zi Yan , Yang Shi , Baolin Wang , Oscar Salvador , Bharata B Rao , Alistair Popple , Xin Hao , Minchan Kim , Mike Kravetz , Hyeonggon Yoo <42.hyeyoo@gmail.com>, "Xu, Pengfei" , Christoph Hellwig , Stefan Roesch , Tejun Heo Subject: Re: [PATCH -v5 0/9] migrate_pages(): batch TLB flushing References: <20230213123444.155149-1-ying.huang@intel.com> <87a6c8c-c5c1-67dc-1e32-eb30831d6e3d@google.com> <874jrg7kke.fsf@yhuang6-desk2.ccr.corp.intel.com> <2ab4b33e-f570-a6ff-6315-7d5a4614a7bd@google.com> Date: Tue, 21 Feb 2023 12:38:28 +0800 In-Reply-To: (Matthew Wilcox's message of "Tue, 21 Feb 2023 04:30:26 +0000") Message-ID: <875ybveipn.fsf@yhuang6-desk2.ccr.corp.intel.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=ascii X-Rspamd-Queue-Id: C04F71A0002 X-Rspamd-Server: rspam09 X-Rspam-User: X-Stat-Signature: 7iek7t1kcfijfqmqc9z8yp7iybe459kr X-HE-Tag: 1676954371-209755 X-HE-Meta: U2FsdGVkX1+H079zcvm05J1uKQGvxRdLDHKkSrtFsQRSWXlNdCtanBwSsjGV52ZZbd4PUWzwTEJzI7fy7nV9nO0fk19i4HNVFx+89uHaOrQtypzjpPOgbIx0/kVGPKrK7wVMzIWuC3mxoPUz8OKW4sR8JbL618kbvUQxeXkmFjeiibRaFDFubtb2Y3XhX2JUUU1cshIwToBBV7nHS0u4Tpuax6Glug4p8qrfv9qbcL4kGOPMUEvWJXuKUP8LtqXFs0dh/2YQciWnD5LAAe+01QCIQsEB4fZopkaWZoYBLv8N41tuE+wdD2o7jzw5yZJgmGW5KysDmXEecQABwoHSJy+0JrIo97Wu1aIBQkpe4q5p0hvDcqBUtocwDh+NRE/haYFLl6arZunVFFLhSLM7QyP558FGAtyX47Mvt0h7jlTo6Jqbmc3kKj+9Z0Vq5JjLG7bDaTZUMxBfPHnYjwoUVHmS0VmZaDbh/UTn2sKQPtjiHOk8J3ntHJ2NYqYftD17ooTqkhrgIrzbt9AV7WCITObe1o4Ekd6xXWjl+13roBYaLwqJB0cCWnPjsDwRnSRLmbXjcNdL2mn9bXbQbwKZSh4/LIOrC3EEi8R959R9MxjOeylIqza3CWtRKKXuDYYEn4mjVnn2O6CXqedAdaK0Iqw+dGySrp/E3/XiOVFgU6iyzFsJrWm8GesYRqHJbvix3MV4Vx/gCZ/4bIVZ14CWTw7Rd9S4SWtEqHASiDjRoW8RQzI7c257tnuCnrGHD2/jw7q8x0WFMoNepb3N1ADWwvHFr73DCrjccLXUALpfup2OkGsu8mptKWClS25Us5PBONBuVyw6FV6KRN/b//2Q4i+sWVGvbg/mLxR3hgUUeqlOVUTKZHeqvj25PIYMMr00GFm1UltyhkqQG8tg1co1IwMV3UszrJVSLEKw/TLU4Bu9usuMeonxJqTUdR5SCrV8Rzn06UUmessmexE73S3 9EC8QyJk PE3MVWQlAv40W3FxjOTl5KTA1/5N3xJ3KVbn5bQF8qIM45QwXpV/1JAMksFGWCZF8uQ/IsB5rgTtsCy0MKI7MIpuNrzV8J5C4GZnBjPX2vJuzZgek+KFR/0u2Yei5WdHIz3nXSi4rAkqIvDwN8Es3E0wsaraMdFLkhcdcMR1s9IZEl0wAgd7CKXqZ66mMrFYjsNPFMMI4JygwqcXEGlA1aCzWmqFkapHUEshlhF1gg+KvnwqhkTz6md3NRN8INumYcMRLDg5+LDqa9Wox1RFNgUBLQk28feflX13A7nDYiYhbuFGeZGmm1PmKZeznkWYhloeUJt+gAj3FEDqTrI43zRZfLA== 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: Matthew Wilcox writes: > On Mon, Feb 20, 2023 at 06:48:38PM -0800, Hugh Dickins wrote: >> Yes, that's a good principle, that we should avoid to lock/wait >> synchronously once we have locked one folio (hmm, above you say >> "more than one": I think we mean the same thing, we're just >> stating it differently, given how the code runs at present). > > I suspect the migrate page code is disobeying the locking ordering > rules for multiple folios. if two folios belong to the same file, > they must be locked by folio->index order, low to high. If two folios > belong to different files, they must be ordered by folio->mapping, the > mapping lowest in memory first. You can see this locking rule embedded > in vfs_lock_two_folios() in fs/remap_range.c. > > I don't know what the locking rules are for two folios which are not file > folios, or for two folios when one is anonymous and the other belongs > to a file. Maybe it's the same; you can lock them ordered by ->mapping > first, then by ->index. > > Or you can just trylock multiple folios and skip the ones that don't work. Yes. We will only trylock when we have locked some folios (including one). And retry locking only after having processed and unlocked the already locked folios. Best Regards, Huang, Ying