rxrpc: Move DATA transmission into call processor work item
authorDavid Howells <dhowells@redhat.com>
Thu, 31 Mar 2022 22:55:08 +0000 (23:55 +0100)
committerDavid Howells <dhowells@redhat.com>
Thu, 1 Dec 2022 13:36:41 +0000 (13:36 +0000)
commitcf37b5987508878647161ec3cdba0bb00a1b607a
treed39fbe2796d73724a18b9ad8173b6236cc3a9b8b
parentf3441d4125fc98995858550a5521b8d7daf0504a
rxrpc: Move DATA transmission into call processor work item

Move DATA transmission into the call processor work item.  In a future
patch, this will be called from the I/O thread rather than being itsown
work item.

This will allow DATA transmission to be driven directly by incoming ACKs,
pokes and timers as those are processed.

The Tx queue is also split: The queue of packets prepared by sendmsg is now
places in call->tx_sendmsg and the packet dispatcher decants the packets
into call->tx_buffer as space becomes available in the transmission
window.  This allows sendmsg to run ahead of the available space to try and
prevent an underflow in transmission.

Signed-off-by: David Howells <dhowells@redhat.com>
cc: Marc Dionne <marc.dionne@auristor.com>
cc: linux-afs@lists.infradead.org
include/trace/events/rxrpc.h
net/rxrpc/ar-internal.h
net/rxrpc/call_event.c
net/rxrpc/call_object.c
net/rxrpc/output.c
net/rxrpc/sendmsg.c
net/rxrpc/txbuf.c