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 A7354C54E58 for ; Wed, 20 Mar 2024 12:54:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 151186B0092; Wed, 20 Mar 2024 08:54:52 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 102256B0093; Wed, 20 Mar 2024 08:54:52 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id F0B796B0095; Wed, 20 Mar 2024 08:54:51 -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 DDF696B0092 for ; Wed, 20 Mar 2024 08:54:51 -0400 (EDT) Received: from smtpin30.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 9ABA0121389 for ; Wed, 20 Mar 2024 12:54:51 +0000 (UTC) X-FDA: 81917411982.30.FA8CC0E Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf06.hostedemail.com (Postfix) with ESMTP id 32143180008 for ; Wed, 20 Mar 2024 12:54:48 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=f96N0vgZ; spf=none (imf06.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=1710939290; 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=Q5DZVbBlgdY/ijS/sr5XzHi7g8HUvHiHBkBIhAImlBA=; b=Yn3W/CfMTmq8VGwy+DyI8OoUZ7E/5+a1os2CiNI2UlSNld+ouH34AKwe0afmErD/soLbNV 7zbSQpKKMceYIPskWSTP2WaD4JIT6CgZiH/dAbA5/DHV95FAOCLkuh6ykxviSbum3cJzC0 72MVvwv5/OwgDz/cgUBKUzb1y/8Fw4c= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1710939290; a=rsa-sha256; cv=none; b=HLI4sfGG0srgLem32EVDAOJcgO1WRptXi4oNm7B9ISv9GhTSF8Ga0W/bnku0v7ZvFVztJ1 iBFF0yFnNE9ZREA06ENZoiQaOCzutTUm58BDYnSfSNVwShURzE6Ef+fTm3IjvnaU9T4Ncy 5aDl84A+iWST39H99Hnx2wrrJ6SUTQE= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=f96N0vgZ; spf=none (imf06.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org; dmarc=none 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=Q5DZVbBlgdY/ijS/sr5XzHi7g8HUvHiHBkBIhAImlBA=; b=f96N0vgZi46mEsOaJTXd20XzPY n2vtse5NKfY9beFU2Y2cTK3Qop4yRyKH2DDQujn0l7ojf7TjxEz9/CEczwfFSlp3Y9VBJlb9s0xOE e+AUC65hkMDzFKyeCcA6eJ04yB9xIDn7unwX90ZKhfRV//xrv+MWg/TiXSycSlPCzGmompJz4V5hs 1/sVg7D/PSO/Z/+H0LTTV8Z6QQnJdSxQnNLNLq9HOx1lKuhzV1TnpVNshrhiVfQZ0jpwVffub1zEV tlwvYUnGKcOB2vM6F+Hr+mx0c+hzB7C/D+ihI9iw+sM+Ztx4BWaN0Cz5q/99mMG5bkT+KGS1G5gB5 6gDe3ttA==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1rmvSk-00000004KmR-0XZi; Wed, 20 Mar 2024 12:54:34 +0000 Date: Wed, 20 Mar 2024 12:54:34 +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 01/11] mm/ksm: Convert get_ksm_page to return a folio Message-ID: References: <20240320074049.4130552-1-alexs@kernel.org> <20240320074049.4130552-2-alexs@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240320074049.4130552-2-alexs@kernel.org> X-Rspamd-Queue-Id: 32143180008 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: mo75w8od9harbk457eyprdt7h71bxc73 X-HE-Tag: 1710939288-441081 X-HE-Meta: U2FsdGVkX1/dQWVNOw4nWWkhnTco4nglAybFPOnB5ZMjUlM1rKAVxUQzUqMAHbh/PqIw+1KxVPhvtZj7Cmx9c9iyU+U30zV5841srk7OWNEAOU9aX3WIk/o94zA/Cip3E8idQ5mNF37V3LedokMv+F4b0csyvw+Ip1PQJrBxxYtWrufpiZSPlqcBgeezMp9qRPkXJe/TeIkWYotu+V/YoZa3T0TzXaob/gojFdoOgiAcYxMIamOhAQlO/5Gpj4qZoVwwPee7I7DSyxwHCxL09qVB7yno5KP17x2sRNGgxIlKF+A8doLnuQcP41q/2hivFwlO9ViJCWYklizoV/BPt0xCvEAR2vKFRh9E0KZjBr1D+0wafT12RYlfwpDTCEXIBdP2Gs3aUpdJYn5KxG6WIFgBh7aBoL9gpILCU1OAlZ7nJv3svMnwz0igJqhzNHJKWpINoBAbRs5VpQln0NsmS65CvCE2G8KyAu9BsAoLPfcMLBppcncjOux0/OA8BVckou+23IHXhnbFco6xQFsJKZYfaMmElpna5Ri3djWgtqLonbHeE3VMHqtuX0iluMVouq6OfA9K69j0v7nGuvDbdXI6A/4VIqQXVHg3In/7a2Umbi+IzO2TIfQ7fsz/LhnLiAq1hu5lPB3AB/R12YTNtbIsmB+VNbu7LnIXSaCFplmc1ZfVgI8hhHD5M3i7ghia2jjdcZ9i2mE5BgTwob+CwGEvPUZVgY1WwdcgrVFb7k9mVN1SlVJnQYO+k2/szjouGjahuGzrXxWyV8Z0lvbhxUIUM5WhEgW6Mou2yb17LcjjT5/GEG8GGZ4CBFkyfNVKdLJsXxBP9J9uYNx4fbvFl1iMGLeUaD11q/ExYPv3KLsqlBJxsDtiFt5lYVpIC2v7 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:37PM +0800, alexs@kernel.org wrote: > -static struct page *get_ksm_page(struct ksm_stable_node *stable_node, > +static void *get_ksm_page(struct ksm_stable_node *stable_node, > enum get_ksm_page_flags flags) I am really not a fan of returning void * instead of a page or a folio. Particularly since you rename this function at the end anyway! You should do it like this: In this patch, convert get_ksm_page() to get_ksm_folio() and add: static struct page *get_ksm_page(struct ksm_stable_node *stable_node, enum get_ksm_page_flags flags) { struct folio *folio = get_ksm_folio(node, flags); return &folio->page; } Then convert each call-site to get_ksm_folio(), and finally delete get_ksm_page(). That way you're always converting each caller to the exact code you want it to look like, and your reiewrs don't have to keep three patches in their head at once as they review each place. Also, I think this should be ksm_get_folio(), not get_ksm_folio(). Seems to fit better. > @@ -949,32 +949,32 @@ static struct page *get_ksm_page(struct ksm_stable_node *stable_node, > * in the ref_freeze section of __remove_mapping(); but Anon > * page->mapping reset to NULL later, in free_pages_prepare(). Could you fix page->mapping to folio->mapping in the comment?