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 34365C3ABC3 for ; Fri, 9 May 2025 10:00:33 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3AC9C8E000C; Fri, 9 May 2025 06:00:31 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3352C8E0007; Fri, 9 May 2025 06:00:31 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1D51C8E000C; Fri, 9 May 2025 06:00:31 -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 F1EB48E0007 for ; Fri, 9 May 2025 06:00:30 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id C34C116148D for ; Fri, 9 May 2025 10:00:31 +0000 (UTC) X-FDA: 83422924662.03.0C71CD8 Received: from mout-p-102.mailbox.org (mout-p-102.mailbox.org [80.241.56.152]) by imf15.hostedemail.com (Postfix) with ESMTP id E4039A001B for ; Fri, 9 May 2025 10:00:29 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=pankajraghav.com header.s=MBO0001 header.b=BFOgVJ5+; spf=pass (imf15.hostedemail.com: domain of kernel@pankajraghav.com designates 80.241.56.152 as permitted sender) smtp.mailfrom=kernel@pankajraghav.com; dmarc=pass (policy=quarantine) header.from=pankajraghav.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746784830; 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=aKXgpxfD7mmRDEDKIXuu87HZmsIYrRD/fM7ub6mxn3U=; b=otZzx9JzFPFkwds3fe/6yIPz3dXfrKzoJVN+aIOObQCEcVWxTM+wKz47++2GF1hRv24xGl WspcMUN8uWfg6/jpvZmG/PUA6Tt2KFUhFSs7N4GpcVeM/CmLgsrbZ/N7XPO5lQIjtxbOGb Df5110yQNW2Q9ukLgig5pjYQEV7ndqA= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=pankajraghav.com header.s=MBO0001 header.b=BFOgVJ5+; spf=pass (imf15.hostedemail.com: domain of kernel@pankajraghav.com designates 80.241.56.152 as permitted sender) smtp.mailfrom=kernel@pankajraghav.com; dmarc=pass (policy=quarantine) header.from=pankajraghav.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746784830; a=rsa-sha256; cv=none; b=VPtc62uyFjZkhZ5e5dfiTtHlsTXqQL8/zTfYMAl+8OguDOcgjB7XDF+oawpfzmVM7vd4YJ RvkJ/YOu5oQrxvWMZ7JGZ2w5IyyRgcnO4apTz94w/N5JcgToESzCYGcNwWavBPlgRxdGi8 mBCeApRgzS6IcNfew3Sr3m7ldHEKtnE= Received: from smtp102.mailbox.org (smtp102.mailbox.org [IPv6:2001:67c:2050:b231:465::102]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by mout-p-102.mailbox.org (Postfix) with ESMTPS id 4Zv4Hs2XlNz9tmm; Fri, 9 May 2025 12:00:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pankajraghav.com; s=MBO0001; t=1746784825; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=aKXgpxfD7mmRDEDKIXuu87HZmsIYrRD/fM7ub6mxn3U=; b=BFOgVJ5+QR381y/dIAleHjzFrncarnnRrLIvkfIuVBJoCzdGHilzSjyWwzigpb8OHgcL1S brnGWQm/AffVHiQ8fWgJSEzKrzFQOTwCa7uUcc5Sj+NyP7rCPavkdpOduPyEY6jc1fTF7k Tmpjpv7hBmtj4HJNLjriLMY6BU8xkEng5hcA2/M7NgpBKfgUvmXjOTj4HbGrCR/LlwcOtE 6plgndT3N6J46arHCoY0b/igVj5RSLw8x63A/uUKfi97CNG4y69OOeNgxLufVsEM0oz3sJ W5dJQA+jmz7kuAPNFd0mAFoIBvHMfPZdw69jnMMtuQwTY17OqpGVMjAkhgp7og== Date: Fri, 9 May 2025 12:00:09 +0200 From: "Pankaj Raghav (Samsung)" To: Ryan Roberts Cc: Andrew Morton , "Matthew Wilcox (Oracle)" , Alexander Viro , Christian Brauner , Jan Kara , David Hildenbrand , Dave Chinner , Catalin Marinas , Will Deacon , 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 3/5] mm/readahead: Make space in struct file_ra_state Message-ID: References: <20250430145920.3748738-1-ryan.roberts@arm.com> <20250430145920.3748738-4-ryan.roberts@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250430145920.3748738-4-ryan.roberts@arm.com> X-Rspam-User: X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: E4039A001B X-Stat-Signature: nakoz56jerkaoei7ze14t7xiugp4b1ez X-HE-Tag: 1746784829-395526 X-HE-Meta: U2FsdGVkX1/1Gztg3YH0yo8uxsNbBj2ns7cRZOdlPPdzmOmsUdqJS1zp0HrBQJk390YodDkS0eGME6Fn0b5uUp2oZ4RIwYJ5AEnHNRSXDzMjQVVNqrWWLCtBuESUEslObb+nOoQ+DW7ndZ9TyrhpjpbHsjBvWCUqE/Yex5Rveg5lYZ+VjRYKutg+7eqw+zCbhw/vOWRcmUCrESAQhJe/IEjw46GQ1++ejh4+wwhvdBKM05voMf3F9SbTKi71JDGSVc2PkCScb+LJHtGu8iVfTUZcqpMMdS1EfhvcC82iQDI1neTdMNPHfr4Q3M8DtcQTaIqscpPC/bdVAzforZiNxoy4zn6X2BuZgUNz8szfDqAZ5CpnS0j4RJkEzeUtc2rgsg+5oot1Ej4gPYfP40bdMnGNVHxEYa+lJrwosF7pZo8RdGFXOGXTz9kWGJDoWse0vLwEWm8Gv7Kn4d3Lmq3GmBfgtbHp3/DY1QCydWyM94v+fz+xkfZDN11ljcgXrVyUJhT65A5DHoTIjqI49r4/GLbukCbk/d9Shwd0z0G3FaDY3yVnrVSvJqRelbcoCxtTqOwSjp6zzGJR0DqwjR4ZPaBMcGNJumtZW7+fbXFZWLbOoy11mdi6RqkFO33eXg1mqWqpLHLPyFq9oKAIDWg8ajZGrpai0jhGxgTdXusw6qT84V8dGtxwwf17afz9GzPZCwhuOkAzessCiqGgwBE8CB+dub203rJJTE48hf4zQUhEyW3wfoYauQta0keOzwNrHb+ZKTBDf2MGpIJMqZU1wx9CBydw7VlxOFbcePDTJZt0sXcCJWeA2RD9dMNbsBoul3q+cTbC0XAN2kwBDARe2AHcUs60ZyTw4ogzSqOi58TryZ/8TQVGwLKy2e9BEmHzePwKR1ND6+eTYOuRqfO7kFWuzDVy7rZuNpMYdlPnpe7Uc1JzwP0IyJoP0PKyjUHPg8/yUEK5BLajYGkJOHh JktQxgI9 5vbzjmHcyVqqr3o44tQLSnDoOtRFvzGvBmYehX4QY20r+q9zwwd0yE8lcdJY/jGCMsnIb6shr5RH+pYS2zrYnG/yI+ufSrOa7UgMKovE6FS/uONjGed/O/pedsenYeA9qBFH3lAqxjKUydzK9hygBQjXvdocRy/UvSsGpmLkRV04F6NNMv8Un7DQQyrXT9PaXpCOoHZ9wlepEh3MRwuQ+VaPvfn25RHZw8LByjseN2tJ0O5BlqerrIGk3/+oWULBbB3zPeT3O7ajlJjtYzx970ZYBJp/uQVZbiGh7wdnL0UWG2oYmkMzNCPq18WAwDpeFsNaf6CUIGjG5J3CsKWXCf8myQOSBu4Y2FIuF+V3Pb4m3dSlnBxrdus8YoQxGjdXAexjKKW+AKiSGWxs5CvZDGbwGrw== 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, Apr 30, 2025 at 03:59:16PM +0100, Ryan Roberts wrote: > We need to be able to store the preferred folio order associated with a > readahead request in the struct file_ra_state so that we can more > accurately increase the order across subsequent readahead requests. But > struct file_ra_state is per-struct file, so we don't really want to > increase it's size. > > mmap_miss is currently 32 bits but it is only counted up to 10 * > MMAP_LOTSAMISS, which is currently defined as 1000. So 16 bits should be > plenty. Redefine it to unsigned short, making room for order as unsigned > short in follow up commit. > > Signed-off-by: Ryan Roberts Looks good. Reviewed-by: Pankaj Raghav > --- > include/linux/fs.h | 2 +- > mm/filemap.c | 11 ++++++----- > 2 files changed, 7 insertions(+), 6 deletions(-) > > diff --git a/include/linux/fs.h b/include/linux/fs.h > index 016b0fe1536e..44362bef0010 100644 > --- a/include/linux/fs.h > +++ b/include/linux/fs.h > @@ -1042,7 +1042,7 @@ struct file_ra_state { > unsigned int size; > unsigned int async_size; > unsigned int ra_pages; > - unsigned int mmap_miss; > + unsigned short mmap_miss; > loff_t prev_pos; > }; > > diff --git a/mm/filemap.c b/mm/filemap.c > index 7b90cbeb4a1a..fa129ecfd80f 100644 > --- a/mm/filemap.c > +++ b/mm/filemap.c > @@ -3207,7 +3207,7 @@ static struct file *do_sync_mmap_readahead(struct vm_fault *vmf) > DEFINE_READAHEAD(ractl, file, ra, mapping, vmf->pgoff); > struct file *fpin = NULL; > unsigned long vm_flags = vmf->vma->vm_flags; > - unsigned int mmap_miss; > + unsigned short mmap_miss; > > #ifdef CONFIG_TRANSPARENT_HUGEPAGE > /* Use the readahead code, even if readahead is disabled */ > @@ -3275,7 +3275,7 @@ static struct file *do_async_mmap_readahead(struct vm_fault *vmf, > struct file_ra_state *ra = &file->f_ra; > DEFINE_READAHEAD(ractl, file, ra, file->f_mapping, vmf->pgoff); > struct file *fpin = NULL; > - unsigned int mmap_miss; > + unsigned short mmap_miss; > > /* If we don't want any read-ahead, don't bother */ > if (vmf->vma->vm_flags & VM_RAND_READ || !ra->ra_pages) > @@ -3595,7 +3595,7 @@ static struct folio *next_uptodate_folio(struct xa_state *xas, > static vm_fault_t filemap_map_folio_range(struct vm_fault *vmf, > struct folio *folio, unsigned long start, > unsigned long addr, unsigned int nr_pages, > - unsigned long *rss, unsigned int *mmap_miss) > + unsigned long *rss, unsigned short *mmap_miss) > { > vm_fault_t ret = 0; > struct page *page = folio_page(folio, start); > @@ -3657,7 +3657,7 @@ static vm_fault_t filemap_map_folio_range(struct vm_fault *vmf, > > static vm_fault_t filemap_map_order0_folio(struct vm_fault *vmf, > struct folio *folio, unsigned long addr, > - unsigned long *rss, unsigned int *mmap_miss) > + unsigned long *rss, unsigned short *mmap_miss) > { > vm_fault_t ret = 0; > struct page *page = &folio->page; > @@ -3699,7 +3699,8 @@ vm_fault_t filemap_map_pages(struct vm_fault *vmf, > struct folio *folio; > vm_fault_t ret = 0; > unsigned long rss = 0; > - unsigned int nr_pages = 0, mmap_miss = 0, mmap_miss_saved, folio_type; > + unsigned int nr_pages = 0, folio_type; > + unsigned short mmap_miss = 0, mmap_miss_saved; > > rcu_read_lock(); > folio = next_uptodate_folio(&xas, mapping, end_pgoff); > -- > 2.43.0 >