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 D6BF0C27C65 for ; Tue, 11 Jun 2024 18:03:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 6B4256B00B3; Tue, 11 Jun 2024 14:03:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 662B16B00B4; Tue, 11 Jun 2024 14:03:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 52A6A6B00B5; Tue, 11 Jun 2024 14:03:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 298E06B00B3 for ; Tue, 11 Jun 2024 14:03:36 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 92FCBA092C for ; Tue, 11 Jun 2024 18:03:35 +0000 (UTC) X-FDA: 82219380390.18.2F6D399 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf22.hostedemail.com (Postfix) with ESMTP id 45EFFC0029 for ; Tue, 11 Jun 2024 18:03:33 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=bmniwLSp; spf=none (imf22.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=1718129014; 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=EKRPx/5e30QjM78Bp1bs9Bf04T9QRk5msSWXRd/SGY0=; b=SFI/A4uiMlNojMNySZgekxxW2tuEszTkgqnVG3GCzEa6n40ttMdGZeh9IscL28IiBrZXpn KlC8glplynYn6b5A2joZfR3zQYMgx1jBoSqnVZvCFtzRggwIhxWBnAlLy0MzghwhudxP8Q grAmpQ2q1UF+Hb5e8vPRvJAUjNeidsc= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=bmniwLSp; spf=none (imf22.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-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718129014; a=rsa-sha256; cv=none; b=0i0J0qIHXixFwXQ0cFiAFWhmN5rI1CViRveO7ZC4HWhapcsP5U8oRHhVxtK0AagmR7gd2V jLIq2PfGKABH7VYb98wTqeFjNGRLbpTfnEOWvmj37j9Ad34Kd+Yo80Gxjv8qV4Uw4FaGsw tosi2Q5bHA3DuQ3V+WHhNryYpaB/g/o= 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=EKRPx/5e30QjM78Bp1bs9Bf04T9QRk5msSWXRd/SGY0=; b=bmniwLSpk47muRNBaDHHzaTMK0 Sq+X8xA30x+fVqgNsGDqgNOEBFOTLyhPhIqv+84sMGfGJmrOQ+Ius4DsC2apeHZRpdQvQtR4Q3UOF DggiNGkLMkT65LpGQDrFmVEeXmKNcVz2RbnMEVS9Jq7tp2THQQVGE8aig9XSZTuOlSj+BefdOtg54 UO7ql7VmxZoyeAxOKsoQvpmWX2UdbsJ0X3mS4oA1GaBktmdVayCS+jsMD05pSlKvvg+k3E026zoEe 40wJqV8jIvOaENmVZmG3pCchqEKddxuE+1IbLuGLnVyhRajwg+0SBHGOxM6aIqxoUp9dWfMsrYcBh UNttY9Vg==; Received: from willy by casper.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1sH5qD-0000000Dvws-0d0l; Tue, 11 Jun 2024 18:03:29 +0000 Date: Tue, 11 Jun 2024 19:03:29 +0100 From: Matthew Wilcox To: Andrew Bresticker Cc: Andrew Morton , David Hildenbrand , linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2] mm/memory: Don't require head page for do_set_pmd() Message-ID: References: <20240611153216.2794513-1-abrestic@rivosinc.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240611153216.2794513-1-abrestic@rivosinc.com> X-Rspamd-Queue-Id: 45EFFC0029 X-Rspam-User: X-Rspamd-Server: rspam09 X-Stat-Signature: dq79jnpqybf414nhq7k6cpboq34x31jx X-HE-Tag: 1718129013-402814 X-HE-Meta: U2FsdGVkX1/oXOXDMHtH/gmD6RV82Gs4ArSb0nKpUNYK57e9GAyFfJL7/x1b7XUJu152rHn7Ac0m9JTK/t5lqQU0B05AKt8fVg3CawzXytET73panLSmMGvWLNVELSiCPTr0wSpSBujdUO6wm6Y1FbQu5eC/1ajoaUTfysRN/vwEXV0+WlwDnrx09ecYT+7hOzjk/1dT1lztybTOG7+6H5gkEjqBSN90VsJd7D6qsWR4sXCoIUuEZPSx3+oYkQka3Gl4sQUOuGnNdF9KUtAuV6iL459yA9HSdo6GED3d37FV3TfdGH8xD7uvr22tKKbh2U8m4N8hMe8ZDAeZrW7Kss43z3GBRDcLKMTVIgRn3KmO7ESGtV6P0KV4zTTWps1DZLGVJloCGiF1YTxDGp4fez32sY5VJw3NijXMmoJPfAxV+cAZ3TMNXOJr+a8rWEyMCTn8UwmMcX+vLjeYdRejXX8CA6BQqOGs6K96TweLoM3rowDCV+1Ux/x3OUeEuGTQg7KY93mskpf8yqB1qAlXLQgcVwPCupQvlrgn5bo9CxtVGubhIS/R60wruqNkh6oeA6wIq9mXiVwhb0h9h4PUIXE9KQdypNR24xDlq4N3flaD8Jnt21TdpZl23DBo8O9pam9SuM2cu2H7D2KFMPHG6z1IyyhKzhPu5fx/vksj3fCwaKnLP5ftqQfVkstCC57ENS/GSP/I9ueWmZJfUG0wGql2YPQxt8J/wmVn5Q71OmAr2xOFntM15Ey4ue90IBW7e0/tjySpEmVaZWWD74hoe4AKZcaaCDFlNOBSvvn7yvTwaQYjTuil29fzltqxQGkjkg5jMBINSdnrvgqkVg48jSBAe1t/fhZQtfDtUQreGggUreX7jmR002bdUe6yMr4/KeWyHBhPydaESkClaB1oeryzDDOgmJvFrlFHqQIT9onCl8qMFkeCLPMJwz6A6s/Kw87VoB+2G0Wq3+RNyMu wrPUoElt bI0Z+0iIj8vvlyvW8ApU56zcOj4CVASoESlUIFF8F78FDcLPkDhB5PRZ3f5PgEBuqSr5PeTB0SHQRybjCccuGM66RhPdZysLFa9Xxc+vtBUvCH1ZNkzMyQp5l53XvTyDzZf737kMIbSWMCN5tpZw7ISp2MPkyt+kGLYr7vzc/OGtgU40KLx+eRtCW6Q== 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 Tue, Jun 11, 2024 at 08:32:16AM -0700, Andrew Bresticker wrote: > - if (page != &folio->page || folio_order(folio) != HPAGE_PMD_ORDER) > + if (folio_order(folio) != HPAGE_PMD_ORDER) > return ret; > + page = &folio->page; This works today, but in about six months time it's going to be a pain. + page = folio_page(folio, 0); is the one which works today and in the future. Of course, as I'm writing this now I'm thinking we could make this work for folios which are larger than PMD size. Which we currently prohibit (at least in part because this function doesn't work with folios larger than PMD size) pgoff_t idx = ((haddr - vma->vm_start) / PAGE_SIZE) + vma->vm_pgoff; page = folio_file_page(folio, idx); (there might be a more succinct way to write that, and I might have messed up the polarity on something). Worth starting to fix these places that don't work with folios larger than PMD size? I think it'd be worth supporting, eg 4MB folios. Current bandwidth of a gen5 x8 link is 32GB/s, so we can read 8,000 4MB pages/second at a latency of 125us. My laptop only has a gen4 x2 SSD, so a 4MB folio would take 1ms to read which might be a little excessive for normal use. Of course allocating an order 10 folio is hard, so it's not going to happen terribly often anyway.