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 7D44AC4332F for ; Wed, 8 Nov 2023 14:00:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 8D6EC8D00AD; Wed, 8 Nov 2023 08:59:59 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 886F08D0073; Wed, 8 Nov 2023 08:59:59 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 774C78D00AD; Wed, 8 Nov 2023 08:59:59 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 6A8928D0073 for ; Wed, 8 Nov 2023 08:59:59 -0500 (EST) Received: from smtpin21.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 33E81B58D2 for ; Wed, 8 Nov 2023 13:59:59 +0000 (UTC) X-FDA: 81434945718.21.4C371E7 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf08.hostedemail.com (Postfix) with ESMTP id EA445160031 for ; Wed, 8 Nov 2023 13:59:55 +0000 (UTC) Authentication-Results: imf08.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=taDVlVfb; dmarc=none; spf=none (imf08.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=1699451996; 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=E2O8VEEm0jssDUttytoq4gF0X536yxn5CittkkXinDY=; b=WYB8pMGOzIwwdEJEtjjDUQ46qBf2knvAYz5Y0m1/JLOCe0bYvPRiWO7rDsY35M2piTkzJO rS/80pTI2ToCnWmAF51aNyLOT3CQRdKXlklCn8QpTGHgIss5d/+xG9R7L3sG+SQEKHl3+s nnr0+Spi0jX79sy92DGlfHRGlGq/npc= ARC-Authentication-Results: i=1; imf08.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=taDVlVfb; dmarc=none; spf=none (imf08.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=1699451996; a=rsa-sha256; cv=none; b=WHi7geuXllUmm1SUX4gVUxWhJBnh3bi5a5CEmnIfHoxVE6EZ9RHzJqWmiOfbEYGvCciLpx wZa2HS/5b/it2bWsXY5Zhan8Zon4XiPZtfTTxUYxJSrgLx2sSXDErc9/ffxM4Xn8YGuazU NyANGpycfp1hU08p8lakkgSKezG8ZT8= 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=E2O8VEEm0jssDUttytoq4gF0X536yxn5CittkkXinDY=; b=taDVlVfb0ZvzQBIGoimggn2HhN aywdIbEU3WPA+RNBnrT4lH/xD2LubL2z/dzzO989G4tmnvntHwJwZ0hj1hw8hINwvggOt5dIO6AAj byzsCMVYAc4mRGZUX4vgJYeHofG4OQnFs2BfUQDCBemSQNomku6VMeiQFEk5S2nXrUHfRVzFXB6Mc 77B0eIqnHkUrBR/cSP84yR55ktsGmKbcX/r8zzPH9xGSia9xOa9GVdTnu1ETrBqSPthg602NPYO8M WCA+PlCCSQdX348qlzM2sUNp3MqAi01EPT8hHm6cUQpGUBCCtZ/tLzZaVCFevWkktgeR4tAwg4f/h gFeVLgHQ==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1r0j5w-001MjC-Gq; Wed, 08 Nov 2023 13:59:48 +0000 Date: Wed, 8 Nov 2023 13:59:48 +0000 From: Matthew Wilcox To: Kefeng Wang Cc: Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org, David Hildenbrand Subject: Re: [PATCH 1/6] mm: ksm: use more folio api in ksm_might_need_to_copy() Message-ID: References: <20231107135216.415926-1-wangkefeng.wang@huawei.com> <20231107135216.415926-2-wangkefeng.wang@huawei.com> <81e0289c-225c-4468-959c-937d3678cb2d@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <81e0289c-225c-4468-959c-937d3678cb2d@huawei.com> X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: EA445160031 X-Stat-Signature: g98bdoxbcc3zk84ob9aszf79jwaf5wx1 X-HE-Tag: 1699451995-491618 X-HE-Meta: U2FsdGVkX19gMGTgpvMmbBW877GrGew+5srT+nbqQbsWywv23WC3eZYSo2S/nSs873THj4GVwN6a6GxNW+/rH/bo0A1XS1DWsM8g9lmahk41lLcd/Vj7xboNWxcC08v7g3udd8d+dW8cTAEqEAvRh2Y4ZF+hOGD8FX5LNGMcbsFE66MiHwvHen5tr0cqFPm9u++pEWQmDLI9x7MJ7nBgc6u2ezj3nEoL8KsjX8nJ01svtybjsH40BJ/BurNsmhjdsRGY1Of6uQzSpsO+rSFtQ/ijkQTu1d2oeQz7S9Uh9/r+0eIlpG9lW2OqqdMySLbz8PyK3u8Ey+2vXWvlVDgvdFroscompazTUXB1ag0mEZrQQLsIj21suaUMVbfwr9vRs63mttQfak0kcTaUIlE4tBxT3SgW3/rnWVOl3YfansjTFrMlOqhr1/S5WD6VliyWHGjST7U05MnYtYcpipRuXTcZgFR+Ndk/r1g4H7J8Xr7O13ONf3rzcJ3wtmvd9fvuZWN+MZ3+ra6HXcDkOAvF9L6nXDCdM6usMi6V1auE/fZ2KcPluF2Qcf++VoFJejemD3b5dVa5GfFkHcpsl/vH5N/R5GB8Pm9yqh7++OE+opWA0XHyTfmAnlgq3qp5NdHyfCL0nLsWICHfhefzy0zuWFPXrR8ub/gtYqtufLKJGCoZzL7DuwJwKFh8/brMro4ECbGyXimMiJGx8nTc5K9ueLEFuOHD2Lrc7MUxP7rrtWkCF0xg870VJuZ77/sw3ZUFWyqBeTLf6XRjKDEmeUf4uQlLOeZgR+LBdCeu7hpGnVeliRb0ZAsBfMALyn4V7qq03cLV8z4xYxdC/Eq8PTzNA0oYGYurkrOP/hhnxsb90hqLZyMGo5FL3TNZIOPIeRH8O9vHmG9HVrirSC0lAB5fb9EVFMJheayDMZbEUX3RN0CX4nqyz5pHeCCgq9/4KOeOW6ZrvvBnX8FfGUAsL+i 6LdGVwGn Fa4+fyhM2WW6Qs867iHyq5QKVwCX7ReBzld2ybPPOR/HLs1JiNEvxphDG+GJTaM1ShcKORISsFR7JsSufVoZpCcI/ArQzs2GyOZy6TSLRG4s5lgcQqjsBlyxrQWN4/2DDMzMrkA3//Kattvw/tp/c914I1ip57GYAGlHK8WGa5uxNyPft+FFHn8vqPQ== 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, Nov 08, 2023 at 09:40:09AM +0800, Kefeng Wang wrote: > > > On 2023/11/7 22:24, Matthew Wilcox wrote: > > On Tue, Nov 07, 2023 at 09:52:11PM +0800, Kefeng Wang wrote: > > > struct page *ksm_might_need_to_copy(struct page *page, > > > - struct vm_area_struct *vma, unsigned long address) > > > + struct vm_area_struct *vma, unsigned long addr) > > > { > > > struct folio *folio = page_folio(page); > > > struct anon_vma *anon_vma = folio_anon_vma(folio); > > > - struct page *new_page; > > > + struct folio *new_folio; > > > - if (PageKsm(page)) { > > > - if (page_stable_node(page) && > > > + if (folio_test_ksm(folio)) { > > > + if (folio_stable_node(folio) && > > > !(ksm_run & KSM_RUN_UNMERGE)) > > > return page; /* no need to copy it */ > > > } else if (!anon_vma) { > > > return page; /* no need to copy it */ > > > - } else if (page->index == linear_page_index(vma, address) && > > > + } else if (page->index == linear_page_index(vma, addr) && > > > > Hmm. page->index is going away. What should we do here instead? > > Do you mean to replace page->index to folio->index, or kill index from > struct page? I'm asking you what we should do. Tail pages already don't have a valid ->index (or ->mapping). So presumably we can't see a tail page here today. But will we in future? Just to remind you, the goal here is: struct page { unsigned long memdesc; }; so folios will be the only thing that have a ->index. I haven't looked at this code; I know nothing about it. But you're changing it, so you must have some understanding of it.