diff options
author | David Howells <dhowells@redhat.com> | 2017-10-18 12:07:31 +0200 |
---|---|---|
committer | David Howells <dhowells@redhat.com> | 2017-10-18 12:43:07 +0200 |
commit | bc5e3a546d553e5223851fc199e69040eb70f68b (patch) | |
tree | bbe3546b0ade86b0df03d0e5e1717985bc06f1f2 /Documentation/networking | |
parent | rxrpc: Provide functions for allowing cleaner handling of signals (diff) | |
download | linux-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.txt | 12 |
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 |