Re: [PATCH] Use BIOS reboot on Toshiba Portege 4000

Avi Kivity
2008-11-04T10:48:58Z

Eric W. Biederman wrote:
> I think we are confusing two issues here.
>
> - Ordinary machine_restart which happens to call emergency_restart.
> And is proceeded by machine_shutdown.
>
> - And emergency_restart itself.
>
> To some extent I would be a lot happier if Alt-sysrq-r did what
> was necessary to get into a context where it can call machine_restart
> or even better kernel_restart().
> emergency_restart() is a nice idea but is broken by design.
>
>

Isn't emergency_restart() equivalent to kexec()? Both start from
indeterminite conditions.

> That said. If we can turn off vmx on that one processor.
> That should be enough for the cpu to triple fault and let
> the BIOS do what it needs to do on that cpu i.e. outb(magic, 0x92)
> and toggle a motherboard level reset?
>
>

If triple fault is wired to INIT (as it is at least on some systems; for
example one of mine) then the cpu will reset, but why will the bios
proceed to issue a motherboard reset? Won't it happily POST it's way to
boot (leaving the other cpus dead)?

> If I read the earlier comments correctly the deep issue is
> that going through ACPI to reset systems is less reliable than
> doing it the classic way.
>

It depends on the system; both are unreliable. But if we use the same
trick as with kdump (NMI SIPI + vmxoff) the choice will be orthogonal to
whether vmx is in use or not.

--
error compiling committee.c: too many arguments to function