LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: David Howells <dhowells@redhat.com>
To: netdev@vger.kernel.org
Cc: dhowells@redhat.com, linux-afs@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: [PATCH net 0/6] rxrpc, afs: Interruptibility fixes
Date: Thu, 19 Mar 2020 11:53:29 +0000	[thread overview]
Message-ID: <158461880968.3094720.5019510060910604912.stgit@warthog.procyon.org.uk> (raw)


Here are a number of fixes for AF_RXRPC and AFS that make AFS system calls
less interruptible and so less likely to leave the filesystem in an
uncertain state.  There's also a miscellaneous patch to make tracing
consistent.

 (1) Firstly, abstract out the Tx space calculation in sendmsg.  Much the
     same code is replicated in a number of places that subsequent patches
     are going to alter, including adding another copy.

 (2) Fix Tx interruptibility by allowing a kernel service, such as AFS, to
     request that a call be interruptible only when waiting for a call slot
     to become available (ie. the call has not taken place yet) or that a
     call be not interruptible at all (e.g. when we want to do writeback
     and don't want a signal interrupting a VM-induced writeback).

 (3) Increase the minimum delay on MSG_WAITALL for userspace sendmsg() when
     waiting for Tx buffer space as a 2*RTT delay is really small over 10G
     ethernet and a 1 jiffy timeout might be essentially 0 if at the end of
     the jiffy period.

 (4) Fix some tracing output in AFS to make it consistent with rxrpc.

 (5) Make sure aborted asynchronous AFS operations are tidied up properly
     so we don't end up with stuck rxrpc calls.

 (6) Make AFS client calls uninterruptible in the Rx phase.  If we don't
     wait for the reply to be fully gathered, we can't update the local VFS
     state and we end up in an indeterminate state with respect to the
     server.

The patches are tagged here:

	git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git
	rxrpc-fixes-20200319

and can also be found on the following branch:

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

David
---
David Howells (6):
      rxrpc: Abstract out the calculation of whether there's Tx space
      rxrpc: Fix call interruptibility handling
      rxrpc: Fix sendmsg(MSG_WAITALL) handling
      afs: Fix some tracing details
      afs: Fix handling of an abort from a service handler
      afs: Fix client call Rx-phase signal handling


 fs/afs/cmservice.c         |   14 +++++++-
 fs/afs/internal.h          |   12 ++++++-
 fs/afs/rxrpc.c             |   74 ++++++-------------------------------------
 include/net/af_rxrpc.h     |   12 +++++--
 include/trace/events/afs.h |    2 +
 net/rxrpc/af_rxrpc.c       |   37 +++-------------------
 net/rxrpc/ar-internal.h    |    5 +--
 net/rxrpc/call_object.c    |    3 +-
 net/rxrpc/conn_client.c    |   13 ++++++--
 net/rxrpc/input.c          |    1 -
 net/rxrpc/sendmsg.c        |   75 +++++++++++++++++++++++++++++++++-----------
 11 files changed, 115 insertions(+), 133 deletions(-)



             reply	other threads:[~2020-03-19 11:53 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-19 11:53 David Howells [this message]
2020-03-19 11:53 ` [PATCH net 1/6] rxrpc: Abstract out the calculation of whether there's Tx space David Howells
2020-03-19 11:53 ` [PATCH net 2/6] rxrpc: Fix call interruptibility handling David Howells
2020-03-19 11:53 ` [PATCH net 3/6] rxrpc: Fix sendmsg(MSG_WAITALL) handling David Howells
2020-03-19 11:53 ` [PATCH net 4/6] afs: Fix some tracing details David Howells
2020-03-19 11:54 ` [PATCH net 5/6] afs: Fix handling of an abort from a service handler David Howells
2020-03-19 11:54 ` [PATCH net 6/6] afs: Fix client call Rx-phase signal handling David Howells
2020-03-20  3:28 ` [PATCH net 0/6] rxrpc, afs: Interruptibility fixes David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=158461880968.3094720.5019510060910604912.stgit@warthog.procyon.org.uk \
    --to=dhowells@redhat.com \
    --cc=linux-afs@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --subject='Re: [PATCH net 0/6] rxrpc, afs: Interruptibility fixes' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

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).