linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: christoffer.dall@linaro.org (Christoffer Dall)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 5/5] arm/arm64: KVM: Turn off vcpus and flush stage-2 pgtables on sytem exit events
Date: Tue, 2 Dec 2014 14:29:43 +0100	[thread overview]
Message-ID: <20141202132943.GF545@cbox> (raw)
In-Reply-To: <CAFEAcA9kq=Fvhbc5+bTavb1KiaEn6+JYf=c6MaZYihbu_gT9sg@mail.gmail.com>

On Mon, Dec 01, 2014 at 05:57:53PM +0000, Peter Maydell wrote:
> On 27 November 2014 at 23:10, Peter Maydell <peter.maydell@linaro.org> wrote:
> > It seems odd to have this unmap happen on attempted system reset/powerdown,
> > not on cpu init/start.
> 
> Here's a concrete case that I think requires the unmap to be
> done on cpu init:
>  * start a VM and run it for a bit
>  * from the QEMU monitor, use "loadvm" to load a VM snapshot
> 
> This will cause QEMU to do a system reset (including calling
> VCPU_INIT to reset the CPUs), load the contents of guest
> RAM from the snapshot, set guest CPU registers with a pile
> of SET_ONE_REG calls, and then KVM_RUN to start the VM.
> 
> If we don't unmap stage2 on vcpu init,  then what in this
> sequence causes the icaches to be flushed so we execute
> the newly loaded ram contents rather than stale data
> from the first VM run?
> 

You're absolutely right that it makes more sense to stick it in
vcpu_init.  I put it only in the shutdown event handler for debugging
and forgot that was what I was doing :)

The only down-side is that we'll be trying to free memory that was never
mapped on initial startup, but it's not in the critical path and we
could add an explicit check to early-out if the vcpu has never been run,
which may increase code readibility too (we already have that flag I
belive).

-Christoffer

  reply	other threads:[~2014-12-02 13:29 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-11-27 18:40 [PATCH 0/5] Improve PSCI system events and fix reboot bugs Christoffer Dall
2014-11-27 18:40 ` [PATCH 1/5] arm/arm64: KVM: Correct KVM_ARM_VCPU_INIT power off option Christoffer Dall
2014-11-27 22:44   ` Peter Maydell
2014-12-02 14:33     ` Christoffer Dall
2014-11-27 18:40 ` [PATCH 2/5] arm/arm64: KVM: Reset the HCR on each vcpu when resetting the vcpu Christoffer Dall
2014-11-27 18:40 ` [PATCH 3/5] arm/arm64: KVM: Clarify KVM_ARM_VCPU_INIT ABI Christoffer Dall
2014-11-27 22:53   ` Peter Maydell
2014-12-02 14:47     ` Christoffer Dall
2014-12-02 15:39       ` Peter Maydell
2014-12-02 19:02         ` Christoffer Dall
2014-11-27 18:40 ` [PATCH 4/5] arm/arm64: KVM: Introduce stage2_unmap_vm Christoffer Dall
2014-11-27 18:41 ` [PATCH 5/5] arm/arm64: KVM: Turn off vcpus and flush stage-2 pgtables on sytem exit events Christoffer Dall
2014-11-27 23:10   ` Peter Maydell
2014-12-01 17:57     ` Peter Maydell
2014-12-02 13:29       ` Christoffer Dall [this message]
2014-12-02 15:01     ` Christoffer Dall
2014-12-02 15:42       ` Peter Maydell
2014-12-01 13:34 ` [PATCH 0/5] Improve PSCI system events and fix reboot bugs Andrew Jones
2014-12-02 14:47   ` Christoffer Dall

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=20141202132943.GF545@cbox \
    --to=christoffer.dall@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.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).