]> www.infradead.org Git - users/hch/misc.git/commit
netfs: Fix rolling_buffer_load_from_ra() to not clear mark bits
authorDavid Howells <dhowells@redhat.com>
Fri, 14 Mar 2025 16:41:58 +0000 (16:41 +0000)
committerChristian Brauner <brauner@kernel.org>
Wed, 19 Mar 2025 09:04:22 +0000 (10:04 +0100)
commit15e9aaf9fc494d1a7280bf1184b4b5830c095209
treee06e06e1a73cd82a39fc3db3ac47b3770c60915c
parent344b7ef248f420ed4ba3a3539cb0a0fc18df9a6c
netfs: Fix rolling_buffer_load_from_ra() to not clear mark bits

rolling_buffer_load_from_ra() looms large in the perf report because it
loops around doing an atomic clear for each of the three mark bits per
folio.  However, this is both inefficient (it would be better to build a
mask and atomically AND them out) and unnecessary as they shouldn't be set.

Fix this by removing the loop.

Fixes: ee4cdf7ba857 ("netfs: Speed up buffered reading")
Signed-off-by: David Howells <dhowells@redhat.com>
Link: https://lore.kernel.org/r/20250314164201.1993231-4-dhowells@redhat.com
Acked-by: "Paulo Alcantara (Red Hat)" <pc@manguebit.com>
cc: Jeff Layton <jlayton@kernel.org>
cc: Steve French <sfrench@samba.org>
cc: Paulo Alcantara <pc@manguebit.com>
cc: netfs@lists.linux.dev
cc: linux-cifs@vger.kernel.org
cc: linux-fsdevel@vger.kernel.org
Signed-off-by: Christian Brauner <brauner@kernel.org>
fs/netfs/rolling_buffer.c