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 7FD7FC77B73 for ; Fri, 26 May 2023 18:46:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F2430900003; Fri, 26 May 2023 14:46:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id ED4C7900002; Fri, 26 May 2023 14:46:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D9C93900003; Fri, 26 May 2023 14:46:31 -0400 (EDT) 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 C78F1900002 for ; Fri, 26 May 2023 14:46:31 -0400 (EDT) Received: from smtpin15.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 90B6CA0C65 for ; Fri, 26 May 2023 18:46:31 +0000 (UTC) X-FDA: 80833286982.15.D7E9186 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf17.hostedemail.com (Postfix) with ESMTP id BD2E040016 for ; Fri, 26 May 2023 18:46:29 +0000 (UTC) Authentication-Results: imf17.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=BoDyrS3q; dmarc=none; spf=none (imf17.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1685126789; 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=1cJq9zIs0nZ+a+dTmYQ4RE64ai18LNw3YMg66oEGC+o=; b=SLaEU2kvblOUqHVx6ECJwPDqw8ANGqkF7/QINUHS99CPPUPIxTrTh2LwrQxYRTDablFOzc Hoq1g7SZ4/TQbQmq1qwl4mXuy1Wf/ia1biTMbd7cnqbHR0uEwDbp48a0H7wizqeRqm9PFM jhiYIKkJTE/rlk79D/BPWPzz93FFkA8= ARC-Authentication-Results: i=1; imf17.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=BoDyrS3q; dmarc=none; spf=none (imf17.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1685126789; a=rsa-sha256; cv=none; b=KOTHf9WAxU10uap3E/X0zlI5/SIHBr2SOs7dfqCHZvMoopL1n8LNFIh+GTvhHEsupTGsSh KTw6QG+L9up5oJ812i/vYBuKLVsSMGRktEu53oIOn1a2vTpj6tAinv0zl4x/Q2M+Y4mlDV Ky3zeqD57b5x7FTdK4MsqLfpZ6ZQZD0= 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=1cJq9zIs0nZ+a+dTmYQ4RE64ai18LNw3YMg66oEGC+o=; b=BoDyrS3q49eYTzYXMZ+EQJdZQ7 XsFEfXiEGufp692c5s6T3VqZOR19XZXZwCdeHmaE5NRNcJ0x3YGH1IR5hBdWvXpbCi75VF1aE8jCo UDRT2dLssfTd6LUv8fHprvJV4ga0idQGoomgMfuKcwGZdTh5Z4hI9Bk0ptFrU2xYMfEO/AoJ0BY9T hRqSx8shvhkP3giwTuNDvQ5o9hqrrim4nRHfoLJUcq1SWGxXyb5TIxQMiSjiOxU5bBf0rFrouoqEY GpAC+0PqXTJE/Xk/5K7E9AJRTEpGaixlUa2olPvY9Th1ECbj8ZViZJleR5NiMxxt364zC11dAiRvj 5zkLNQ/g==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1q2cS8-0032fH-28; Fri, 26 May 2023 18:46:16 +0000 Date: Fri, 26 May 2023 19:46:16 +0100 From: Matthew Wilcox To: David Hildenbrand Cc: Khalid Aziz , Steven Sistare , akpm@linux-foundation.org, ying.huang@intel.com, mgorman@techsingularity.net, baolin.wang@linux.alibaba.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Khalid Aziz Subject: Re: [PATCH v4] mm, compaction: Skip all non-migratable pages during scan Message-ID: References: <20230525191507.160076-1-khalid.aziz@oracle.com> <60367660-f4a3-06dc-4d17-4dbdc733ef74@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: BD2E040016 X-Stat-Signature: htjsc6xt4zkfk589dgrpt3crecjkokux X-HE-Tag: 1685126789-638462 X-HE-Meta: U2FsdGVkX1/U7TrYEd61Ghud9j0KMFs3Y2GIvZXM/1Tk//5bGrZgLrBXNj0F+QWiTavf8FRheEewkIioIIqq1LYwA/p6K+RB7TxCtSHwnSGJghafjMVwlKRiLXqgVXp0IdfW5Htd9cpIfmRKhvitx01Od4s4pGPicwGQGCIGjuIH3JG1Bkzdpf89xXm7XdYMIwyVufHP3SXQHygwzVzdsSYvt3pzeuEEvsuTdJlZPCOm7vIBnIQ9pXskkg64x3IjAYaLD/N7v6jzZ4e4/7ZY+h+Kg54+nX+r4lY6xTiQqJexgGL6CLIesQGx6RaQweue4Zl1O+ZQ0BNrhZNG3QD5jn0RIVzSTXE3rzQ8Iu+05ccXyehg4aEyJHYInWP4SPUmRA3Y+9X7DjWNlcXh96xKumClaL1SOuyjTwuLxiq0rsZ6Q7qxjKMYMcrLFuZ/4AuTinYp1uge06n6yg8jNGdYtTbLvDzh/l3QpXefn4LkwyInAWRAm45GzGEQ6kBh1O9kvYNvxE19SU0NLumxZGkvgVT978BUito3qcgOOo4nR2WIVwaPxgUuKY+2tWJbu6G7Gx/kDy8PwdOsrFG09oWLRR5U8AnoD4ONdA1dZF2x+WqdxzvYLiJWOZqTV2+JphTXUqCL6nkAM4zjgWW+F5N8hcximqgPlugmo39+/A9FAFKRvcY+afMJ1JaxhKQNZyNl8ys/3yT6jwlGUkPD75fd2XiT07++0FU7srB21bEDAFf01/8SR2F7VPLG+JK0hvBN5LfmvaBLf5lnWfYCQrTHDpLDjmZ0tnHowzFwxrAmH03IVDs0AN0KpZSQBun9V7rugNVnEzJQp/urFA1RC9uwyJKZVYY+jevj6zMmKrBiSaJzU+mgjtEs6+yaydV+DlztbOowk7AAWUh0jhUhTeoD4G4zLHojv5fT6tO/p5VRbYIomMYRuRf0x/JmyN4N3fGx9qSMN4GhadIUD0Rav7K h6Y4Lq7Z avpQBIZuLVqFn6powVT0G+uthHPjJFx+Vcgk5E3LlsM8pZ0E2buf0oyDPuI9Cyxce7KvC55pmPvNeTBMiqhYbHUAvfaoOWfsYAyrgpKSA9/vmnkd1B2Zn2t3fGSTbB7oOsKs2LYSwXlNRUU8= 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 Fri, May 26, 2023 at 06:46:15PM +0200, David Hildenbrand wrote: > On 26.05.23 18:44, Matthew Wilcox wrote: > > On Fri, May 26, 2023 at 09:44:34AM -0600, Khalid Aziz wrote: > > > > Oh, I think I found it! pin_user_pages_remote() is called by > > > > vaddr_get_pfns(). If these are the pages you're concerned about, > > > > then the efficient way to do what you want is simply to call > > > > folio_maybe_dma_pinned(). Far more efficient than the current mess > > > > of total_mapcount(). > > > > > > vfio pinned pages triggered this change. Wouldn't checking refcounts against > > > mapcount provide a more generalized way of detecting non-migratable pages? > > > > Well, you changed the comment to say that we were concerned about > > long-term pins. If we are, than folio_maybe_dma_pinned() is how to test > > for long-term pins. If we want to skip pages which are short-term pinned, > > then we need to not change the comment, and keep using mapcount/refcount > > differences. > > > > folio_maybe_dma_pinned() is all about FOLL_PIN, not FOLL_LONGTERM. But according to our documentation, FOLL_LONGTERM implies FOLL_PIN. Anyway, right now, the code skips any pages which are merely FOLL_GET, so we'll skip fewer pages if we do only skip the FOLL_PIN ones, regardless if we'd prefer to only skip the FOLL_LONGTERM ones. > folio_maybe_dma_pinned() would skip migrating any page that has more than > 1024 references. (shared libraries?) True, but maybe we should be skipping any page with that many mappings, given how disruptive it is to the rest of the system to unmap a page from >1024 processes.