linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next 00/10] rxrpc: Development
@ 2018-08-01 12:58 David Howells
  2018-08-01 12:58 ` [PATCH net-next 01/10] rxrpc: remove redundant variables 'sp' and 'did_discard' David Howells
                   ` (10 more replies)
  0 siblings, 11 replies; 12+ messages in thread
From: David Howells @ 2018-08-01 12:58 UTC (permalink / raw)
  To: netdev; +Cc: dhowells, linux-afs, linux-kernel


Here are some patches that add some more tracepoints to AF_RXRPC and fix
some issues therein.  The most significant points are:

 (1) Display the call timeout information in /proc/net/rxrpc/calls.

 (2) Save the call's debug_id in the rxrpc_channel struct so that it can be
     used in traces after the rxrpc_call struct has been destroyed.

 (3) Increase the size of the kAFS Rx window from 32 to 63 to be about the
     same as the Auristor server.

 (4) Propose the terminal ACK for a client call after it has received all
     its data to be transmitted after a short interval so that it will get
     transmitted if not first superseded by a new call on the same channel.

 (5) Flush ACKs during the data reception if we detect that we've run out
     of data.[*]

 (6) Trace successful packet transmission and softirq to process context
     socket notification.

[*] Note that on a uncontended gigabit network, rxrpc runs in to trouble
    with ACK packets getting batched together (up to ~32 at a time)
    somewhere between the IP transmit queue on the client and the ethernet
    receive queue on the server.

    I can see the kernel afs filesystem client and Auristor userspace
    server stalling occasionally on a 512MB single read.  Sticking
    tracepoints in the network driver at either end seems to show that,
    although the ACK transmissions made by the client are reasonably spaced
    timewise, the received ACKs come in batches from the network card on
    the server.

    I'm not sure what, if anything, can be done about this.


The patches are tagged here:

	git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
	rxrpc-next-20180801

and can also be found on this branch:

	http://git.kernel.org/cgit/linux/kernel/git/dhowells/linux-fs.git/log/?h=rxrpc-next

David
---
David Howells (9):
      rxrpc: Display call expect-receive-by timeout in proc
      rxrpc: Show some more information through /proc files
      rxrpc: Fix the trace for terminal ACK (re)transmission
      rxrpc: Trace packet transmission
      rxrpc: Fix ACK proposal tracepoint
      rxrpc: Trace socket notification
      rxrpc: Increase the size of a call's Rx window
      rxrpc: Propose, but don't immediately transmit, the final ACK for a call
      rxrpc: Transmit more ACKs during data reception

YueHaibing (1):
      rxrpc: remove redundant variables 'sp' and 'did_discard'


 include/trace/events/rxrpc.h |  129 ++++++++++++++++++++++++++++++------------
 net/rxrpc/ar-internal.h      |    4 +
 net/rxrpc/call_event.c       |    2 -
 net/rxrpc/conn_client.c      |    3 -
 net/rxrpc/conn_event.c       |   17 ++++--
 net/rxrpc/input.c            |   15 ++++-
 net/rxrpc/local_event.c      |    5 +-
 net/rxrpc/output.c           |   32 ++++++++--
 net/rxrpc/proc.c             |   23 ++++++-
 net/rxrpc/recvmsg.c          |   23 ++++++-
 net/rxrpc/rxkad.c            |    7 ++
 11 files changed, 193 insertions(+), 67 deletions(-)


^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2018-08-01 18:52 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-08-01 12:58 [PATCH net-next 00/10] rxrpc: Development David Howells
2018-08-01 12:58 ` [PATCH net-next 01/10] rxrpc: remove redundant variables 'sp' and 'did_discard' David Howells
2018-08-01 12:58 ` [PATCH net-next 02/10] rxrpc: Display call expect-receive-by timeout in proc David Howells
2018-08-01 12:59 ` [PATCH net-next 03/10] rxrpc: Show some more information through /proc files David Howells
2018-08-01 12:59 ` [PATCH net-next 04/10] rxrpc: Fix the trace for terminal ACK (re)transmission David Howells
2018-08-01 12:59 ` [PATCH net-next 05/10] rxrpc: Trace packet transmission David Howells
2018-08-01 12:59 ` [PATCH net-next 06/10] rxrpc: Fix ACK proposal tracepoint David Howells
2018-08-01 12:59 ` [PATCH net-next 07/10] rxrpc: Trace socket notification David Howells
2018-08-01 12:59 ` [PATCH net-next 08/10] rxrpc: Increase the size of a call's Rx window David Howells
2018-08-01 12:59 ` [PATCH net-next 09/10] rxrpc: Propose, but don't immediately transmit, the final ACK for a call David Howells
2018-08-01 12:59 ` [PATCH net-next 10/10] rxrpc: Transmit more ACKs during data reception David Howells
2018-08-01 18:52 ` [PATCH net-next 00/10] rxrpc: Development David Miller

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).