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 20B3CC433F5 for ; Sun, 6 Feb 2022 13:11:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 720886B0071; Sun, 6 Feb 2022 08:10:59 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 6CFE86B0072; Sun, 6 Feb 2022 08:10:59 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 5BF3A6B0073; Sun, 6 Feb 2022 08:10:59 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from forelay.hostedemail.com (smtprelay0215.hostedemail.com [216.40.44.215]) by kanga.kvack.org (Postfix) with ESMTP id 4E6976B0071 for ; Sun, 6 Feb 2022 08:10:59 -0500 (EST) Received: from smtpin14.hostedemail.com (10.5.19.251.rfc1918.com [10.5.19.251]) by forelay04.hostedemail.com (Postfix) with ESMTP id 0A5F896F02 for ; Sun, 6 Feb 2022 13:10:59 +0000 (UTC) X-FDA: 79112390238.14.19C620C Received: from mail-ua1-f45.google.com (mail-ua1-f45.google.com [209.85.222.45]) by imf15.hostedemail.com (Postfix) with ESMTP id A900FA000C for ; Sun, 6 Feb 2022 13:10:58 +0000 (UTC) Received: by mail-ua1-f45.google.com with SMTP id f13so6388394uab.10 for ; Sun, 06 Feb 2022 05:10:58 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=iScy5PVQQp5zcHLmQtmJMBYZvDFPbaH4SggLAANygi0=; b=qA39hxj3DmJSrB5Jd4ShiDXwRtToy+5uPonMnKczBj+3fpRyNySLKqhdzhWwNN4QBb FlpNni9652dC2cjtIk/iEzcNuBanzGOIRVtgtwjAd+rNCVSh+Ov3Bb49hgKSSChLSDGH 4RGoPIUn68Tk7/qAxGXX8lt9LLDYrq1acJUyNQNgkenzluTnnFaFFXGxg/2H/LcIztYS ODpIdFOxNL1b1vc6MRfYxgJIJGf9cFMuRIdtlYQQLoF+JS8CcPQMF4M4bSSRREcLE3sm i83ndYG+OmATsc9PN85gypvp58Daa7afBGlpstatnMZvpBHHH+F1hNw4LHhgAlJ4sa97 3uMQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=iScy5PVQQp5zcHLmQtmJMBYZvDFPbaH4SggLAANygi0=; b=iXoNTVFcJ137S209qW8iKqm3EbBEcwt/W85zh6UqAN4dZpo4lve0LbEH4iTeQyVnpQ 0MQ7sFDmrOnIwvRIBk6rIfpx8SSz0KZCoWdf8Dj8hIfty/WpcYur2exGzHru2qZg5vGn I2t4HvPczcNefCHZiTBdHTPUMtKM7VfQrQRXDe5e0FssZB/mFzLYjpTkYVWFJaYbQBip rKBaYhijzl4oB+fWBdT27NXJOEGd9mBJ8s1V7rG/SOUYdY9RnsRpf17g+zs6ihZ5no9i H829I0pKm7thjqtzEqvyrmI3pKB22WcD7k+3m2YTDQta9uRdA2ZKFbvviZC1aPfcOzf9 j0xA== X-Gm-Message-State: AOAM530vz0AATjttHpaCSEjkxQ9bqDmBkzGaKAAVUBCCWwD2g45SFZ36 TAK1TVw3sYAtaKALgEthbm6wRVw/wx/x15EHUbo= X-Google-Smtp-Source: ABdhPJyuLyOIA8XoHNWRIa+k8mhuYxKIoWtzMTZFB6xRuHqICNwRs+tJ/KCpzaFWNH8pVJKxRD4uyDLfD6RWb7qs7Q8= X-Received: by 2002:a67:b00e:: with SMTP id z14mr3217362vse.57.1644153057985; Sun, 06 Feb 2022 05:10:57 -0800 (PST) MIME-Version: 1.0 References: <20220204195852.1751729-1-willy@infradead.org> <20220204195852.1751729-72-willy@infradead.org> In-Reply-To: <20220204195852.1751729-72-willy@infradead.org> From: Mark Hemment Date: Sun, 6 Feb 2022 13:10:46 +0000 Message-ID: Subject: Re: [PATCH 71/75] mm/readahead: Add large folio readahead To: "Matthew Wilcox (Oracle)" Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" X-Rspamd-Server: rspam09 X-Rspamd-Queue-Id: A900FA000C X-Stat-Signature: 9utphsdjrsdmwenpxss6ba7zperhwc95 X-Rspam-User: nil Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=googlemail.com header.s=20210112 header.b=qA39hxj3; spf=pass (imf15.hostedemail.com: domain of markhemm@googlemail.com designates 209.85.222.45 as permitted sender) smtp.mailfrom=markhemm@googlemail.com; dmarc=pass (policy=quarantine) header.from=googlemail.com X-HE-Tag: 1644153058-920877 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: On Fri, 4 Feb 2022 at 20:00, Matthew Wilcox (Oracle) wrote: > > Allocate large folios in the readahead code when the filesystem supports > them and it seems worth doing. The heuristic for choosing which folio > sizes will surely need some tuning, but this aggressive ramp-up has been > good for testing. > > Signed-off-by: Matthew Wilcox (Oracle) > --- > mm/readahead.c | 106 +++++++++++++++++++++++++++++++++++++++++++++---- > 1 file changed, 99 insertions(+), 7 deletions(-) ... > +static void page_cache_ra_order(struct readahead_control *ractl, > + struct file_ra_state *ra, unsigned int new_order) > +{ > + struct address_space *mapping = ractl->mapping; > + pgoff_t index = readahead_index(ractl); > + pgoff_t limit = (i_size_read(mapping->host) - 1) >> PAGE_SHIFT; Not sure if can be called for an empty file, but do _page_cache_ra() has an explicit check for i_size_read() == 0. > + pgoff_t mark = index + ra->size - ra->async_size; > + int err = 0; > + gfp_t gfp = readahead_gfp_mask(mapping); > + > + if (!mapping_large_folio_support(mapping) || ra->size < 4) > + goto fallback; > + > + limit = min(limit, index + ra->size - 1); Cheers, Mark