From: Leon Romanovsky <leon@kernel.org>
To: Christian Brauner <brauner@kernel.org>,
David Howells <dhowells@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [GIT PULL] vfs netfs
Date: Thu, 26 Sep 2024 20:40:43 +0300 [thread overview]
Message-ID: <20240926174043.GA2166429@unreal> (raw)
In-Reply-To: <20240913-vfs-netfs-39ef6f974061@brauner>
On Fri, Sep 13, 2024 at 06:56:36PM +0200, Christian Brauner wrote:
> Hey Linus,
>
> /* Summary */
>
> This contains the work to improve read/write performance for the new
> netfs library.
>
> The main performance enhancing changes are:
>
> - Define a structure, struct folio_queue, and a new iterator type,
> ITER_FOLIOQ, to hold a buffer as a replacement for ITER_XARRAY. See
> that patch for questions about naming and form.
>
> ITER_FOLIOQ is provided as a replacement for ITER_XARRAY. The
> problem with an xarray is that accessing it requires the use of a
> lock (typically the RCU read lock) - and this means that we can't
> supply iterate_and_advance() with a step function that might sleep
> (crypto for example) without having to drop the lock between
> pages. ITER_FOLIOQ is the iterator for a chain of folio_queue
> structs, where each folio_queue holds a small list of folios. A
> folio_queue struct is a simpler structure than xarray and is not
> subject to concurrent manipulation by the VM. folio_queue is used
> rather than a bvec[] as it can form lists of indefinite size,
> adding to one end and removing from the other on the fly.
<...>
> David Howells (24):
> cachefiles: Fix non-taking of sb_writers around set/removexattr
> netfs: Adjust labels in /proc/fs/netfs/stats
> netfs: Record contention stats for writeback lock
> netfs: Reduce number of conditional branches in netfs_perform_write()
> netfs, cifs: Move CIFS_INO_MODIFIED_ATTR to netfs_inode
> netfs: Move max_len/max_nr_segs from netfs_io_subrequest to netfs_io_stream
> netfs: Reserve netfs_sreq_source 0 as unset/unknown
> netfs: Remove NETFS_COPY_TO_CACHE
> netfs: Set the request work function upon allocation
> netfs: Use bh-disabling spinlocks for rreq->lock
> mm: Define struct folio_queue and ITER_FOLIOQ to handle a sequence of folios
> iov_iter: Provide copy_folio_from_iter()
> cifs: Provide the capability to extract from ITER_FOLIOQ to RDMA SGEs
> netfs: Use new folio_queue data type and iterator instead of xarray iter
> netfs: Provide an iterator-reset function
> netfs: Simplify the writeback code
> afs: Make read subreqs async
> netfs: Speed up buffered reading
> netfs: Remove fs/netfs/io.c
> cachefiles, netfs: Fix write to partial block at EOF
> netfs: Cancel dirty folios that have no storage destination
> cifs: Use iterate_and_advance*() routines directly for hashing
> cifs: Switch crypto buffer to use a folio_queue rather than an xarray
> cifs: Don't support ITER_XARRAY
Christian, David,
Do you have fixes for the following issues reported for series?
https://lore.kernel.org/all/20240923183432.1876750-1-chantr4@gmail.com/
https://lore.kernel.org/all/4b5621958a758da830c1cf09c6f6893aed371f9d.camel@gmail.com/
https://lore.kernel.org/all/20240924094809.GA1182241@unreal/
In my case, I don't have any other workaround but simply revert these commits:
"netfs: Use new folio_queue data type and iterator instead of xarray iter"
"netfs: Provide an iterator-reset function"
"netfs: Simplify the writeback code"
"afs: Make read subreqs async"
"netfs: Speed up buffered reading"
"netfs: Remove fs/netfs/io.c"
"cachefiles, netfs: Fix write to partial block at EOF"
"netfs: Cancel dirty folios that have no storage destination"
"cifs: Use iterate_and_advance*() routines directly for hashing"
"cifs: Switch crypto buffer to use a folio_queue rather than an xarray"
"cifs: Don't support ITER_XARRAY"
"cifs: Fix signature miscalculation"
"cifs: Fix cifs readv callback merge resolution issue"
"cifs: Remove redundant setting of NETFS_SREQ_HIT_EOF"
Thanks
next prev parent reply other threads:[~2024-09-26 17:40 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-13 16:56 [GIT PULL] vfs netfs Christian Brauner
2024-09-16 10:28 ` Linus Torvalds
2024-09-16 11:09 ` pr-tracker-bot
2024-09-16 12:58 ` David Howells
2024-09-16 13:50 ` [PATCH] cifs: Fix cifs readv callback merge resolution issue David Howells
2024-09-16 14:08 ` Linus Torvalds
2024-09-16 15:33 ` David Howells
2024-09-16 16:49 ` Linus Torvalds
2024-09-16 14:02 ` [PATCH] cifs: Remove redundant setting of NETFS_SREQ_HIT_EOF David Howells
2024-09-26 17:40 ` Leon Romanovsky [this message]
2024-09-27 8:01 ` [GIT PULL] vfs netfs David Howells
2024-09-27 16:34 ` Leon Romanovsky
2024-09-27 20:31 ` David Howells
2024-09-28 10:11 ` Leon Romanovsky
-- strict thread matches above, loose matches on Subject: below --
2025-06-02 10:11 Christian Brauner
2025-06-02 22:58 ` pr-tracker-bot
2025-01-18 12:55 Christian Brauner
2025-01-20 18:59 ` pr-tracker-bot
2024-11-15 14:00 Christian Brauner
2024-11-18 18:29 ` Linus Torvalds
2024-11-20 8:49 ` Christian Brauner
2024-11-20 17:09 ` Linus Torvalds
2024-11-20 19:53 ` Christian Brauner
2024-11-18 19:49 ` pr-tracker-bot
2024-05-10 11:47 Christian Brauner
2024-05-13 19:38 ` pr-tracker-bot
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=20240926174043.GA2166429@unreal \
--to=leon@kernel.org \
--cc=brauner@kernel.org \
--cc=dhowells@redhat.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).