lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20240926174043.GA2166429@unreal>
Date: Thu, 26 Sep 2024 20:40:43 +0300
From: Leon Romanovsky <leon@...nel.org>
To: Christian Brauner <brauner@...nel.org>,
	David Howells <dhowells@...hat.com>
Cc: Linus Torvalds <torvalds@...ux-foundation.org>,
	linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [GIT PULL] vfs netfs

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ