All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jason Baron <jbaron@akamai.com>
To: trond.myklebust@primarydata.com
Cc: bfields@fieldses.org, Anna.Schumaker@netapp.com,
	linux-nfs@vger.kernel.org
Subject: [PATCH v2 0/2] rpc: resolve softlockup in presence of iptables drop rule
Date: Wed, 24 Sep 2014 18:07:56 +0000 (GMT)	[thread overview]
Message-ID: <cover.1411580799.git.jbaron@akamai.com> (raw)

v2:
-return -EIO after major timeout on a soft mount, continue to retry if its a
hard mount
-fixup changelogs

Hi,

We've found a softlockup on the nfsv3 client (udp), while testing an iptables
rule, which simply drops traffic destined for the nfs server. The softlockup
occurs because xs_sendpages() returns a positive result (resulting in an
-EAGAIN), masking out the -EPERM that the lower level ip code returns.

The first patch restructures xs_sendpages() such that it can return a 'sent'
value in addition to an error value. It no longer over-loads the return value
as both a 'sent' and 'error' value. In this way the 'higher' level code can
make more informed decisions.

The second patch makes use of the new return value to propagate an -EIO
up instead of the -EAGAIN and avoids the cpu spinning.

Thanks,

-Jason


Jason Baron (2):
  rpc: return sent and err from xs_sendpages()
  rpc: Add -EPERM processing for xs_udp_send_request()

 net/sunrpc/clnt.c     |  2 ++
 net/sunrpc/xprtsock.c | 87 ++++++++++++++++++++++++++++-----------------------
 2 files changed, 50 insertions(+), 39 deletions(-)

-- 
1.8.2.rc2


             reply	other threads:[~2014-09-24 18:07 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-24 18:07 Jason Baron [this message]
2014-09-24 18:08 ` [PATCH v2 1/2] rpc: return sent and err from xs_sendpages() Jason Baron
2014-09-24 18:08 ` [PATCH v2 2/2] rpc: Add -EPERM processing for xs_udp_send_request() Jason Baron

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=cover.1411580799.git.jbaron@akamai.com \
    --to=jbaron@akamai.com \
    --cc=Anna.Schumaker@netapp.com \
    --cc=bfields@fieldses.org \
    --cc=linux-nfs@vger.kernel.org \
    --cc=trond.myklebust@primarydata.com \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.