[Top] [All Lists]

Re: [PATCH v2] printk: fix delayed messages from CPU hotplug events

To: Paul Mundt <>
Subject: Re: [PATCH v2] printk: fix delayed messages from CPU hotplug events
From: Kevin Cernekee <>
Date: Mon, 31 May 2010 21:04:42 -0700
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=gamma; h=domainkey-signature:mime-version:received:received:in-reply-to :references:date:message-id:subject:from:to:cc:content-type; bh=FTPEMqlbshwvxP8nhoSIuosdzkPyqrAq2UpG+K3bx54=; b=yGHCXY5RY05itXg74s1aTrayPwGvfuc9+X7wmq0izqcslFZu8WIKCYqmsKQH2uD6Eh PyDTXkpD8eNntFrwkBqsqfkvqGRT1Ydp9JRbVa8fgnbHvMo8Rmq7S7pFkMBxqLfXOo/F VFJgVebLpVEehDehOY83WgjKtail8FOG9zuxE=
Domainkey-signature: a=rsa-sha1; c=nofws;; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=NmVK81IWSgYiFmOXAYE7qyDdzZCk7eZPurKR1enPq7KiypjrzDQrMDCISh5M6Nnvus G+ZxW2C41jOtI9FY1zrkgDiNCSy3EWsV2YrchVM97y2U4APk3XolJfGy5ymVDo3o0YKJ Kq7a/yAKQcOyMDgE9pQo+C+eWwHtmVdqsvFJQ=
In-reply-to: <>
References: <ede63b5a20af951c755736f035d1e787772d7c28@localhost> <>
On Mon, May 31, 2010 at 8:15 PM, Paul Mundt <> wrote:
> If this is to be entirely restricted to CPU hotplug then you could use
> the hotcpu notifier here instead of the open-coded cpu notifier directly,
> the former wraps to the latter in the CPU hotplug case and is simply a
> nop for the regular SMP case.

I ran some tests and saw the same problem during the regular MIPS SMP
boot.  i.e. adding "while (1) { }" at the end of __cpu_up() prevents
any of the probing/calibration messages originating on CPU1 from ever
being echoed to the console.  Adding the semaphore code before the
while loop caused the CPU1 messages to reappear.

Under normal circumstances you won't ever notice the problem at boot
time, because printing "Brought up %ld CPUs" has the undocumented side
effect of flushing out any messages that got stuck during SMP init.
And if that printk() wasn't there, the next one (from NET, PCI, SCSI,
...) would surely take its place.

But in the case of MIPS CPU hotplug, there is no such printk() at the
end, and so our luck runs out.

<Prev in Thread] Current Thread [Next in Thread>