diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2022-04-29 10:06:21 -0400 |
---|---|---|
committer | Chuck Lever <chuck.lever@oracle.com> | 2022-05-23 11:06:29 -0400 |
commit | 28df0988815f63e2af5e6718193c9f68681ad7ff (patch) | |
tree | 63b9934813d5d24e8c90c65b396935abb8a722b2 /net/sunrpc/svc.c | |
parent | bb283ca18d1e67c82d22a329c96c9d6036a74790 (diff) | |
download | linux-28df0988815f63e2af5e6718193c9f68681ad7ff.tar.gz |
SUNRPC: Use RMW bitops in single-threaded hot paths
I noticed CPU pipeline stalls while using perf.
Once an svc thread is scheduled and executing an RPC, no other
processes will touch svc_rqst::rq_flags. Thus bus-locked atomics are
not needed outside the svc thread scheduler.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'net/sunrpc/svc.c')
-rw-r--r-- | net/sunrpc/svc.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c index 56bed0a57eea..7c9a0d0b1230 100644 --- a/net/sunrpc/svc.c +++ b/net/sunrpc/svc.c @@ -1244,10 +1244,10 @@ svc_process_common(struct svc_rqst *rqstp, struct kvec *argv, struct kvec *resv) goto err_short_len; /* Will be turned off by GSS integrity and privacy services */ - set_bit(RQ_SPLICE_OK, &rqstp->rq_flags); + __set_bit(RQ_SPLICE_OK, &rqstp->rq_flags); /* Will be turned off only when NFSv4 Sessions are used */ - set_bit(RQ_USEDEFERRAL, &rqstp->rq_flags); - clear_bit(RQ_DROPME, &rqstp->rq_flags); + __set_bit(RQ_USEDEFERRAL, &rqstp->rq_flags); + __clear_bit(RQ_DROPME, &rqstp->rq_flags); svc_putu32(resv, rqstp->rq_xid); |