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 9D7EFC4332F for ; Mon, 30 Oct 2023 16:47:18 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 33A956B024F; Mon, 30 Oct 2023 12:47:18 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 2C2F36B0250; Mon, 30 Oct 2023 12:47:18 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 189E26B0251; Mon, 30 Oct 2023 12:47:18 -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 04C3A6B024F for ; Mon, 30 Oct 2023 12:47:18 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id D119AB5BA8 for ; Mon, 30 Oct 2023 16:47:17 +0000 (UTC) X-FDA: 81402708114.10.0BEA303 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf01.hostedemail.com (Postfix) with ESMTP id B0FED4000D for ; Mon, 30 Oct 2023 16:47:15 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=RIoSIG7W; dmarc=none; spf=none (imf01.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=1698684436; 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=bIhF2shbU9yQ1xXu88DNW/2t71hPJ3iaMiPIW4OxDQA=; b=odlIDVqVIrHQIJBXNPChcoOdsksMsGvD2lLyji2ZlbtXs2rbomYaJo1dSH3iB0UFoUjJtv 2+vP+W+k/11vvo//wEQAdWgo2LYLUYL1denIzhiCsxTqHTlATuBrdljr4hCPKPhvF5RwLp ggezumfMjOMToutw98SOipGmwa0zTfU= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=RIoSIG7W; dmarc=none; spf=none (imf01.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1698684436; a=rsa-sha256; cv=none; b=wbY/f3tFMP7aiFU23MnJtr1jSl4qQfB6Q8GPiah+6mcBKOfLJ2nRPMrO7rDlxSYOM5E0dJ dalIPJXFq5MRQ8LNF1+Jbc5XleUtNVjoiwHKjNy/ZMSnztuUhVoGvbwvv2TyXGfOZi+sFt nhdtjrBgFrXSItSK2kkThNoUuaXW6vs= 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=bIhF2shbU9yQ1xXu88DNW/2t71hPJ3iaMiPIW4OxDQA=; b=RIoSIG7WggABdOi0WX4MY6rASx WEinxOItdKlCxZt2IY5dzNeQIrQl3kumM4SkUssTiyTgpyXbZe2fjl8Obs29AVsEn+nkh9hGAVYBr OyALFWPiJZa2I1sjJcW6ciJlfTTD3xRqlVe1CSeL6/EJ7kbyvEUMdpvwHdB4/p+QZ6Wtsrse4CtfU 4Mik9G6cO0xGU1ndKSieed3xTVVvWrJggwrbK2//5SbANhLriTGgCyENp1XFAyzuf8XANqgxiS2As JmvZpN+OIMpOccqV4T9OBzH15eZiWFqQiaHB5w7Wcp8SiXQ+806Y0o77G8n6JSwY8VCNffQk+g9d+ K3K+gLzw==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1qxVPu-005A7k-4n; Mon, 30 Oct 2023 16:47:06 +0000 Date: Mon, 30 Oct 2023 16:47:06 +0000 From: Matthew Wilcox To: Youling Tang Cc: Andrew Morton , linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, tangyouling@kylinos.cn Subject: Re: [PATCH] readahead: Update the file_ra_state.ra_pages with each readahead operation Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Rspamd-Queue-Id: B0FED4000D X-Rspam-User: X-Rspamd-Server: rspam05 X-Stat-Signature: 3k8zi3rb7yxmg9jkzesf838na47puhfk X-HE-Tag: 1698684435-800687 X-HE-Meta: U2FsdGVkX1+Ne0zeLSReAap8V/33uWNPaahrQxUcMm92ar4NqWTxUBTCct+zJcJLpWtFZosGiyY7DlcN8pButgtFm86tYR3OGRCgOHki/IO+IxNYl3l8WLY64h7+sICpl0tU2ZGki+XGrDNpWQetnRdJ8ej0ZStESmLE9R+2yDq+TswDkwVdAIph2GwqU+7mQecCNNh4KAup57SaIevdwbO/bBsHgRbjgMsy5a+fAQ7Jl1jUjKWajqe1w3ssbFnLnOUyw1y3D5fxnJ/liWfMAqL1/AEGAPEslBqmtgS6jrAo7Wui0rb7XZwRW+Xfx5jh1wC+GLtJFdF4dxCQpywXJjw97Cp+TXbnO2F31e/3Ims17dlUCfGqn3/aEWV1mNJ1XZ1B8QvT9V5TAZbKfiDgvWAAg0RpMO279fHdXnFbL7//o1mJsW0HvlwD4ZF0bsoJe/rShn2vPARN+/WIw7lKMEM4/ow5ePMBxMvmHlXY4sykOIYsxENINyTLi08Pl2Y8EKhe3C+Sz4CbYm9OIfCEN2RnuTjS7hoAj4RSYVVssjui06WL6mKQ6ZJPfLq+FlLr/K5hklfjQa2paS0xQnajEDf5pFddCG3WRx+RCaOSQk5YeHvodv7fNeAaWo4aJ6VwbBXtn/ZR3ONk+JkT8EITc+zpO5sRIUmiyUN/F+Ju/+IaJ6TH1qnmlEjx4yG2waWYMwXbXQvEskF3cLUxR9FZwTMnxt8ndgMNf4im21Z+Vk4+t9mfUpIP3/I40hflB6iu+5jcdvNci8C+xIOlRrmQf+TkygS2JwnwN/RC2U3krL86A0G9mfs5bFD1Pc09TGp8qnoWtCEJZbzjuLXpsn/r2QMqWCxR5Mk+Bd9LgXlLQsiILfnPzyB2tCqehh9N0w7+zOqLF7Pizw22M32DcTNYHJEMC7QzPwztdbs4qhVSyBQWMNnLbIwyMRVFwJEws00EhvzjIOyEd7HICLpcxw4 bPEL94QN lrEi7AgcLxV+BnA7Ee9n2z8rkNIAIZVlmqN1ab5x7T6FvHqmUcS4RH/QS8iZt2TERuNqzOalJccPBPRs9uDyVBq+XVtpRXS/P3VstoUh3tu3Qn6GGg9Ezv67WE03Ig1rcvdngOYzE3eNPS0JAOCyJnEoiImZDBiqy5u+gqCAYSOEORNK4dq1NlWEzwQ== 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 Mon, Oct 30, 2023 at 03:41:30PM +0800, Youling Tang wrote: > From: Youling Tang > > Changing the read_ahead_kb value midway through a sequential read of a > large file found that the ra->ra_pages value remained unchanged (new > ra_pages can only be detected the next time the file is opened). Because > file_ra_state_init() is only called once in do_dentry_open() in most > cases. > > In ondemand_readahead(), update bdi->ra_pages to ra->ra_pages to ensure > that the maximum pages that can be allocated by the readahead algorithm > are the same as (read_ahead_kb * 1024) / PAGE_SIZE after read_ahead_kb > is modified. Explain to me why this is the correct behaviour. Many things are only initialised at open() time and are not updated until the next open(). This is longstanding behaviour that some apps expect. Why should we change it?