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 03C4BC54E67 for ; Wed, 20 Mar 2024 13:01:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6D7756B0092; Wed, 20 Mar 2024 09:01:26 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 686AB6B0093; Wed, 20 Mar 2024 09:01:26 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 575D76B0095; Wed, 20 Mar 2024 09:01:26 -0400 (EDT) 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 479E86B0092 for ; Wed, 20 Mar 2024 09:01:26 -0400 (EDT) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 1180F1C15BA for ; Wed, 20 Mar 2024 13:01:26 +0000 (UTC) X-FDA: 81917428572.13.0F08F93 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf14.hostedemail.com (Postfix) with ESMTP id 0C23B1000A9 for ; Wed, 20 Mar 2024 13:01:13 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=R9snuk0E; dmarc=none; spf=none (imf14.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=1710939674; 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=Pcs/qG/ocyE/tlTca8TkKVXl8mnst2CUx2O+igwbRzI=; b=gp3ALVFt+1iRqtZ/lFBEqv9vYcjZ3HOD1jikWuPuWeJdsLpRnSSwvtGHAri1p/SMvU9gH9 kHPfG9p9xWvwIMuQXiBHTbRu5KLLOYd++mDnEfV8stutaVnvcFl1OwLwTJA0CqSbeD8gTf VoVINNnYpGkrW6aoyM0vppaDE4cVefE= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=R9snuk0E; dmarc=none; spf=none (imf14.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=1710939674; a=rsa-sha256; cv=none; b=vmCo/kQu3joYPkZ6qTfeX6wEU+YWFG+wRsLKydxNhphVcA7jGU4tLLR6vzHxT6CxtVUkF2 E8tpXF2JB7IpP0TK6BD4wmCCBQLSZjWjyQLp8dyiFYyfRFGfe03jVBP6KfCGuNgUPUd4Xd 8fJmlhDFopLOVGQ9A4q/uNbFvvxn5kI= 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=Pcs/qG/ocyE/tlTca8TkKVXl8mnst2CUx2O+igwbRzI=; b=R9snuk0E2vaBgnxz7miYmX5FOe 8ho70rGWZUDLIOHgErUJpawK6NtkPaaw4znVkvXxj6cDVa3pF/DwsCri3aJYW5Ee5n8EYVCHCefr+ RmPRR+IyMC201dc5hTT2Dt3G9tqR9JYRYKhBAMlpSRF6t6PBhA8HKNq/gDwpah8BJr1rsmT6494gz z0jUceKAtpTjyc20uph3JoYD5fywmMPqzUvM9SyznO1D0YxeSyokls6eq4dyttX89qcBnJu9VmFWj 1yMRM0z4xcjt8xtThjTKxcPczW0Bj7aZ1mCb9GzwSEzEWyiqMZlYCXNu2ywwjuB7dT1e2GXdhkW/Q qa38H1OA==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1rmvYw-00000004L7b-24U0; Wed, 20 Mar 2024 13:00:58 +0000 Date: Wed, 20 Mar 2024 13:00:58 +0000 From: Matthew Wilcox To: alexs@kernel.org Cc: Izik Eidus , Andrea Arcangeli , Hugh Dickins , Chris Wright , kasong@tencent.com, Andrew Morton , "open list:MEMORY MANAGEMENT" , open list Subject: Re: [PATCH 03/11] mm/ksm: use a folio in remove_stable_node Message-ID: References: <20240320074049.4130552-1-alexs@kernel.org> <20240320074049.4130552-4-alexs@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240320074049.4130552-4-alexs@kernel.org> X-Rspamd-Queue-Id: 0C23B1000A9 X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: 6mmssoqa8aspb3texofrkqs9oyra58u8 X-HE-Tag: 1710939673-531007 X-HE-Meta: U2FsdGVkX1+KGroruu1AimYDlf2LA/Ad4xhluFwU+pvxGG7MdneAJjHqIh4EgYqRmHi+t1IWBZK9rnrriQ6dc23JA0o/+ATyyrvLNc04pCPwXStGE+Yy9cJZaCIKgtD4JceD+MvC+I1kJxtlQmzWGFwLCslak+j15XNELJajRNnRCjR51BN6nNRSnnO3H+wQxy6k7haPK8r4dq8zI+RDuOJvLokeoZeGL4SkpTEw8+oWWymGBzmgIIMTlAks184Fol1karqOjmmIscNMQzdt2PT3G8M82xANQHtc0fR5qkyPOHub71nY5hB/1RdHAI0DYkB3sAC06Yrg31G+2Ts7CU05IF+5JD/NpNfzxW6cu20aDHhU1wz5qyVu5f+XKaUnSWa3saD2GWD1dCOtcIjwgHFnB7TdXzTT6PON3AAJkCekQL74tXeL0QXoNaoEakmP6s4+gcjGmnNl+5cInmdPGu2X1xSjg/46HG3d0v6keSxPgLGnaAT7Fvnawrq5ioAKlir2F2wosA7Y/rtfTEXn2UiPsA6hcqFgoknXkl+IoMVzmRwKVCQzfryOqoN1tquLER3PpXhVkRI94zUkuTKD59CrlKP8GeYXUi8G4/42JnBwXMwnXaVsFcFBUOUexyAhD7fT/LxHFxxdhkj7Sp/2iY3hyIeO6UBAiXUzKT3leVjXVkIY/Euqf47cFY3cBRvstv5BD6o74iCVcrau/qzgt5XAjsM4YXiM3xLE6WdhGgELOBxml71fEzbzl1EUqdVh0rLRepl8/27nipr01tOdEp47jYTZjRF40Z3hemZMQV5fYX+vZviVYeZVLVsD3olw9QINoGEJUiBUUxc4k3TdIT0ZgPaREpGxciy1ndpv9nzGNu0k9shi6AT02bZKdpSk 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, Mar 20, 2024 at 03:40:39PM +0800, alexs@kernel.org wrote: > @@ -1124,22 +1124,22 @@ static int remove_stable_node(struct ksm_stable_node *stable_node) > * merge_across_nodes/max_page_sharing be switched. > */ > err = -EBUSY; > - if (!page_mapped(page)) { > + if (!folio_mapped(folio)) { > /* > * The stable node did not yet appear stale to get_ksm_page(), > - * since that allows for an unmapped ksm page to be recognized > + * since that allows for an unmapped ksm folio to be recognized > * right up until it is freed; but the node is safe to remove. > - * This page might be in an LRU cache waiting to be freed, > + * This folio might be in an LRU cache waiting to be freed, > * or it might be PageSwapCache (perhaps under writeback), s/PageSwapCache/in the swapcache/ > * or it might have been removed from swapcache a moment ago. > */ > - set_page_stable_node(page, NULL); > + set_page_stable_node(&folio->page, NULL); Before this patch, introduce a folio_set_stable_node() (and convert the one caller which already has a folio). I'd do it the other way around from ksm_get_folio(); that is: static inline void folio_set_stable_node(struct folio *folio, struct ksm_stable_node *stable_node) { set_page_stable_node(&folio->page, stable_node); } and then we can merge the two later when there are no more calls to set_page_stable_node().