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 C46DEC02185 for ; Sat, 18 Jan 2025 03:29:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 1F7426B0082; Fri, 17 Jan 2025 22:29:35 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 1804A6B0083; Fri, 17 Jan 2025 22:29:35 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0206A6B0085; Fri, 17 Jan 2025 22:29:34 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id D52A46B0082 for ; Fri, 17 Jan 2025 22:29:34 -0500 (EST) Received: from smtpin13.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 4B8911A13EE for ; Sat, 18 Jan 2025 03:29:34 +0000 (UTC) X-FDA: 83019142668.13.AF6DC4C Received: from out30-100.freemail.mail.aliyun.com (out30-100.freemail.mail.aliyun.com [115.124.30.100]) by imf01.hostedemail.com (Postfix) with ESMTP id 0816C4000A for ; Sat, 18 Jan 2025 03:29:31 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=Vf5v6Qfe; spf=pass (imf01.hostedemail.com: domain of jefflexu@linux.alibaba.com designates 115.124.30.100 as permitted sender) smtp.mailfrom=jefflexu@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1737170972; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=367ImpVEwmep7eE3O/hYvXrPuqpcxFBuOp5wnrMW828=; b=cRPzyOzadV6bW56wegdd9qHheJiyf6aIGWgNnS8PIn0hxPc3QImGRLqGkcE1rjTX2DvhXM zGNAaBzDyliHHYG1k4+RjrgTXuo45TFAT/3WIEkQ9lff9vjetQb3Ui13QSrUb0vNYrLmIp +KInljVWofWDtqPF3iesQMn0B7bFfQ4= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=linux.alibaba.com header.s=default header.b=Vf5v6Qfe; spf=pass (imf01.hostedemail.com: domain of jefflexu@linux.alibaba.com designates 115.124.30.100 as permitted sender) smtp.mailfrom=jefflexu@linux.alibaba.com; dmarc=pass (policy=none) header.from=linux.alibaba.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737170972; a=rsa-sha256; cv=none; b=yz4pt8rVrAPklwSlqG+hPPtEqTQ+ltJ33hntVksyzOkw3/9p/LazJaAkTWyWHtcxu1DqOZ IthQcHQXA/Rxhu65NT+NF8uFuoCBurMq5qqZoGewuttZOvWPjszJQhHlunuE0LsHp7N/dz Bfgom8xgWvK+cLciLFcDgG4hK4zzbyI= DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.alibaba.com; s=default; t=1737170969; h=Message-ID:Date:MIME-Version:Subject:To:From:Content-Type; bh=367ImpVEwmep7eE3O/hYvXrPuqpcxFBuOp5wnrMW828=; b=Vf5v6QfeyQrqxT6fCKjtjzZ2CCKLnCf/IdDYNOpoRfaMMsWrB7UGOiVqES2OhfMC5Jv4KJWqu9C1IJzWpcauvfVvma3geRv9rCR4qY8WMmnQCJMF04ljlIhgoiqEiPLxceVdoSpXZpNeiIrIP6pBtyaQy0NOqJm9FqxOlZyTP6Q= Received: from 30.221.144.93(mailfrom:jefflexu@linux.alibaba.com fp:SMTPD_---0WNqQlY8_1737170967 cluster:ay36) by smtp.aliyun-inc.com; Sat, 18 Jan 2025 11:29:28 +0800 Message-ID: <08fccb39-1405-4aa9-884b-b28a5f7aad59@linux.alibaba.com> Date: Sat, 18 Jan 2025 11:29:25 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 09/12] mm/filemap: drop streaming/uncached pages when writeback completes To: Jens Axboe , linux-mm@kvack.org, linux-fsdevel@vger.kernel.org Cc: hannes@cmpxchg.org, clm@meta.com, linux-kernel@vger.kernel.org, willy@infradead.org, kirill@shutemov.name, bfoster@redhat.com References: <20241220154831.1086649-1-axboe@kernel.dk> <20241220154831.1086649-10-axboe@kernel.dk> Content-Language: en-US From: Jingbo Xu In-Reply-To: <20241220154831.1086649-10-axboe@kernel.dk> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Rspamd-Queue-Id: 0816C4000A X-Stat-Signature: mq3dpjbqtyiwgpafsrmqhqdffqwpwewm X-Rspamd-Server: rspam08 X-Rspam-User: X-HE-Tag: 1737170971-143022 X-HE-Meta: U2FsdGVkX1/eoNowyKsFMwS84Dazuh6aa74n698RE756KUMdmdeHxXB++u76xjNiRxpNpFb2d37/bIBxoivfB+4H2YXcwaJ4df2WVk1tNxw0v2lw7Zuit6WfmivrDf6Mp7pl94sLz4fq/H23M3GuPXnxDc4WgenoB8ZpA4+8AblK6R7TNbt5o4ga+yv3r5XWiBWEgfalua26HDHFzempMoA3ah0HVQ8MIUpONcoehW2ZgECb3ra1mKfuoivqPM1egZmp36uiSuTKzUhLuOTYFWwit/KbNNvFDKEUEIetHRUkDIQ41zWpSfudM0jn/fs/FEEmksmLO4GA+TyO5cQrKF5dXpHED8yPevFdjQz577dmFDSrQW3yIdrgy7+yexi/Kqbr+29rAGDfQCd72/I5p56kB5bZqGx7UNCgr+lkMCknd5udwnEpg0pJyi7EYImZhCuQ1VBgpxdGqRQ/n0V55D5jXzFfobJtrFJrG+VVGH9PC/n+LR7QGoHlQxw49bChVZu5T7iT3+BN3BxncH2w45YdWi2NWvRldWKDRER88a2701tTw2klKGurRijyXfFpgvPDGrhr+Q5yUvi7KESwIvfhnAJ3bYy3R+RT0DJHRRv1jfsashzReTjm15P1+kGptdwojccz6EufKrDVDAcD7qHHYM59Gv57psra/5HtqXSBZjx2ctexATxOZ8STGJdFexfi54M0UQK1njeCGc2NoBl6zB4rlKoazP0VWiIlJpTb64F9eDMhYTx5EmqxwcJItJRe/rcolA40U0vzkQ3n2p+4Ht/GRJFFa/BHujAm4GroyuelMp69UZUWA3kwsZqP7YvldffqD5AZMLXGo2sAtU57cDoLMYQHnxDC8o0D91eLC/0d0qxRWjfdPrgbk+XivExRB8G4JJQYqrDoaoTvr2aXLpolbRb/MI6YhE1n68Y6Ms8s3XJDtqtt6gstS9iChmJ+5+a4eFDAinAWyai CTU2HUjA uDijy2m5u2QnOlyMaowOc0KUEuyOFmQrEV/WLObQmJJjB/ZmbfVplsKSduLbMzwNeX0LAKzfcMnH7fojOJELpm7EMc01whC1FrwSl9ROQzZ/YjRGS8d9aUQa9ljUAfgxAW33CuasG2TdwZo9nLlSs8FB/XJu92oZDn7B+5z5jBmaOOJ2Hbtg6al1Sl676HRH4pBGAm6OYxMmduLcGzNS1LYxk+X8qk0JQyxoYtlls+deRbu6oW8UyRzgRRQ== 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 12/20/24 11:47 PM, Jens Axboe wrote: > If the folio is marked as streaming, drop pages when writeback completes. > Intended to be used with RWF_DONTCACHE, to avoid needing sync writes for > uncached IO. > > Signed-off-by: Jens Axboe > --- > mm/filemap.c | 28 ++++++++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > > diff --git a/mm/filemap.c b/mm/filemap.c > index dd563208d09d..aa0b3af6533d 100644 > --- a/mm/filemap.c > +++ b/mm/filemap.c > @@ -1599,6 +1599,27 @@ int folio_wait_private_2_killable(struct folio *folio) > } > EXPORT_SYMBOL(folio_wait_private_2_killable); > > +/* > + * If folio was marked as dropbehind, then pages should be dropped when writeback > + * completes. Do that now. If we fail, it's likely because of a big folio - > + * just reset dropbehind for that case and latter completions should invalidate. > + */ > +static void folio_end_dropbehind_write(struct folio *folio) > +{ > + /* > + * Hitting !in_task() should not happen off RWF_DONTCACHE writeback, > + * but can happen if normal writeback just happens to find dirty folios > + * that were created as part of uncached writeback, and that writeback > + * would otherwise not need non-IRQ handling. Just skip the > + * invalidation in that case. > + */ > + if (in_task() && folio_trylock(folio)) { > + if (folio->mapping) > + folio_unmap_invalidate(folio->mapping, folio, 0); > + folio_unlock(folio); > + } > +} Sorry shouldn't folio_end_writeback() be called from IRQ context (of the block device) when the IO completes? This may be a stupid question, but I just can't understand that... -- Thanks, Jingbo