From: Tim Hockin <thockin@sun.com>
To: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: Tim Hockin <thockin@hockin.org>,
Linux Kernel mailing list <linux-kernel@vger.kernel.org>
Subject: Re: calling flush_scheduled_work()
Date: Fri, 12 Mar 2004 15:27:13 -0800 [thread overview]
Message-ID: <20040312232713.GZ1333@sun.com> (raw)
In-Reply-To: <1079133554.3166.69.camel@lade.trondhjem.org>
On Fri, Mar 12, 2004 at 06:19:14PM -0500, Trond Myklebust wrote:
> Ewww.... That's saying "I'm just going to ignore the problem and pretend
> I can continue". At least the hang will tell you that there *is* a
> problem and points to where it is happening.
Well, it needs to be non-silent. Whether that is a BUG() or a badness or a
panic..
> > In short, it's dubious that ANYONE call flush_scheduled_work() on a
> > workqueue that they don't own.
>
> Huh? You're saying that just because work has been scheduled on some
> third party thread, you should not be allowed to wait on completion of
> that work? That is a clearly unreasonable statement... Imagine doing
> even memory allocation in such an environment...
Waiting for completion of your work is one thing. But you can't know what
else has been scheduled. In this case RPC doesn't know that our work is
calling it. By waiting for ALL work, it is assuming (silently) that it will
never be called from a keventd.
Either that assumption is true, in which case there needs to be a BUG and a
way out, or that assumption is false. I'd like to believe that the
assumption is false.
> The *real* problem here is that mput() is being run from keventd, and is
> triggering code that was assumed to be running from an ordinary process
> context. Let's concentrate on fixing that...
Well, we did fix it in a different way. I just wanted to bring this up as
something that warrants at least a BUG(). But a BUG() and deadlock is
almost a panic().
So if mntput() just CAN NOT be called from keventd, that is a fine answer,
but something should be written about that. And all the other things that
can not be called from keventd.
--
Tim Hockin
Sun Microsystems, Linux Software Engineering
thockin@sun.com
All opinions are my own, not Sun's
next prev parent reply other threads:[~2004-03-12 23:31 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-12 20:58 calling flush_scheduled_work() Tim Hockin
2004-03-12 22:00 ` Trond Myklebust
2004-03-12 22:38 ` Tim Hockin
2004-03-12 23:19 ` Trond Myklebust
2004-03-12 23:27 ` Tim Hockin [this message]
2004-03-12 23:27 ` Andrew Morton
2004-03-13 0:20 ` Tim Hockin
2004-03-13 1:17 ` Trond Myklebust
2004-03-13 2:12 ` Andrew Morton
2004-03-13 2:24 ` Trond Myklebust
-- strict thread matches above, loose matches on Subject: below --
2004-03-13 11:45 Stefan Rompf
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=20040312232713.GZ1333@sun.com \
--to=thockin@sun.com \
--cc=linux-kernel@vger.kernel.org \
--cc=thockin@hockin.org \
--cc=trond.myklebust@fys.uio.no \
/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