kexec.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: Geoff Levand <geoff@infradead.org>
To: AKASHI Takahiro <takahiro.akashi@linaro.org>
Cc: Mark Rutland <mark.rutland@arm.com>,
	Marc Zyngier <marc.zyngier@arm.com>,
	Catalin Marinas <Catalin.Marinas@arm.com>,
	Will Deacon <Will.Deacon@arm.com>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"grant.likely@linaro.org" <grant.likely@linaro.org>,
	"kexec@lists.infradead.org" <kexec@lists.infradead.org>,
	"christoffer.dall@linaro.org" <christoffer.dall@linaro.org>
Subject: Re: [PATCH 7/8] arm64/kexec: Add checks for KVM
Date: Thu, 05 Feb 2015 23:06:26 -0800	[thread overview]
Message-ID: <1423206386.10035.1.camel@infradead.org> (raw)
In-Reply-To: <54D440AD.2030608@linaro.org>

On Fri, 2015-02-06 at 13:18 +0900, AKASHI Takahiro wrote:
> On 02/06/2015 09:11 AM, Geoff Levand wrote:
> > Hi Takahiro,
> >
> > On Mon, 2015-02-02 at 17:18 +0900, AKASHI Takahiro wrote:
> >> On 01/31/2015 04:48 AM, Geoff Levand wrote:
> >>> As an initial implementation we can hook into the CPU_DYING_FROZEN
> >>> notifier sent to hyp_init_cpu_notify().  The longer term solution
> >>> should use kvm_arch_hardware_enable() and kvm_arch_hardware_disable().
> >>
> >> Are these two different approaches?
> >
> > Yes, these are two different solutions,  One initial work-around, and a
> > more involved proper solution.  Hooking into the CPU_DYING_FROZEN
> > notifier would be a initial fix.  The proper solution would be to move
> > the KVM setup to kvm_arch_hardware_enable(), and the shutdown to
> > kvm_arch_hardware_disable().
> >
> >
> >> kernel_exec() -> machine_shutdown() -> disable_nonboot_cpu()
> >>      -> _cpu_down() -> cpu_notify_nofail(CPU_DEAD|...)
> >>
> >> On the other hand, kvm already has a hook into kvm_arch_hardware_disable():
> >>     (ignoring kvm_usage_count here)
> >> kvm_cpu_hotplug(CPU_DYING) -> hardware_disable()
> >>      -> hardware_disable_nolock() -> kvm_arch_hardware_disable()
> >>
> >> So it seems that we don't have to add a new hook at hyp_init_cpu_notify()
> >> if kvm_arch_hardware_disable() is properly implemented.
> >
> > Yes, that is correct.  But, as above, you would also need to update the
> > KVM startup to use kvm_arch_hardware_enable().
> >
> >> disable_nonboot_cpu() will not inovke cpu hotplug on *boot* cpu, and
> >> we should handle it in a separate way though.
> >
> > IIRC, the secondary cpus go through PSCI on shutdown, and that path
> > is working OK.  Maybe I am mistaken though.
> 
> If so, why should we add a hook at hyp_init_cpu_notify() as initial work-around?

To tear down KVM on the primary cpu.

> > The primary cpu shutdown (hyp stubs restored) is what is missing.  The
> > primary cpu goes through cpu_soft_restart(), and that is what is
> > currently failing.
> 
> Yeah, we will call teardown function manually in soft_restart();

I think the KVM tear down should happen independent of soft_restart().
When soft_restart() is called, KVM should have already been torn down.

-Geoff



_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec

  reply	other threads:[~2015-02-06  7:06 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1415926876.git.geoff@infradead.orgg>
2015-01-17  0:23 ` [PATCH 0/8] arm64 kexec kernel patches V7 Geoff Levand
2015-01-17  0:23   ` [PATCH 3/8] arm64: Add new hcall HVC_CALL_FUNC Geoff Levand
2015-01-27 17:39     ` Catalin Marinas
2015-01-27 18:00       ` Mark Rutland
2015-01-30 21:52       ` Geoff Levand
2015-01-17  0:23   ` [PATCH 7/8] arm64/kexec: Add checks for KVM Geoff Levand
2015-01-26 19:19     ` Mark Rutland
2015-01-26 20:39       ` Christoffer Dall
2015-01-26 20:58         ` Geoff Levand
2015-01-26 21:00       ` Geoff Levand
2015-01-29  9:36       ` AKASHI Takahiro
2015-01-29  9:57       ` AKASHI Takahiro
2015-01-29 10:59         ` Marc Zyngier
2015-01-29 18:47           ` Mark Rutland
2015-01-30  6:10             ` AKASHI Takahiro
2015-01-30 12:14               ` Mark Rutland
2015-01-30 19:48               ` Geoff Levand
2015-02-02  8:18                 ` AKASHI Takahiro
2015-02-06  0:11                   ` Geoff Levand
2015-02-06  4:18                     ` AKASHI Takahiro
2015-02-06  7:06                       ` Geoff Levand [this message]
2015-01-17  0:23   ` [PATCH 6/8] arm64/kexec: Add pr_devel output Geoff Levand
2015-01-17  0:23   ` [PATCH 8/8] arm64/kexec: Enable kexec in the arm64 defconfig Geoff Levand
2015-01-17  0:23   ` [PATCH 2/8] arm64: Convert hcalls to use ISS field Geoff Levand
2015-01-26 18:26     ` Catalin Marinas
2015-01-30 23:31       ` Geoff Levand
2015-02-02 16:04         ` Catalin Marinas
2015-01-30 23:33     ` [PATCH v2 " Geoff Levand
2015-02-19 20:57       ` Christoffer Dall
2015-02-25 22:09         ` Geoff Levand
2015-03-02 22:13           ` Christoffer Dall
2015-03-02 23:22             ` Geoff Levand
2015-03-03 21:47               ` Christopher Covington
2015-03-03 22:35                 ` Geoff Levand
2015-01-17  0:23   ` [PATCH 1/8] arm64: Move proc-macros.S to include/asm Geoff Levand
2015-01-26 17:45     ` Catalin Marinas
2015-01-27 19:33     ` [PATCH V2 1/8] arm64: Fold proc-macros.S into assembler.h Geoff Levand
2015-01-17  0:23   ` [PATCH 4/8] arm64: Add EL2 switch to soft_restart Geoff Levand
2015-01-26 19:02     ` Mark Rutland
2015-01-26 21:48       ` Geoff Levand
2015-01-27 16:46         ` Mark Rutland
2015-01-27 18:34           ` Geoff Levand
2015-01-27 17:57     ` Catalin Marinas
2015-01-30 21:47       ` Geoff Levand
2015-01-17  0:23   ` [PATCH 5/8] arm64/kexec: Add core kexec support Geoff Levand
2015-01-26 19:16     ` Mark Rutland
2015-01-26 17:44   ` [PATCH 0/8] arm64 kexec kernel patches V7 Catalin Marinas
2015-01-26 18:37     ` Grant Likely
2015-01-26 18:55     ` Mark Rutland
2015-01-26 20:57     ` Geoff Levand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1423206386.10035.1.camel@infradead.org \
    --to=geoff@infradead.org \
    --cc=Catalin.Marinas@arm.com \
    --cc=Will.Deacon@arm.com \
    --cc=christoffer.dall@linaro.org \
    --cc=grant.likely@linaro.org \
    --cc=kexec@lists.infradead.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=marc.zyngier@arm.com \
    --cc=mark.rutland@arm.com \
    --cc=takahiro.akashi@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).