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 5C5C4C3ABBF for ; Wed, 7 May 2025 16:48:38 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 441396B008A; Wed, 7 May 2025 12:48:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3EDD36B0093; Wed, 7 May 2025 12:48:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2B6156B009C; Wed, 7 May 2025 12:48:37 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 0AB8C6B008A for ; Wed, 7 May 2025 12:48:37 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 648CE1CDFAB for ; Wed, 7 May 2025 16:48:37 +0000 (UTC) X-FDA: 83416695474.16.FA58027 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf07.hostedemail.com (Postfix) with ESMTP id 9526D40005 for ; Wed, 7 May 2025 16:48:32 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=bZ7dojGK; dmarc=none; spf=none (imf07.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=1746636515; 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=YgmvXC8KQUoeSX+ZNZxGaQI9tUIImeLg/Cp4by28rKk=; b=ri0xV+0o+65UBfL0ZdoKxU4aYMvNhtL+CBPFAJLtd0SWqNV+wDi6A1q9X3b8utSxEvG4kT YNiY+lPbFUVWZwjZPxh+gCEwt0np0nbX7li2JkVIR99iquE9m3UTn3M09jOsEqS7mcq5vI Mqy1Ob6aGBCpeOwIVHavpPczJ5Fo/hg= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746636515; a=rsa-sha256; cv=none; b=5sxmhxpfIrBITO+zpmY8FOUjh7B1DXE75uXFeETVkEuZvQuY09dQyIePr20cz8dGitTCH2 6BtvBxLEsjAMhsLnYy/2Xxl3aht6h2o3WaxJk06XsY6oyhR2jy3VFrM5eVGvhoUR3GIYZO SrJYgpZT+zxFSadUv1eRAY6euG8ORQg= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=bZ7dojGK; dmarc=none; spf=none (imf07.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org 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=YgmvXC8KQUoeSX+ZNZxGaQI9tUIImeLg/Cp4by28rKk=; b=bZ7dojGKV14lEY1uNPRaye/56G TpvckhjqqRn7x5DdIGo6gELVgfINZVYeJpeAMxItrs8jPX8mYNZoyw4SvLkSTYdK52PU10mVnLsa6 vBvmD3ATMjTRNLT4yocxGTL3TYV6c8ptndxv2wVq/iWnQ3AUg/P8BQcc+BEob6uCv0a8Axh7vOQN+ x0Xvam3ROADWLMO7Tojas5eAuwD2Wpy51OvA3QnyUa2rLlQd65Tw1mqrGvfq3REZJ065voXlC6R2W 1MX+vM5XIa3mid2xYVoiJyYytOdXpC2z6RJ2GQyGnMY5TKrVErqYbmQd4tTOWd26sUhujqPHosL4n aHcp6G/Q==; Received: from willy by casper.infradead.org with local (Exim 4.98.2 #2 (Red Hat Linux)) id 1uChvK-00000008F47-1nei; Wed, 07 May 2025 16:47:10 +0000 Date: Wed, 7 May 2025 17:47:10 +0100 From: Matthew Wilcox To: Baolin Wang Cc: akpm@linux-foundation.org, david@redhat.com, hannes@cmpxchg.org, lorenzo.stoakes@oracle.com, Liam.Howlett@oracle.com, npache@redhat.com, ryan.roberts@arm.com, dev.jain@arm.com, ziy@nvidia.com, vbabka@suse.cz, rppt@kernel.org, surenb@google.com, mhocko@suse.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH 2/2] mm: convert do_set_pmd() to take a folio Message-ID: References: <8e33c8a65b46170dfd8ba6715d2115856a55b8f6.1746609191.git.baolin.wang@linux.alibaba.com> <88060373-d0b8-404a-b53b-9b5a54f5ba6f@linux.alibaba.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <88060373-d0b8-404a-b53b-9b5a54f5ba6f@linux.alibaba.com> X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 9526D40005 X-Rspam-User: X-Stat-Signature: mugtrxg6fajq84tiw5xtwh5ar1ekon8x X-HE-Tag: 1746636512-162643 X-HE-Meta: U2FsdGVkX196vZEBgnEZrp2ABFGQxra5UdtW9yfWsRO5KhQShmscnX+vNjloW4qXlZYg/z8+aSBOfWCWJBOuSoB4fulucfWbs+2tXMpFaSzg+wHD+2q6MTIyexb4pwW0Zp5wBn08ZO7vh5IzorwAGxKkcYchaqBUtzKChO4EbYrRbFNaokquI/pIiCkEo4B69Vq10TmUnZUTIbfXfCls2LgprnjsOaZhi9ckwbllyGdjaeR5FtVfl0Jy7QfFwpH3O5NJ9DmpKPUia3r4w2VGqA767BGc5KKmCobS7n9dxhNn2W3KHRXuFGs2kMYfVpfFiCe9GWZsg63UO4KOArCqh+J8zsSq6plUAXLBsCphuiyTaYPa+/l+eiJHrd4PkYKEHmIuibnGHL7jBJHFU73r+6pOU4cQ2efMu1rgA9xHT3QI3dYnq30zszXNOJtlebSQRayszsWocIxVJDLXSn4Zr+AUVn3sLT9szDMvWTsZXyC3dCsOKzWafXF6X7xQqOOi82F6loqddAoHYVxQVrx6UdTKl9rIgRpNT4SzVw+2vzgqHaIOkD8OZ2lOH9VWOV0ppibbNiWMovs1yEAXbrDZIdqtoPovaUfXvaCvN+3VmQs5jLafwQXd6nmlFvor3kbP6C4dgoAIOuACMycCt4Qvn3/5dcSAYPZ2isoiKdU1uC73hgeQ3FU+T6mKWLNszM9hZ+11rMogJ72roJVWgYHZA9yxctIsax78mWoGFJ013o5OdOfB4TGG/DcwW2gLnOoGFqVTWooONKq9QQhGwWnrpqbeCjhbLixL5PLON5BezQeJP9Vt49P/qMJbM6B58Bfy3sqpwDynllU4Fu6VILya9kg08EYOCCa+GlM/vLxbT2gYRZwD83T0v2l/N57xH7a2/8ZKzorwEzOgxoC9nLw21uVoB36XrwtmTZE2c8kgio7kffE8D8vuiOdX9DPHcbNfpyMG3xKhTVwhRZnzwHA ds73vdPG 5cD/7ouK7thTiKoLnWNMAl8zTlUsdDEm71t9Gt03q2YjWdqgUkyx88WqmtqCJ3lv2EFt+jToXfXK1uDGuWJHGnI7r4GdY/DzA99zdf9wAFTpZXsZkE/VIVQvMs84ilG/w8VbxhrNTTDrkZlYUPBtJY6lSyr03vqgsNRpK+rqu0e6zW4UQe7zkNBapNIrkgRkDQxvlN3TEfOFZu6+1RvcPXyfVd/svkCE+2p3znLC1fPozKn56CtUudGs50CfWaxZBHOnP0o8GEEK5/zE40hg7nCyWlA== 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, May 07, 2025 at 08:36:54PM +0800, Baolin Wang wrote: > On 2025/5/7 20:10, Matthew Wilcox wrote: > > Because I see nowhere in this patch that you initialise 'page'. > > Please look at the following code in do_set_pmd(), and the 'page' will be > initialized before using. > > if (thp_disabled_by_hw() || vma_thp_disabled(vma, vma->vm_flags)) > return ret; > > if (!thp_vma_suitable_order(vma, haddr, PMD_ORDER)) > return ret; > > if (folio_order(folio) != HPAGE_PMD_ORDER) > return ret; > page = &folio->page; Ah, fair, I missed that. > > And that's really the important part. You seem to be assuming that a > > folio will never be larger than PMD size, and I'm not comfortable with > > No, I have no this assumption. But do_set_pmd() is used to establish PMD > mappings for the PMD-sized folios, and we already have PMD-sized checks to > validate the folio size: > > if (!thp_vma_suitable_order(vma, haddr, PMD_ORDER)) > return ret; > > if (folio_order(folio) != HPAGE_PMD_ORDER) > return ret; > > > that assumption. It's a limitation I put in place a few years ago so we > > didn't have to find and fix all those assumptions immediately, but I > > imagine that some day we'll want to have larger folios. > > > > So unless you can derive _which_ page in the folio we want to map from > > IMO, for PMD mapping of a PMD-sized folio, we do not need to know _which_ > page in the folio we want to map, because we'll always map the entire > PMD-sized folio. There's a difference between "Assert that the folio is PMD sized" inside the function because we know there are still problems, and "Change the interface so we can't specify which page inside the folio is the one we're actually interested in". I reiterate the NACK to this patch.