RDS applications use predominantly request-response, transacation based IPC, so that ingress and egress traffic are well-balanced, and it is possible/desirable to reduce system-call overhead by piggybacking the notifications for zerocopy completion response with data.
Moreover, it has been pointed out that socket functions block if sk_err is non-zero, thus if the RDS code does not plan/need to use sk_error_queue path for completion notification, it is preferable to remove the sk_errror_queue related paths in RDS. Both of these goals are implemented in this series. Sowmini Varadhan (3): selftests/net: revert the zerocopy Rx path for PF_RDS rds: deliver zerocopy completion notification with data selftests/net: reap zerocopy completions passed up as ancillary data. include/uapi/linux/errqueue.h | 2 - include/uapi/linux/rds.h | 7 ++ net/rds/af_rds.c | 7 ++- net/rds/message.c | 35 ++++------ net/rds/rds.h | 2 + net/rds/recv.c | 34 +++++++++- tools/testing/selftests/net/msg_zerocopy.c | 109 +++++++++++----------------- 7 files changed, 103 insertions(+), 93 deletions(-)