From: Roland Dreier <roland@topspin.com>
To: "Shawn Starr" <spstarr@sh0n.net>
Cc: "'Andrew Morton'" <akpm@digeo.com>, <rml@tech9.net>,
<linux-kernel@vger.kernel.org>
Subject: Re: [BUG][2.5.66bk9+] - changes to timers still broken - we don't oops anymore
Date: 06 Apr 2003 13:20:28 -0700 [thread overview]
Message-ID: <52u1dbxtrn.fsf@topspin.com> (raw)
In-Reply-To: <000001c2fc78$5f1df8b0$030aa8c0@unknown>
>>>>> "Shawn" == Shawn Starr <spstarr@sh0n.net> writes:
Shawn> It just caused sshd to hang. I don't know why Here's what
Shawn> strace reports: Sshd is stuck in 'D' and a child in zombie
Shawn> state. The machine has been up for 2 days 18 hours 50 mins.
I may have missed some emails on this topic, so I apologize if this
objection was already answered. In any case, if you're running with
Andrew's patch that added a del_timer_sync to release_dev(), I think I
see how that could cause problems. Here's what I said in my previous
email:
From looking at workqueue.c (especially the comment in
queue_delayed_work() that says "Increase nr_queued so that the flush
function knows that there's something pending."), it seems like
flush_scheduled_work() should wait until even delayed work is done.
Given that, I don't think the del_timer_sync() should be there --
wouldn't flush_scheduled_work() block forever, since nr_queued can
never reach 0 now?
Also, I didn't see an answer to the worry I expressed below:
I don't see how it's _ever_ safe to call flush_scheduled_work().
The comment in workqueue.c before flush_workqueue() says "NOTE: if
work is being added to the queue constantly by some other context
then this function might block indefinitely." But
flush_scheduled_work() is flushing the keventd_wq, which other code
will definitely add work to. If we're unlucky,
flush_scheduled_work() could block forever. Am I just being
paranoid?
I admit that flush_scheduled_work() is unlikely to cause problems in
most real world situations, but I'd be curious to know if anyone
thinks this could ever lead to a livelock under some strange condition.
- Roland
next prev parent reply other threads:[~2003-04-06 20:09 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-04-06 20:09 [BUG][2.5.66bk9+] - changes to timers still broken - we don't oops anymore Shawn Starr
2003-04-06 20:20 ` Roland Dreier [this message]
2003-04-06 20:38 ` Andrew Morton
2003-04-06 21:00 ` Shawn Starr
2003-04-09 2:12 ` [BUG][2.5.66bk9+] - tty hangings - patches, dmesg & sysctl+T info Shawn Starr
2003-04-09 4:12 ` Andrew Morton
2003-04-09 4:47 ` Roland Dreier
2003-04-09 4:56 ` Andrew Morton
2003-04-09 4:16 ` Roland Dreier
2003-04-09 4:27 ` Andrew Morton
2003-04-09 4:52 ` Roland Dreier
2003-04-09 5:01 ` Shawn Starr
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=52u1dbxtrn.fsf@topspin.com \
--to=roland@topspin.com \
--cc=akpm@digeo.com \
--cc=linux-kernel@vger.kernel.org \
--cc=rml@tech9.net \
--cc=spstarr@sh0n.net \
/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.