From: Trond Myklebust <Trond.Myklebust@netapp.com>
To: Robert Wimmer <kernel@tauceti.net>
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
Avi Kivity <avi@redhat.com>,
Andrew Morton <akpm@linux-foundation.org>,
linux-mm@kvack.org, bugzilla-daemon@bugzilla.kernel.org,
Rusty Russell <rusty@rustcorp.com.au>, Mel Gorman <mel@csn.ul.ie>,
linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [Bugme-new] [Bug 15709] New: swapper page allocation failure
Date: Mon, 26 Apr 2010 19:28:56 -0400 [thread overview]
Message-ID: <1272324536.16814.45.camel@localhost.localdomain> (raw)
In-Reply-To: <4BD61147.40709@tauceti.net>
[-- Attachment #1: Type: text/plain, Size: 1532 bytes --]
On Tue, 2010-04-27 at 00:18 +0200, Robert Wimmer wrote:
> > Sure. In addition to what you did above, please do
> >
> > mount -t debugfs none /sys/kernel/debug
> >
> > and then cat the contents of the pseudofile at
> >
> > /sys/kernel/debug/tracing/stack_trace
> >
> > Please do this more or less immediately after you've finished mounting
> > the NFSv4 client.
> >
>
> I've uploaded the stack trace. It was generated
> directly after mounting. Here are the stacks:
>
> After mounting:
> https://bugzilla.kernel.org/attachment.cgi?id=26153
> After the soft lockup:
> https://bugzilla.kernel.org/attachment.cgi?id=26154
> The dmesg output of the soft lockup:
> https://bugzilla.kernel.org/attachment.cgi?id=26155
>
> > Does your server have the 'crossmnt' or 'nohide' flags set, or does it
> > use the 'refer' export option anywhere? If so, then we might have to
> > test further, since those may trigger the NFSv4 submount feature.
> >
> The server has the following settings:
> rw,nohide,insecure,async,no_subtree_check,no_root_squash
>
> Thanks!
> Robert
>
>
That second trace is more than 5.5K deep, more than half of which is
socket overhead :-(((.
The process stack does not appear to have overflowed, however that trace
doesn't include any IRQ stack overhead.
OK... So what happens if we get rid of half of that trace by forcing
asynchronous tasks such as this to run entirely in rpciod instead of
first trying to run in the process context?
See the attachment...
[-- Attachment #2: linux-2.6.34-000-reduce_async_rpc_stack_usage.dif --]
[-- Type: text/plain, Size: 856 bytes --]
SUNRPC: Reduce asynchronous RPC task stack usage
From: Trond Myklebust <Trond.Myklebust@netapp.com>
We should just farm out asynchronous RPC tasks immediately to rpciod...
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
---
net/sunrpc/sched.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c
index c8979ce..22a097f 100644
--- a/net/sunrpc/sched.c
+++ b/net/sunrpc/sched.c
@@ -720,7 +720,12 @@ void rpc_execute(struct rpc_task *task)
{
rpc_set_active(task);
rpc_set_running(task);
- __rpc_execute(task);
+ if (RPC_IS_ASYNC(task)) {
+ INIT_WORK(&task->u.tk_work, rpc_async_schedule);
+ queue_work(rpciod_workqueue, &task->u.tk_work);
+
+ } else
+ __rpc_execute(task);
}
static void rpc_async_schedule(struct work_struct *work)
next prev parent reply other threads:[~2010-04-26 23:29 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <bug-15709-10286@https.bugzilla.kernel.org/>
2010-04-08 19:34 ` [Bugme-new] [Bug 15709] New: swapper page allocation failure Andrew Morton
2010-04-08 19:39 ` Avi Kivity
2010-04-08 20:04 ` Michael S. Tsirkin
2010-04-09 10:15 ` Robert Wimmer
2010-04-11 11:03 ` Michael S. Tsirkin
2010-04-12 9:25 ` Robert Wimmer
2010-04-12 11:23 ` Michael S. Tsirkin
2010-04-12 13:50 ` Robert Wimmer
2010-04-12 13:52 ` Michael S. Tsirkin
2010-04-13 8:51 ` Robert Wimmer
2010-04-19 12:55 ` Robert Wimmer
2010-04-19 13:17 ` Michael S. Tsirkin
2010-04-21 11:23 ` kernel
2010-04-21 9:42 ` Michael S. Tsirkin
2010-04-22 11:31 ` kernel
2010-04-22 10:03 ` Michael S. Tsirkin
2010-04-23 5:26 ` Robert Wimmer
2010-04-25 9:18 ` Michael S. Tsirkin
2010-04-25 20:41 ` Robert Wimmer
2010-04-25 20:49 ` Michael S. Tsirkin
2010-04-26 12:15 ` Trond Myklebust
2010-04-26 20:25 ` Robert Wimmer
2010-04-26 21:04 ` Trond Myklebust
2010-04-26 22:18 ` Robert Wimmer
2010-04-26 23:28 ` Trond Myklebust [this message]
2010-04-27 22:56 ` Robert Wimmer
2010-05-03 8:11 ` kernel
2010-05-06 21:19 ` Robert Wimmer
2010-05-06 21:30 ` Trond Myklebust
2010-05-13 21:08 ` Robert Wimmer
2010-05-13 21:13 ` Trond Myklebust
2010-05-14 5:42 ` Robert Wimmer
2010-05-20 7:39 ` kernel
2010-05-25 20:01 ` Robert Wimmer
2010-06-02 11:56 ` kernel
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=1272324536.16814.45.camel@localhost.localdomain \
--to=trond.myklebust@netapp.com \
--cc=akpm@linux-foundation.org \
--cc=avi@redhat.com \
--cc=bugzilla-daemon@bugzilla.kernel.org \
--cc=kernel@tauceti.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-nfs@vger.kernel.org \
--cc=mel@csn.ul.ie \
--cc=mst@redhat.com \
--cc=rusty@rustcorp.com.au \
/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;
as well as URLs for NNTP newsgroup(s).