From: Christoph Hellwig <hch@infradead.org>
To: Jeff Layton <jlayton@kernel.org>
Cc: Alexander Viro <viro@zeniv.linux.org.uk>,
Christian Brauner <brauner@kernel.org>, Jan Kara <jack@suse.cz>,
"Matthew Wilcox (Oracle)" <willy@infradead.org>,
Andrew Morton <akpm@linux-foundation.org>,
David Hildenbrand <david@kernel.org>,
Lorenzo Stoakes <ljs@kernel.org>,
"Liam R. Howlett" <Liam.Howlett@oracle.com>,
Vlastimil Babka <vbabka@kernel.org>,
Mike Rapoport <rppt@kernel.org>,
Suren Baghdasaryan <surenb@google.com>,
Michal Hocko <mhocko@suse.com>, Mike Snitzer <snitzer@kernel.org>,
Jens Axboe <axboe@kernel.dk>,
Chuck Lever <chuck.lever@oracle.com>,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-nfs@vger.kernel.org, linux-mm@kvack.org
Subject: Re: [PATCH v2 1/3] mm: kick writeback flusher instead of inline flush for IOCB_DONTCACHE
Date: Wed, 8 Apr 2026 22:50:59 -0700 [thread overview]
Message-ID: <adc-Q1iDWHD5yxHH@infradead.org> (raw)
In-Reply-To: <20260408-dontcache-v2-1-948dec1e756b@kernel.org>
On Wed, Apr 08, 2026 at 10:25:21AM -0400, Jeff Layton wrote:
> Replace the inline filemap_flush_range() call with a
> wakeup_flusher_threads_bdi() call that kicks the BDI's flusher thread
> to drain dirty pages in the background. This moves writeback
> submission completely off the writer's hot path. The flusher thread
> handles writeback asynchronously, naturally coalescing and rate-limiting
> I/O without any explicit skip-if-busy or dirty pressure checks.
Having numbers showing the benefit here would be very useful.
> +/**
> + * filemap_dontcache_kick_writeback - kick flusher for IOCB_DONTCACHE writes
> + * @mapping: address_space that was just written to
> + *
> + * Wake the BDI flusher thread to start writeback of dirty pages in the
> + * background.
> + */
> +void filemap_dontcache_kick_writeback(struct address_space *mapping)
> +{
> + wakeup_flusher_threads_bdi(inode_to_bdi(mapping->host),
> + WB_REASON_DONTCACHE);
> +}
wakeup_flusher_threads_bdi ends up calling wb_start_writeback eventually,
which sets WB_start_all, pushes the reason to start_all_reason and then
does the actual wakeup.
The flusher thread then through wb_check_start_all does a WB_SYNC_NONE
writeback based on get_nr_dirty_pages. Which seems wrong - we don't
want to do a huge writeback evertime the some DONTCACHE write finished.
So I think you'll want a new WB_start_dontcache bit, a new
get_nr_dontcache_pages() helper on a new node counter, etc.
> +EXPORT_SYMBOL(filemap_dontcache_kick_writeback);
EXPORT_SYMBOL_GPL, please.
next prev parent reply other threads:[~2026-04-09 5:51 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-08 14:25 [PATCH v2 0/3] mm: improve write performance with RWF_DONTCACHE Jeff Layton
2026-04-08 14:25 ` [PATCH v2 1/3] mm: kick writeback flusher instead of inline flush for IOCB_DONTCACHE Jeff Layton
2026-04-09 1:40 ` Ritesh Harjani
2026-04-09 5:52 ` Christoph Hellwig
2026-04-16 22:49 ` Jeff Layton
2026-04-17 2:55 ` Ritesh Harjani
2026-04-09 5:50 ` Christoph Hellwig [this message]
2026-04-09 7:21 ` Jan Kara
2026-04-09 14:21 ` Christoph Hellwig
2026-04-10 10:41 ` Jan Kara
2026-04-10 11:05 ` Jeff Layton
2026-04-08 14:25 ` [PATCH v2 2/3] testing: add nfsd-io-bench NFS server benchmark suite Jeff Layton
2026-04-08 14:25 ` [PATCH v2 3/3] testing: add dontcache-bench local filesystem " Jeff Layton
2026-04-08 18:45 ` [PATCH v2 0/3] mm: improve write performance with RWF_DONTCACHE Jeff Layton
2026-04-09 6:06 ` Christoph Hellwig
2026-04-09 6:05 ` Christoph Hellwig
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=adc-Q1iDWHD5yxHH@infradead.org \
--to=hch@infradead.org \
--cc=Liam.Howlett@oracle.com \
--cc=akpm@linux-foundation.org \
--cc=axboe@kernel.dk \
--cc=brauner@kernel.org \
--cc=chuck.lever@oracle.com \
--cc=david@kernel.org \
--cc=jack@suse.cz \
--cc=jlayton@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-nfs@vger.kernel.org \
--cc=ljs@kernel.org \
--cc=mhocko@suse.com \
--cc=rppt@kernel.org \
--cc=snitzer@kernel.org \
--cc=surenb@google.com \
--cc=vbabka@kernel.org \
--cc=viro@zeniv.linux.org.uk \
--cc=willy@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.