Kexec and KVM not working gracefully together

Geoff Levand geoff at infradead.org
Sun Feb 8 19:54:49 PST 2015


Hi Frediano,

On Fri, 2015-02-06 at 12:14 +0000, Frediano Ziglio wrote:
> 2015-02-06 10:56 GMT+00:00 AKASHI Takahiro <takahiro.akashi at linaro.org>:
> >> Frediano Ziglio wrote:
> >> The kernel code is supposed (at least in ARMv7) to run in SVC mode,
> >> not on HYP mode. One reason is that code that change SCTLR executed at
> >> HYP instead of SVC would not change current mode system control
> >> register. The function does not revert to HYP for this reason.
> >
> > I need understand what you mentioned here, but for arm64, Geoff's kexec lets
> > the boot cpu in hyp mode at soft_restart().
> 
> Where's Geoff code? Note however that is not maintainable in this way
> as people have to consider that future code could execute in either
> HYP or SVC mode. Did you test that all code called from soft_restart
> could do it?

Basically, when a CPU is reset it needs to be put into the exception
level it had when it first entered the kernel.

I have my arm64 kernel patches here:

  https://git.kernel.org/cgit/linux/kernel/git/geoff/linux-kexec.git

The patches related to CPU reset are:

  arm64: Convert hcalls to use ISS field
  arm64: Add new hcall HVC_CALL_FUNC
  arm64: Add EL2 switch to soft_restart

-Geoff





More information about the linux-arm-kernel mailing list