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 9F0A2C3ABD8 for ; Wed, 14 May 2025 15:14:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A001C6B0175; Wed, 14 May 2025 11:14:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9AE526B0177; Wed, 14 May 2025 11:14:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 89BA16B0178; Wed, 14 May 2025 11:14:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 6CE926B0175 for ; Wed, 14 May 2025 11:14:09 -0400 (EDT) Received: from smtpin28.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 7D110160DFD for ; Wed, 14 May 2025 15:14:10 +0000 (UTC) X-FDA: 83441859060.28.F0066BE Received: from dfw.source.kernel.org (dfw.source.kernel.org [139.178.84.217]) by imf24.hostedemail.com (Postfix) with ESMTP id B6F9F180020 for ; Wed, 14 May 2025 15:14:08 +0000 (UTC) Authentication-Results: imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="qde/O+A4"; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf24.hostedemail.com: domain of will@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=will@kernel.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1747235648; 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=Ll+1KlJ6Ve7Scmxx4WaDVmhcu7tXxe9qh9BO4HCNlIE=; b=Bk4VbehNBtzCdaZyIhNWn4IXI6mhAWdLgI/tXqBKXu7DVlVHeC9ycOxgb/hJNxeqKAUKBk m8KpMGlvCJKi+tcutpiRO2VUyZlT9SUQmEA/8XJvBUuap39t9GWkSt8EePwQ9/AMdDLrwD 3YK/yY7yzZcL2zxHfswiQrP87U+bLrM= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1747235648; a=rsa-sha256; cv=none; b=hgpPHG0JbRunFmYSiACVQ594AfmiPxi6rNJvhZRQbwTtrNe5GGc8ZVyWUTsBojbfWXL9DI q5T3pc1ydG5CxpwtsHwnDcgykjJSZzjvDR/o8wybwA/bg8Ljhpwsh5d3WZiGyJYF7aMJoJ y+WXFKkPCOte/vlFMJKP9E2oTMDjByQ= ARC-Authentication-Results: i=1; imf24.hostedemail.com; dkim=pass header.d=kernel.org header.s=k20201202 header.b="qde/O+A4"; dmarc=pass (policy=quarantine) header.from=kernel.org; spf=pass (imf24.hostedemail.com: domain of will@kernel.org designates 139.178.84.217 as permitted sender) smtp.mailfrom=will@kernel.org Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by dfw.source.kernel.org (Postfix) with ESMTP id 9AE405C1017; Wed, 14 May 2025 15:11:50 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 0AB88C4CEE3; Wed, 14 May 2025 15:14:04 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1747235647; bh=ASy4XXDUZ+XqgKJMKMfMraYghZijkdij/uWWZG56WI8=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=qde/O+A4Int0tYt4EQwVneuXsRQr1YUBRqt7rxRMlvMEWAJba/NBWkoZqkNIgIebj 9S0lhDyh8DffOLN0Qy+hBivOJB2moQtFdeamW2PvJQAbIwCSONv0pmYxMS7J7dRtxg fFSCY3LP0kcoKl+3Afu/mO2T6+9zfnKuLAixYUcjkzJs3N4z57CdVxf9dcKKtk58iY PeQ1oLnGtJpLI1gPyy93GClLSVtFJJ6iTkuvAsghIQ4OMvusPwQMhN7IRQUuKhNbR0 FS0eCeyHMXbNNc0jk1gQmvfkg7n0joHw80vdo1QDSRvZ4jCSzBhPWo9JW4xwPO6QUs 9AcK7XSRN/Xpw== Date: Wed, 14 May 2025 16:14:01 +0100 From: Will Deacon To: Ryan Roberts Cc: Andrew Morton , "Matthew Wilcox (Oracle)" , Alexander Viro , Christian Brauner , Jan Kara , David Hildenbrand , Dave Chinner , Catalin Marinas , Kalesh Singh , Zi Yan , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [RFC PATCH v4 5/5] mm/filemap: Allow arch to request folio size for exec memory Message-ID: <20250514151400.GB10762@willie-the-truck> References: <20250430145920.3748738-1-ryan.roberts@arm.com> <20250430145920.3748738-6-ryan.roberts@arm.com> <20250509135223.GB5707@willie-the-truck> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) X-Stat-Signature: 8t5bask547kexsjzr1kghf18gr49wcwx X-Rspam-User: X-Rspamd-Server: rspam05 X-Rspamd-Queue-Id: B6F9F180020 X-HE-Tag: 1747235648-8664 X-HE-Meta: U2FsdGVkX19wEk2HCXLOHQiftNK07KhwTCf9n0gIA0+WcoXMR1cLyR4nTMAnWX76+j+MhwnTuC0BJ/JhwJCktX3KGo9aOtKz5ltcg3lQFXRvgGBsUbVePifxLW0qZ19IniEo2A9huuDWhaV8NJOSH6Y/mDmDOSOw+kurLW2ZZJYEbjGYRugKAqkLzpvt8bHwEerNBBa02k2T7gUAhCCiYcOgBE2trV4h8OVd/Yjec1qkzZAKvbJUqE+XquRh49dz2blw4iH0RUZ5lHg8+/dG3Lb1DoAAIVZ1fKeom30JkHXIRcuvfiWrCZWiCxXRzXUSTCgj74PjlsTmlCqqCeNM9uVqmPrRYihl5E8OYyI/iOajC4UQaydyRmHnZ3SIGshcXflY0jhUtNzxEE30mRQax6P9+AoXhOh1bzW3qVEfEckMG0NVbHfUgHjbcpicJPye+UM54hV1z8aykhrDApZo8gYf+1eeT9+rsbtMbSpbMcsDLnEEfqeRdu+GloJRW1QCw004cqYus9zfgqis1X+AA/4zjl3SgNS6He0lqpLlxl6rJTVDwitsnCBAX//CVX3bVl0HpRyJnJar88O3T8SeipJkx1tcPwNw64aLXrKx9jdCKDG42w+JrPLBMk0IjvIKfzPKcJO8KGUTzJOfKFq+qe777ujfoqR1OIqylsuc9cpTdrLdumLuCQ+c7+9JXGkVhFP7xnRBbpbpgfQ208COiBFKur0LmI9g5JgHqp7P+GmwuOYm8frY6Muun13XepadWaFEMBqFz2ng7+xw1+KKoZJw/XAY8VDrzD3Ln002CFc3okYZ3FDHK5CEHBU5zXVHmbZKaf4KbPUNA7T545eOBSxuenNAmAnZ6t2lRt1gpjsOrjnicQTsJjfq1mk00KnQqOZxi0S0997VYLI0D0b7hEJ4cb1D8oyUhNCxED5TMwZjvfaF//GfpHUoDYo36CMfhn7Upj/Ca1/tpyDUGIk gx1zoi5q MtbC24uh4Df72WmQj1tgM5HkEEMiYKkm0aHGCuuzWzVHo/7ZPaHXyHKhVxM1ZgJ/qKEVY/ITlaw/AkBE2xb4q47YFi2tyaOQci2U11nHNTiLl8V16+lUp6GAg09uR5mjiwF/Q328qjDCaGL6AO02Y8CIXMgMnc8GNHlTqUuUJ2ooItj9FG00jDTwgO5pdU0aqvfg2nNE3KxJ/u6amDTK30gG31pu9P0lZrLmf 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, May 13, 2025 at 01:46:06PM +0100, Ryan Roberts wrote: > On 09/05/2025 14:52, Will Deacon wrote: > > On Wed, Apr 30, 2025 at 03:59:18PM +0100, Ryan Roberts wrote: > >> diff --git a/mm/filemap.c b/mm/filemap.c > >> index e61f374068d4..37fe4a55c00d 100644 > >> --- a/mm/filemap.c > >> +++ b/mm/filemap.c > >> @@ -3252,14 +3252,40 @@ static struct file *do_sync_mmap_readahead(struct vm_fault *vmf) > >> if (mmap_miss > MMAP_LOTSAMISS) > >> return fpin; > >> > >> - /* > >> - * mmap read-around > >> - */ > >> fpin = maybe_unlock_mmap_for_io(vmf, fpin); > >> - ra->start = max_t(long, 0, vmf->pgoff - ra->ra_pages / 2); > >> - ra->size = ra->ra_pages; > >> - ra->async_size = ra->ra_pages / 4; > >> - ra->order = 0; > >> + if (vm_flags & VM_EXEC) { > >> + /* > >> + * Allow arch to request a preferred minimum folio order for > >> + * executable memory. This can often be beneficial to > >> + * performance if (e.g.) arm64 can contpte-map the folio. > >> + * Executable memory rarely benefits from readahead, due to its > >> + * random access nature, so set async_size to 0. > > > > In light of this observation (about randomness of instruction fetch), do > > you think it's worth ignoring VM_RAND_READ for VM_EXEC? > > Hmm, yeah that makes sense. Something like: > > ---8<--- > diff --git a/mm/filemap.c b/mm/filemap.c > index 7b90cbeb4a1a..6c8bf5116c54 100644 > --- a/mm/filemap.c > +++ b/mm/filemap.c > @@ -3233,7 +3233,8 @@ static struct file *do_sync_mmap_readahead(struct vm_fault > *vmf) > if (!ra->ra_pages) > return fpin; > > - if (vm_flags & VM_SEQ_READ) { > + /* VM_EXEC case below is already intended for random access */ > + if ((vm_flags & (VM_SEQ_READ | VM_EXEC)) == VM_SEQ_READ) { > fpin = maybe_unlock_mmap_for_io(vmf, fpin); > page_cache_sync_ra(&ractl, ra->ra_pages); > return fpin; > ---8<--- I was thinking about the: if (vm_flags & VM_RAND_READ) return fpin; code above this which bails if VM_RAND_READ is set. That seems contrary to the code you're adding which says that, even for random access patterns where readahead doesn't help, it's still worth sizing the folio appropriately for contpte mappings. Will