public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Willy Tarreau <w@1wt.eu>
To: karthikeyan S <karthispeaks@gmail.com>
Cc: Grant Coady <gcoady.lk@gmail.com>, linux-kernel@vger.kernel.org
Subject: Re: A bug (probably) in stop_all_threads
Date: Tue, 16 Sep 2008 07:17:51 +0200	[thread overview]
Message-ID: <20080916051751.GA28475@1wt.eu> (raw)
In-Reply-To: <o44nc4dd8tpl94vf9bv81oklq8lt29112t@4ax.com>

Hi karthik,

Just a quick note to tell you that I have not missed your mail, I
just need some time to analyse your report and the code related
to it. Have you tried setting TASK_INTERRUPTIBLE as you suggest ?
At first sight, it seems to make sense.

Regards,
Willy

On Sat, Sep 13, 2008 at 08:07:04PM +1000, Grant Coady wrote:
> On Sat, 13 Sep 2008 13:57:28 +0530, "karthikeyan S" <karthispeaks@gmail.com> wrote:
> 
> CC added.
> 
> >Hi,
> >
> >Apologies if I am posting this message in an incorrect mailing list
> >and for bringing up an issue with older kernel version (2.4), and if
> >the issue had been brought up earlier and I missed it.
> >
> >There seems to be a bug with stop_all_threads function in 2.4. The
> >function sends SIGSTOP to all the threads in the thread group and
> >waits until all the threads get their state changed accordingly.
> >
> >While waiting, if it finds that the event has not occurred, it tires
> >to yield the processor to other processes by calling
> >schedule_timeout().
> >
> >Bur before calling schedule_timeout() it does not set the task state
> >to either TASK_INTERRUPTIBLE or TASK_UNINTERRUPTIBLE.
> >So schedule_timeout() does not do anything effectively.
> >
> >This causes a problem in our device which uses kernel 2.4. When we
> >have a sigsegv from the task which runs at highest priority, the
> >control is stuck waiting for all the threads in the thread group to
> >change their task state. But the other threads never get a chance to
> >run and the SIGSTOP sent to them is of no effect.
> >
> >When  I changed the stop_all_threads function to set the task state to
> >TASK_INTERRUPTIBLE, the problem disappears.
> >
> >So is this a real issue that stop_all_threads() does not set the
> >current task to TASK_INTERRUPTIBLE before calling schedule_timeout()?
> >
> >Please provide your feedback. Thanks a lot.
> >
> >-karthik

  reply	other threads:[~2008-09-16  5:18 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-13  8:27 A bug (probably) in stop_all_threads karthikeyan S
2008-09-13 10:07 ` Grant Coady
2008-09-16  5:17   ` Willy Tarreau [this message]
2008-09-16  5:49     ` karthikeyan S
2008-09-16  6:22       ` Willy Tarreau
2008-09-16  8:28         ` karthikeyan S
2008-09-16  9:28           ` Willy Tarreau
2008-09-16 19:30             ` karthikeyan S
2008-09-16 20:21               ` Willy Tarreau

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=20080916051751.GA28475@1wt.eu \
    --to=w@1wt.eu \
    --cc=gcoady.lk@gmail.com \
    --cc=karthispeaks@gmail.com \
    --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