From: Trond Myklebust <trond.myklebust@fys.uio.no>
To: Birger Lammering <b.lammering@science-computing.de>
Cc: linux-kernel@vger.kernel.org, kuznet@ms2.inr.ac.ru
Subject: more tcpdumpinfo for nfs3 problem: aix-server --- linux 2.4.15pre5 client
Date: Mon, 19 Nov 2001 19:22:08 +0100 [thread overview]
Message-ID: <15353.19920.461805.879956@charged.uio.no> (raw)
In-Reply-To: <15353.13652.591045.916300@stderr.science-computing.de>
In-Reply-To: <15352.56551.709659.146271@stderr.science-computing.de> <E165mPr-0006F5-00@the-village.bc.nu> <15353.13652.591045.916300@stderr.science-computing.de>
>>>>> " " == Birger Lammering <b.lammering@science-computing.de> writes:
> 3133:3289(156) ack 514936 win 60032 16:27:26.282843 >
> capc25.muc.799 > caes04.muc.nfs: . 514936:514936(0) ack 3289
> win 8576 (DF)
> from now on we get lot's of these:
> 16:27:26.489024 > capc25.muc.576126976 > caes04.muc.nfs: 40
> null (DF) 16:27:26.489647 < caes04.muc.nfs >
> capc25.muc.576126976: reply ok 24 null
> The cp command on the Linux nfs3-client side hangs and cannot
> be killed. We get:
> dmesg: nfs: server caes04 not responding, still trying
> then after a while: dmesg: nfs: server caes04 OK
> qx09820@capc25 /home/qx09820 > netstat | grep caes04 tcp 0 0
> capc25.muc:798 caes04.muc:nfs ESTABLISHED
Ho hum... It looks to me as if the problem is that the Linux NFS
client is falling asleep before a write, and then not waking
up. That sort of points at the write_space() callback.
When the socket buffer is full, and we get an EAGAIN response to our
sendmsg() request, we normally put the request to sleep, block the
socket, and rely on write_space() to wake us up when there is enough
memory to proceed.
Assuming that this is the case, there are 2 possible causes:
1) A bug in the IPV4 TCP layer in which we don't call write_space()
despite having liberated enough memory to proceed.
2) I've misunderstood the IPV4 tcp api, and so the check for
sock_writeable() in net/sunrpc/xprt.c:tcp_write_space() is
incorrect.
Alexey: Do you have any comments? Is it correct to check for
sock_writeable() on a TCP socket?
Birger: could you try the following patch, that simply removes the
check for sock_writeable()?
Cheers,
Trond
--- linux-2.4.15-pre6/net/sunrpc/xprt.c.orig Mon Oct 8 21:36:07 2001
+++ linux-2.4.15-pre6/net/sunrpc/xprt.c Mon Nov 19 19:07:09 2001
@@ -1071,10 +1071,6 @@
if (xprt->shutdown)
return;
- /* Wait until we have enough socket memory */
- if (!sock_writeable(sk))
- return;
-
if (!xprt_test_and_set_wspace(xprt)) {
spin_lock(&xprt->sock_lock);
if (xprt->snd_task && xprt->snd_task->tk_rpcwait == &xprt->sending)
next prev parent reply other threads:[~2001-11-19 18:22 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <15349.39320.876188.274548@charged.uio.no>
2001-11-15 21:29 ` nfs problem: hp-server --- linux 2.4.13 client, ooops Birger Lammering
2001-11-15 23:58 ` Trond Myklebust
2001-11-16 11:45 ` nfs problem: hp|aix-server --- linux 2.4.15pre5 client Trond Myklebust
2001-11-16 12:01 ` Miquel van Smoorenburg
2001-11-16 12:24 ` Trond Myklebust
2001-11-16 11:24 ` Birger Lammering
2001-11-16 13:19 ` nfs problem: aix-server " Birger Lammering
2001-11-19 10:20 ` IPV4 socket layer, was: " Birger Lammering
2001-11-19 11:16 ` Alan Cox
2001-11-19 18:22 ` Trond Myklebust [this message]
2001-11-19 18:49 ` more tcpdumpinfo for nfs3 " kuznet
2001-11-19 18:55 ` Trond Myklebust
2001-11-19 19:09 ` kuznet
2001-11-19 19:29 ` Trond Myklebust
2001-11-19 19:52 ` kuznet
2001-11-19 20:38 ` Trond Myklebust
2001-11-19 21:17 ` Trond Myklebust
2001-11-20 17:42 ` kuznet
2001-11-20 19:39 ` Trond Myklebust
2001-11-20 19:45 ` kuznet
2001-11-20 20:29 ` Trond Myklebust
2001-11-21 10:07 ` Trond Myklebust
2001-11-21 17:05 ` kuznet
2001-11-20 20:05 ` Trond Myklebust
2001-11-20 20:18 ` David S. Miller
2001-11-20 20:28 ` more tcpdumpinfo for nfs3 problem: aix-server --- linux kuznet
2001-11-20 17:41 ` more tcpdumpinfo for nfs3 problem: aix-server --- linux 2.4.15pre5 client kuznet
2001-11-19 16:37 ` Birger Lammering
2001-11-20 9:26 ` Birger Lammering
2001-11-21 19:09 Manfred Spraul
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=15353.19920.461805.879956@charged.uio.no \
--to=trond.myklebust@fys.uio.no \
--cc=b.lammering@science-computing.de \
--cc=kuznet@ms2.inr.ac.ru \
--cc=linux-kernel@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®