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 6EA26C3ABB0 for ; Mon, 5 May 2025 09:39:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2FF586B008A; Mon, 5 May 2025 05:39:37 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 296A66B008C; Mon, 5 May 2025 05:39:37 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 103946B0092; Mon, 5 May 2025 05:39:37 -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 DE1EA6B008A for ; Mon, 5 May 2025 05:39:36 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 2F375580CB for ; Mon, 5 May 2025 09:39:38 +0000 (UTC) X-FDA: 83408356836.23.CDAA3E1 Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.223.131]) by imf22.hostedemail.com (Postfix) with ESMTP id EFF44C0010 for ; Mon, 5 May 2025 09:39:35 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=UlvdWb8Q; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=VHrN2V5R; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=UlvdWb8Q; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=VHrN2V5R; dmarc=none; spf=pass (imf22.hostedemail.com: domain of jack@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=jack@suse.cz ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1746437976; a=rsa-sha256; cv=none; b=63XW813qD3CZjJM5vc04esSvRX8O3MenLLir5LZ/M2N8jteQi6nz0ws7i4tzgjvHIXBK7l WrocUesFBVwaKWaZolBYISAlXMo4+U857y5WFHxXpx19tstRftAZs6crHzEqBWTW21g7uD k3cIosH+l4djSimV5Ff4r8vidmbvkf4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1746437976; 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=vaNrb/5c3V76o6V9zjsgk79UN9zVm2u3ncLxvNGeBmc=; b=bStcsI+Lsiqipgo4nBXiWB6w8yOJyfyzBF8teSZszsoCyhcVZaUavYZ/8zvAP6RsDo+ucW xmy0zo2B6IYc0kceDC2Ko1TYlFAfmt7U+KvyY8ZrKTlgaj+6+ZSCMEyFZyCRZpgrPHl+cM cVw+6ZfO+hSS0AKRyx4K+rk4v2jk01A= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=UlvdWb8Q; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=VHrN2V5R; dkim=pass header.d=suse.cz header.s=susede2_rsa header.b=UlvdWb8Q; dkim=pass header.d=suse.cz header.s=susede2_ed25519 header.b=VHrN2V5R; dmarc=none; spf=pass (imf22.hostedemail.com: domain of jack@suse.cz designates 195.135.223.131 as permitted sender) smtp.mailfrom=jack@suse.cz Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [IPv6:2a07:de40:b281:104:10:150:64:97]) (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 smtp-out2.suse.de (Postfix) with ESMTPS id 17D521F79C; Mon, 5 May 2025 09:39:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1746437974; h=from:from:reply-to: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=vaNrb/5c3V76o6V9zjsgk79UN9zVm2u3ncLxvNGeBmc=; b=UlvdWb8QxfFPO/QFvWjPi5DxvFtJC6ExpXtw4Neg9GRMEt3z2Oi1JdmfuGl2wTFNmIm4yN BOL6PzFyp8WDAiDjpu6L+TFYSIMVQuEf5cSBBTdeRCWWjrZB2cTtpXT6uxYaFjpbVT+U5n QCcn9H0ezQ4I96N8RgL/fcJrK4O3k/E= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1746437974; h=from:from:reply-to: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=vaNrb/5c3V76o6V9zjsgk79UN9zVm2u3ncLxvNGeBmc=; b=VHrN2V5RshMhLLo18Ovmd2V0Keagzi8yziEEoNNRaSOo5t77ydo+jiyPnhpe1/mLYzbe34 KFZS+A5i/D3ZsNDw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1746437974; h=from:from:reply-to: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=vaNrb/5c3V76o6V9zjsgk79UN9zVm2u3ncLxvNGeBmc=; b=UlvdWb8QxfFPO/QFvWjPi5DxvFtJC6ExpXtw4Neg9GRMEt3z2Oi1JdmfuGl2wTFNmIm4yN BOL6PzFyp8WDAiDjpu6L+TFYSIMVQuEf5cSBBTdeRCWWjrZB2cTtpXT6uxYaFjpbVT+U5n QCcn9H0ezQ4I96N8RgL/fcJrK4O3k/E= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1746437974; h=from:from:reply-to: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=vaNrb/5c3V76o6V9zjsgk79UN9zVm2u3ncLxvNGeBmc=; b=VHrN2V5RshMhLLo18Ovmd2V0Keagzi8yziEEoNNRaSOo5t77ydo+jiyPnhpe1/mLYzbe34 KFZS+A5i/D3ZsNDw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (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 imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 0C97713883; Mon, 5 May 2025 09:39:34 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id fb0RA1aHGGiwbwAAD6G6ig (envelope-from ); Mon, 05 May 2025 09:39:34 +0000 Received: by quack3.suse.cz (Postfix, from userid 1000) id A5D0AA082A; Mon, 5 May 2025 11:39:25 +0200 (CEST) Date: Mon, 5 May 2025 11:39:25 +0200 From: Jan Kara 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-Rspamd-Action: no action X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: EFF44C0010 X-Stat-Signature: jj794qhbbjqqatxxeddrc5r7zypx1rhm X-Rspam-User: X-HE-Tag: 1746437975-15233 X-HE-Meta: U2FsdGVkX1+ZCWq3xjcx/dxXrK2CI2+dhwN2pcsD3QtGLPo4F/GON2TclDq898sF1QlLm/Io+Jx30swC2tLBev2CaY3jUp5vi/Jkb9MpfOIZ9BqNXkDXrunIrEcBbyMTYDQn+MDqCRdDTZCVwPwfAbhODSn1ZVb9M4I8NnfLNJnMiQy4gS24p+oYdacRyXkplhoYRcPBwZuFFMsnxv3oa1XWGaq5DB2lVsavdqpId5qe9yhKajtwsr3VBIEJTqm11C43j+WSIGYDrYrqSl9O1BSCVIG38Wr4kXPOxP5ypIqm/GGeTEDknE9TUuY3BNzB38e53dM58esGA6wh0aORd/9PKh4PIszSsQDBscGqENpIM9ChGVo8sfW27t+c7sLjCNrFt3qOoeNxIGBrqzyPKml0gs778PB/4fWnQ5K+8ZrH//2h+sYlyR434Xglp9Jf5KbJ7uNumEn6KWMo5WLIUXesquJvZ7IGuYiE0ozT5HGV+5VFWW9rxUitIrMXn0HSAxusHIbimO8HDYbHcxvfjySF97zhZopIRdNMhOqxZDrvztwWtEYwsxXeRNPVQp9/sbsxiMpw6O0DK9QAdq9uwhTRWH8Ghma9V6q/FeVFVmKUrz2TTkDoM05oXwCPsI75WGjRkimOljt5w+K08J3vU0xAm+H0nOTXi1v7VSMk8pBwotueaAdsbD1zRrg5pBMC/7kw5A8buNG0Mga1JVUiwyCp26NA2OHYV1RxdTu92tH0T9i4NowNJQHNjBI3a3nMtQZQPRXdBmEACiY4M8foXATrL3l5iqxQJvf1mrlVjwUNID00ePQKhBCJsnoSpGb7e95VS94n9Bl1gBqRBb6eXkmfFgXMOcC2RjBdpXVgSEwJ1xKpJMktSj7mu7hfHq+rlarwc7lsVYaP1Ad/YuFhIXCiCGeyh2YT2+HkFxjr0DweC2NPZAUTuJqbe84Zh2UK9QaVLGG7qwva32Zm1Dw xQgYSQSL Ojm6l4gXCDxBif75D/0fMwBQQx7HiXoUWkYuyDZykkvVMLhgt0ne9kzc6A1qdICt9l6Io031t0e5OT0vhp1G8LuoN/lQR/MqLMjjyOs1EWLlLLSA4CHOQvfXlONSa/NCsFzzlNqk9eZl0+UkW/PeCLAlhsNHrac8vw6VuyM1ylxWBfX8HRBuL9tFvpi36AdzlbAXDQ2aPoWZhzDnQ55L1/EWMLNke8O/zTmVoDxO+l99Bi4tvtBaeStzRtTgu43GhkALnk1b/bMK0g4vYGR8MzVaxSd6FMrhaVeFOFo5c9FmyK5gtHRwxFyZkQC/n376KfQYuqibZ+pvfacRpT/lSeXCVjalaoUEFQMeRGK9OGr91/cHBnaQZNxteeLv4VFpEez9OfOSzYm4QdJ4ilvax3KrHpsn8uW/S+5QIdoJf0MO7R48zmtNvH8E1EUALIzWqdzpM 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 30-04-25 15:59:16, 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 Sure. Feel free to add: Reviewed-by: Jan Kara Honza > --- > 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 > -- Jan Kara SUSE Labs, CR