mbox series

[v1,0/3] Eliminate the RQ_SPLICE_OK flag

Message ID 169988319025.6844.14300255016413760826.stgit@bazille.1015granger.net (mailing list archive)
Headers show
Series Eliminate the RQ_SPLICE_OK flag | expand

Message

Chuck Lever Nov. 13, 2023, 1:54 p.m. UTC
The server's splice read path is used by the majority of exported
filesystems. At last month's bake-a-thon, we tossed around some
ideas about how to improve benchmarking and test coverage of the NFS
server's vectored-read path, which is a fallback.

One way to do this would be to expose a switch that can be set by
test harnesses to disable splice reads.

As an initial step, hoist RQ_SPLICE_OK out of the RPC layer. Later,
I'll add a netlink command to as a switch between "use splice if
possible" and "always use vectored reads". (I don't want to collide
with the work Lorenzo is doing).

---

Chuck Lever (3):
      NFSD: Replace RQ_SPLICE_OK in nfsd_read()
      NFSD: Modify NFSv4 to use nfsd_read_splice_ok()
      SUNRPC: Remove RQ_SPLICE_OK


 fs/nfsd/nfs4proc.c                |  7 +++++--
 fs/nfsd/nfs4xdr.c                 | 13 ++++++++-----
 fs/nfsd/vfs.c                     | 30 +++++++++++++++++++++++++++++-
 fs/nfsd/vfs.h                     |  1 +
 fs/nfsd/xdr4.h                    |  1 +
 include/linux/sunrpc/svc.h        |  2 --
 include/trace/events/sunrpc.h     |  1 -
 net/sunrpc/auth_gss/svcauth_gss.c | 10 ----------
 net/sunrpc/svc.c                  |  2 --
 9 files changed, 44 insertions(+), 23 deletions(-)

--
Chuck Lever

Comments

Jeff Layton Nov. 27, 2023, 12:38 p.m. UTC | #1
On Mon, 2023-11-13 at 08:54 -0500, Chuck Lever wrote:
> The server's splice read path is used by the majority of exported
> filesystems. At last month's bake-a-thon, we tossed around some
> ideas about how to improve benchmarking and test coverage of the NFS
> server's vectored-read path, which is a fallback.
> 
> One way to do this would be to expose a switch that can be set by
> test harnesses to disable splice reads.
> 
> As an initial step, hoist RQ_SPLICE_OK out of the RPC layer. Later,
> I'll add a netlink command to as a switch between "use splice if
> possible" and "always use vectored reads". (I don't want to collide
> with the work Lorenzo is doing).
> 
> ---
> 
> Chuck Lever (3):
>       NFSD: Replace RQ_SPLICE_OK in nfsd_read()
>       NFSD: Modify NFSv4 to use nfsd_read_splice_ok()
>       SUNRPC: Remove RQ_SPLICE_OK
> 
> 
>  fs/nfsd/nfs4proc.c                |  7 +++++--
>  fs/nfsd/nfs4xdr.c                 | 13 ++++++++-----
>  fs/nfsd/vfs.c                     | 30 +++++++++++++++++++++++++++++-
>  fs/nfsd/vfs.h                     |  1 +
>  fs/nfsd/xdr4.h                    |  1 +
>  include/linux/sunrpc/svc.h        |  2 --
>  include/trace/events/sunrpc.h     |  1 -
>  net/sunrpc/auth_gss/svcauth_gss.c | 10 ----------
>  net/sunrpc/svc.c                  |  2 --
>  9 files changed, 44 insertions(+), 23 deletions(-)
> 
> --
> Chuck Lever
> 

Nice cleanup

Reviewed-by: Jeff Layton <jlayton@kernel.org>
Chuck Lever Nov. 27, 2023, 4:14 p.m. UTC | #2
> On Nov 27, 2023, at 7:38 AM, Jeff Layton <jlayton@kernel.org> wrote:
> 
> On Mon, 2023-11-13 at 08:54 -0500, Chuck Lever wrote:
>> The server's splice read path is used by the majority of exported
>> filesystems. At last month's bake-a-thon, we tossed around some
>> ideas about how to improve benchmarking and test coverage of the NFS
>> server's vectored-read path, which is a fallback.
>> 
>> One way to do this would be to expose a switch that can be set by
>> test harnesses to disable splice reads.
>> 
>> As an initial step, hoist RQ_SPLICE_OK out of the RPC layer. Later,
>> I'll add a netlink command to as a switch between "use splice if
>> possible" and "always use vectored reads". (I don't want to collide
>> with the work Lorenzo is doing).
>> 
>> ---
>> 
>> Chuck Lever (3):
>>      NFSD: Replace RQ_SPLICE_OK in nfsd_read()
>>      NFSD: Modify NFSv4 to use nfsd_read_splice_ok()
>>      SUNRPC: Remove RQ_SPLICE_OK
>> 
>> 
>> fs/nfsd/nfs4proc.c                |  7 +++++--
>> fs/nfsd/nfs4xdr.c                 | 13 ++++++++-----
>> fs/nfsd/vfs.c                     | 30 +++++++++++++++++++++++++++++-
>> fs/nfsd/vfs.h                     |  1 +
>> fs/nfsd/xdr4.h                    |  1 +
>> include/linux/sunrpc/svc.h        |  2 --
>> include/trace/events/sunrpc.h     |  1 -
>> net/sunrpc/auth_gss/svcauth_gss.c | 10 ----------
>> net/sunrpc/svc.c                  |  2 --
>> 9 files changed, 44 insertions(+), 23 deletions(-)
>> 
>> --
>> Chuck Lever
>> 
> 
> Nice cleanup
> 
> Reviewed-by: Jeff Layton <jlayton@kernel.org>

Thanks! There is a v2, however, because the 0-day robot
flagged a significant problem with this set.

--
Chuck Lever