2007-08-05 15:29:31

by Jörg Hoffmann

[permalink] [raw]
Subject: [Patch] panic.c

Hello everybody,
(This is the first time i send in a patch, so correct me if I?m doing
something wrong)
This patch causes the cpu to stop instead of using an endless loop (I?m
not sure if this works with the watchdog so please take a review).
The idea behind this is to keep the power usage on panic?d machines
(without auto-reboot) low. Another point is in an Virtual Machine
environment the process of the VM is using 100% of the host-cpu. This
would stuck other programs or VMs. This patch brings the VM to stop and
keeps the cpu usage below 1%.
?
I have tested the patch in an VM, the only change is mdelay(); to
cpu_idle(); it doesn?t need more libs and should have no special
depencies to consider.
The panic-blink doesn?t work further so it might be removed if there is
no better way.
?
Maybe someone has an better idea for this ?problem?
?
Greetings
J?rg Hoffmann
?


Attachments:
panic.c.diff (248.00 B)

2007-08-05 15:35:45

by Jan Engelhardt

[permalink] [raw]
Subject: Re: [Patch] panic.c


On Aug 5 2007 17:28, Jörg Hoffmann wrote:
>Hello everybody,
>(This is the first time i send in a patch, so correct me if I’m doing
>something wrong)

See Documentation/SubmittingPatches. (And perhaps, U+0092 should be replaced by
something visible ;-)

>This patch causes the cpu to stop instead of using an endless loop (I’m
>not sure if this works with the watchdog so please take a review).
>The idea behind this is to keep the power usage on panic’d machines
>(without auto-reboot) low. Another point is in an Virtual Machine
>environment the process of the VM is using 100% of the host-cpu. This
>would stuck other programs or VMs. This patch brings the VM to stop and
>keeps the cpu usage below 1%.

>I have tested the patch in an VM, the only change is mdelay(); to
>cpu_idle(); it doesn’t need more libs and should have no special
>depencies to consider.

cpu_idle() uses quite a lot of variables which may be invalid after a panic.

Something similar has been mentioned previously,
http://lkml.org/lkml/2006/6/19/303

>The panic-blink doesn’t work further so it might be removed if there is
>no better way.

>Maybe someone has an better idea for this ‘problem’


Jan
--

2007-08-05 20:14:53

by Heiko Carstens

[permalink] [raw]
Subject: Re: [Patch] panic.c

> >The idea behind this is to keep the power usage on panic?d machines
> >(without auto-reboot) low. Another point is in an Virtual Machine
> >environment the process of the VM is using 100% of the host-cpu. This
> >would stuck other programs or VMs. This patch brings the VM to stop and
> >keeps the cpu usage below 1%.

For VM environments it would be better to have an interface that tells
the hypervisor that your guest is dead. That's what the disabled_wait()
line in panic() is good for on s390.