summaryrefslogtreecommitdiffstats
path: root/Documentation/networking
diff options
context:
space:
mode:
authorDavid Howells <dhowells@redhat.com>2017-10-18 12:07:31 +0200
committerDavid Howells <dhowells@redhat.com>2017-10-18 12:43:07 +0200
commitbc5e3a546d553e5223851fc199e69040eb70f68b (patch)
treebbe3546b0ade86b0df03d0e5e1717985bc06f1f2 /Documentation/networking
parentrxrpc: Provide functions for allowing cleaner handling of signals (diff)
downloadlinux-bc5e3a546d553e5223851fc199e69040eb70f68b.tar.xz
linux-bc5e3a546d553e5223851fc199e69040eb70f68b.zip
rxrpc: Use MSG_WAITALL to tell sendmsg() to temporarily ignore signals
Make AF_RXRPC accept MSG_WAITALL as a flag to sendmsg() to tell it to ignore signals whilst loading up the message queue, provided progress is being made in emptying the queue at the other side. Progress is defined as the base of the transmit window having being advanced within 2 RTT periods. If the period is exceeded with no progress, sendmsg() will return anyway, indicating how much data has been copied, if any. Once the supplied buffer is entirely decanted, the sendmsg() will return. Signed-off-by: David Howells <dhowells@redhat.com>
Diffstat (limited to 'Documentation/networking')
-rw-r--r--Documentation/networking/rxrpc.txt12
1 files changed, 12 insertions, 0 deletions
diff --git a/Documentation/networking/rxrpc.txt b/Documentation/networking/rxrpc.txt
index 1fb5c553aedd..b5407163d53b 100644
--- a/Documentation/networking/rxrpc.txt
+++ b/Documentation/networking/rxrpc.txt
@@ -280,6 +280,18 @@ Interaction with the user of the RxRPC socket:
nominated by a socket option.
+Notes on sendmsg:
+
+ (*) MSG_WAITALL can be set to tell sendmsg to ignore signals if the peer is
+ making progress at accepting packets within a reasonable time such that we
+ manage to queue up all the data for transmission. This requires the
+ client to accept at least one packet per 2*RTT time period.
+
+ If this isn't set, sendmsg() will return immediately, either returning
+ EINTR/ERESTARTSYS if nothing was consumed or returning the amount of data
+ consumed.
+
+
Notes on recvmsg:
(*) If there's a sequence of data messages belonging to a particular call on