rds: deliver zerocopy completion notification with data
authorSowmini Varadhan <sowmini.varadhan@oracle.com>
Tue, 27 Feb 2018 17:52:43 +0000 (09:52 -0800)
committerDavid S. Miller <davem@davemloft.net>
Tue, 27 Feb 2018 19:19:11 +0000 (14:19 -0500)
commit401910db4cd425899832a093539222b6174f92a2
tree7eb70bb22f23c1b7edb5245e17ad0f8c81bfc333
parent67490e34ba2b1c02fb554a8059cd6ce12b47ccfb
rds: deliver zerocopy completion notification with data

This commit is an optimization over commit 01883eda72bd
("rds: support for zcopy completion notification") for PF_RDS sockets.

RDS applications are predominantly request-response transactions, so
it is more efficient to reduce the number of system calls and have
zerocopy completion notification delivered as ancillary data on the
POLLIN channel.

Cookies are passed up as ancillary data (at level SOL_RDS) in a
struct rds_zcopy_cookies when the returned value of recvmsg() is
greater than, or equal to, 0. A max of RDS_MAX_ZCOOKIES may be passed
with each message.

This commit removes support for zerocopy completion notification on
MSG_ERRQUEUE for PF_RDS sockets.

Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
Acked-by: Willem de Bruijn <willemb@google.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/uapi/linux/errqueue.h
include/uapi/linux/rds.h
net/rds/af_rds.c
net/rds/message.c
net/rds/rds.h
net/rds/recv.c