From: root <ycnian@gmail.com>
To: Jeff Layton <jlayton@redhat.com>
Cc: Trond.Myklebust@netapp.com, linux-nfs@vger.kernel.org,
linux-kernel@vger.kernel.org
Subject: Re: nfsv4.1 client refuses to suspend
Date: Mon, 25 Mar 2013 17:27:40 +0800 [thread overview]
Message-ID: <20130325092740.GA12898@mail.example.com> (raw)
In-Reply-To: <20130322074003.616911b6@tlielax.poochiereds.net>
On Fri, Mar 22, 2013 at 07:40:03AM -0400, Jeff Layton wrote:
> On Fri, 22 Mar 2013 10:57:21 +0800
> ycnian@gmail.com wrote:
>
> > nfsv4.1 client suspending fails with such info
> >
> > Freezing of tasks failed after 20.00 seconds (1 tasks refusing to freeze, wq_busy=0):
> > nfsv4.1-svc S ffff88007889f2e0 0 3191 2 0x00000080
> > ffff88007b2f3e28 0000000000000046 ffff88007b2f2010 00000000000127c0
> > ffff880079b08000 00000000000127c0 ffff88007b2f3fd8 00000000000127c0
> > ffff88007b2f3fd8 00000000000127c0 ffffffff81a14410 ffff880079b08000
> > Call Trace:
> > [<ffffffff81441396>] schedule+0x64/0x66
> > [<ffffffffa06a6892>] nfs41_callback_svc+0x100/0x129 [nfsv4]
> > [<ffffffff8104fdb8>] ? wake_up_bit+0x2a/0x2a
> > [<ffffffffa06a6792>] ? nfs_callback_up+0x548/0x548 [nfsv4]
> > [<ffffffff8104f7e0>] kthread+0xb5/0xbd
> > [<ffffffff8104f72b>] ? kthread_freezable_should_stop+0x65/0x65
> > [<ffffffff8144912c>] ret_from_fork+0x7c/0xb0
> > [<ffffffff8104f72b>] ? kthread_freezable_should_stop+0x65/0x65
> >
> > I read such threads
> > [1] nfs/sunrpc: allow freezing of tasks with NFS calls in flight
> > [2] LOCKDEP: 3.9-rc1: mount.nfs/4272 still has locks held!
> > and then modify nfs41_callback_svc(). It works on my machine. I don't know
> > the details of freezing, so I'm not sure if the modification is reasonable.
> > This is not a formal patch. Thanks.
> >
> > Signed-off-by: Yanchuan Nian <ycnian@gmail.com>
> > ---
> > fs/nfs/callback.c | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >
> > diff --git a/fs/nfs/callback.c b/fs/nfs/callback.c
> > index 5088b57..8addb7b 100644
> > --- a/fs/nfs/callback.c
> > +++ b/fs/nfs/callback.c
> > @@ -138,7 +138,7 @@ nfs41_callback_svc(void *vrqstp)
> > error);
> > } else {
> > spin_unlock_bh(&serv->sv_cb_lock);
> > - schedule();
> > + freezable_schedule();
> > }
> > finish_wait(&serv->sv_cb_waitq, &wq);
> > }
>
> I think it'd be better to have that thread call try_to_freeze()
> directly instead of doing this. There are some problems with
> freezable_schedule() that still need to be resolved and I suspect that
> it will eventually go away entirely.
>
> It's may be sufficient to simply call try_to_freeze() at the top of
> the loop, but that would need to be tested.
Thanks, I tried it as follow
echo 'mem' > /sys/power/state
and it works ok. No further tests.
>
> --
> Jeff Layton <jlayton@redhat.com>
next prev parent reply other threads:[~2013-03-25 9:38 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-22 2:57 nfsv4.1 client refuses to suspend ycnian
2013-03-22 11:40 ` Jeff Layton
2013-03-25 9:27 ` root [this message]
2013-03-25 12:01 ` Jeff Layton
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=20130325092740.GA12898@mail.example.com \
--to=ycnian@gmail.com \
--cc=Trond.Myklebust@netapp.com \
--cc=jlayton@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-nfs@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 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.