Hi Keir,
As always, there are alternatives to almost any issue. I had
considered just fixing up the instances (eg, #3 below), but
decided on an alternate approach for a few reasons. I'll
spare you the reasoning, and jump to another proposal.
As you note, there are a few calls to machine_halt:
fatal_trap
do_double_fault
maybe_reboot (with opt_noreboot set)
panic (with opt_noreboot set)
dom0_shutdown (with poweroff requested)
This is the same list you mention below, and the last 3 items are
governed by a "switch", two of which would appear to default to
rebooting and one by specific request. So, let's assume that those
3 are ok. What would you like done with fatal_trap and
do_double_fault ? Should they be handled the same as panic and
maybe_reboot ? More specifically, perhaps fatal_trap, do_double_fault
and panic should just call maybe_reboot rather than machine_halt.
That keeps a common routine, which I like for reasons of maintenance
and defensiveness; it defaults to rebooting, but can be set to
halting; it builds off the exiting boot parameter. And, my real goal,
it allows the option of not halting. Unfortunately, it will change
some of the current behavior in that fatal_trap and do_double_fault
will now reboot and not halt. Is that an acceptable difference ?
Does that more closely approximate what you'd like to see ?
Thanks,
-b
-
Keir Fraser wrote:
On 3/11/06 9:29 pm, "Ben Thomas" <bthomas@xxxxxxxxxxxxxxx> wrote:
It's not always desirable for a system to halt. The hypervisor has a
number of places where it does request a halt, and this might be useful
for debugging, but not always in a production environment. Add a
hypervisor command line parameter, halt_action, which allows the
overriding of any halt requests. The parameter takes the form of
halt_action=halt, halt_action=reboot or halt_action=reboot:20
for halting, rebooting after a default 10 seconds, or rebooting after
a specified number of seconds. The default is halt_action=halt
and preserves existing behavior.
Signed-off-by: Ben Thomas (ben@xxxxxxxxxxxxxxx)
We halt in three situations:
1. Domain-0 asked us to (thru poweroff or halt)
2. 'noreboot' was specified as a boot parameter
3. We take an exception with IRQs disabled or we take a double fault.
Behaviours (1) and (2) are quite reasonable. We should really just fix (3)
to (attempt to) reboot after a few seconds, just like any other fatal
exception.
-- Keir
--
------------------------------------------------------------------------
Ben Thomas Virtual Iron Software
bthomas@xxxxxxxxxxxxxxx Tower 1, Floor 2
978-849-1214 900 Chelmsford Street
Lowell, MA 01851
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|