public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: torvalds@transmeta.com (Linus Torvalds)
To: linux-kernel@vger.kernel.org
Subject: Re: [2.5.60] dcachebench sleeps
Date: Tue, 11 Feb 2003 20:14:29 +0000 (UTC)	[thread overview]
Message-ID: <b2blj5$1bp$1@penguin.transmeta.com> (raw)
In-Reply-To: 20030211181807.A1261@in.ibm.com

In article <20030211181807.A1261@in.ibm.com>,
Maneesh Soni  <maneesh@in.ibm.com> wrote:
>
>With 2.5.60, dcachebench no more completes. All threads
>go to sleep as below. Last time I tested was with an intermediated BK diff 
>(diff-bk-030204-2.5.59) and it was working fine. 

This should be fixed in the current BK tree. And for the non-BK-users,
here's the relevant changeset..

		Linus

---
# This is a BitKeeper generated patch for the following project:
# Project Name: Linux kernel tree
# This patch format is intended for GNU patch command version 2.5 or higher.
# This patch includes the following deltas:
#	           ChangeSet	1.997.1.20 -> 1.997.1.21
#	     kernel/signal.c	1.67    -> 1.68   
#
# The following is the BitKeeper ChangeSet Log
# --------------------------------------------
# 03/02/11	torvalds@home.transmeta.com	1.997.1.21
# If we set TIF_SIGPENDING for SIGCONT, we have to wake up any sleeping
# tasks (even if we don't otherwise need to wake anything up), since
# otherwise later signals would see that signals are already pending and
# wouldn't cause wakeups.
# --------------------------------------------
#
diff -Nru a/kernel/signal.c b/kernel/signal.c
--- a/kernel/signal.c	Tue Feb 11 12:13:43 2003
+++ b/kernel/signal.c	Tue Feb 11 12:13:43 2003
@@ -619,6 +619,7 @@
 		rm_from_queue(SIG_KERNEL_STOP_MASK, &p->signal->shared_pending);
 		t = p;
 		do {
+			unsigned int state;
 			rm_from_queue(SIG_KERNEL_STOP_MASK, &t->pending);
 			
 			/*
@@ -635,9 +636,12 @@
 			 * Wake up the stopped thread _after_ setting
 			 * TIF_SIGPENDING
 			 */
-			if (!sigismember(&t->blocked, SIGCONT))
+			state = TASK_STOPPED;
+			if (!sigismember(&t->blocked, SIGCONT)) {
 				set_tsk_thread_flag(t, TIF_SIGPENDING);
-			wake_up_state(t, TASK_STOPPED);
+				state |= TASK_INTERRUPTIBLE;
+			}
+			wake_up_state(t, state);
 
 			t = next_thread(t);
 		} while (t != p);


  reply	other threads:[~2003-02-11 20:08 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-02-11 12:48 [2.5.60] dcachebench sleeps Maneesh Soni
2003-02-11 20:14 ` Linus Torvalds [this message]
2003-02-12  5:12   ` Maneesh Soni

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='b2blj5$1bp$1@penguin.transmeta.com' \
    --to=torvalds@transmeta.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