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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox