From: Trond Myklebust <trond.myklebust@fys.uio.no>
To: kladit@t-online.de (Klaus Dittrich),
Linus Torvalds <torvalds@transmeta.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: 2.4.7p6 hang
Date: 11 Jul 2001 14:56:43 +0200 [thread overview]
Message-ID: <shslmlv62us.fsf@charged.uio.no> (raw)
In-Reply-To: <200107110849.f6B8nlm00414@df1tlpc.local.here>
In-Reply-To: kladit@t-online.de's message of "Wed, 11 Jul 2001 10:49:47 +0200 (METDST)"
>>>>> " " == Klaus Dittrich <kladit@t-online.de> writes:
> Kernel: 2.4.7p5 or 2.4.7p6 System: PII-SMP, BX-Chipset
> The kernel boots up to the message
> .. Linux NET4.0 for Linux 2.4 Based upon Swansea University
> Computer Society NET3.039
> and then stops.
> I actually use 2.4.7p3 without problems.
I have the same problem on my setup. To me, it looks like the loop in
spawn_ksoftirqd() is suffering from some sort of atomicity problem.
I managed to band-aid over the problem by replacing the loop with a
semaphore which the child clears when it has been initialized (as per
the appended patch).
Linus?
Cheers,
Trond
--- linux-2.4.7-smp/kernel/softirq.c.orig Wed Jul 11 10:31:50 2001
+++ linux-2.4.7-smp/kernel/softirq.c Wed Jul 11 14:43:03 2001
@@ -371,6 +371,8 @@
}
}
+static DECLARE_MUTEX_LOCKED(ksoftirqd_start);
+
static int ksoftirqd(void * __bind_cpu)
{
int bind_cpu = *(int *) __bind_cpu;
@@ -391,6 +393,7 @@
mb();
ksoftirqd_task(cpu) = current;
+ up(&ksoftirqd_start);
for (;;) {
if (!softirq_pending(cpu))
@@ -416,12 +419,8 @@
if (kernel_thread(ksoftirqd, (void *) &cpu,
CLONE_FS | CLONE_FILES | CLONE_SIGNAL) < 0)
printk("spawn_ksoftirqd() failed for cpu %d\n", cpu);
- else {
- while (!ksoftirqd_task(cpu_logical_map(cpu))) {
- current->policy |= SCHED_YIELD;
- schedule();
- }
- }
+ else
+ down(&ksoftirqd_start);
}
return 0;
next prev parent reply other threads:[~2001-07-11 12:57 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-07-11 8:49 2.4.7p6 hang Klaus Dittrich
2001-07-11 12:56 ` Trond Myklebust [this message]
2001-07-11 13:38 ` Andrew Morton
2001-07-11 14:22 ` Trond Myklebust
2001-07-11 15:58 ` Andrea Arcangeli
2001-07-11 16:30 ` Trond Myklebust
2001-07-11 16:53 ` Andrea Arcangeli
2001-07-11 17:19 ` Mike Kravetz
2001-07-11 18:33 ` Josh Logan
2001-07-11 19:05 ` Andrea Arcangeli
2001-07-11 19:28 ` Josh Logan
2001-07-16 19:16 ` Josh Logan
2001-07-16 19:34 ` David Ford
2001-07-16 21:07 ` Josh Logan
2001-07-11 19:27 ` David Ford
2001-07-12 0:17 ` Johan Kullstam
2001-07-11 15:49 ` Andrea Arcangeli
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=shslmlv62us.fsf@charged.uio.no \
--to=trond.myklebust@fys.uio.no \
--cc=kladit@t-online.de \
--cc=linux-kernel@vger.kernel.org \
--cc=torvalds@transmeta.com \
/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.