linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* balance_irq()'s move() while in machine_restart() hangs system
@ 2003-04-09 22:56 Matt Domsch
  2003-04-10  8:06 ` Ingo Molnar
  0 siblings, 1 reply; 2+ messages in thread
From: Matt Domsch @ 2003-04-09 22:56 UTC (permalink / raw)
  To: mingo; +Cc: linux-kernel

Ingo, if one processor is in move() when another processor calls
machine_restart(), the system will hang.  All otherCPUs will move into
the hlt state, but one in move(), by virtue of smp_num_cpus getting set
to 1 in smp_send_stop() before the 4th CPU has completed its work and
gets out of move().  It will loop in move() in this chunk:

		if (direction == 1) {
			cpu++;
			if (cpu >= smp_num_cpus)
				cpu = 0;
		} else {
			cpu--;
			if (cpu == -1)
				cpu = smp_num_cpus-1;
		}
	} while (!IRQ_ALLOWED(cpu,allowed_mask) ||
			(search_idle && !IDLE_ENOUGH(cpu,now)));

with smp_num_cpus=1 and never manage to exit.

Is it fair to change smp_send_stop() to call
smp_call_function(stop_this_cpu, NULL, 1, 1) instead (make it wait for
the other CPUs to complete before continuing)?

Thanks,
Matt

-- 
Matt Domsch
Sr. Software Engineer, Lead Engineer, Architect
Dell Linux Solutions www.dell.com/linux
Linux on Dell mailing lists @ http://lists.us.dell.com


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: balance_irq()'s move() while in machine_restart() hangs system
  2003-04-09 22:56 balance_irq()'s move() while in machine_restart() hangs system Matt Domsch
@ 2003-04-10  8:06 ` Ingo Molnar
  0 siblings, 0 replies; 2+ messages in thread
From: Ingo Molnar @ 2003-04-10  8:06 UTC (permalink / raw)
  To: Matt Domsch; +Cc: linux-kernel


On 9 Apr 2003, Matt Domsch wrote:

> Is it fair to change smp_send_stop() to call
> smp_call_function(stop_this_cpu, NULL, 1, 1) instead (make it wait for
> the other CPUs to complete before continuing)?

sure, it's fair - at that point all the notification has been done.

	Ingo


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2003-04-10  7:55 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-04-09 22:56 balance_irq()'s move() while in machine_restart() hangs system Matt Domsch
2003-04-10  8:06 ` Ingo Molnar

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).