From: geoff@infradead.org (Geoff Levand)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 6/7] arm64/kexec: Add core kexec support
Date: Fri, 03 Oct 2014 11:35:03 -0700 [thread overview]
Message-ID: <1412361303.32313.24.camel@smoke> (raw)
In-Reply-To: <20141001145602.GB13689@redhat.com>
Hi Vivek,
On Wed, 2014-10-01 at 10:56 -0400, Vivek Goyal wrote:
> On Tue, Sep 30, 2014 at 12:54:37PM -0700, Geoff Levand wrote:
>
> [..]
> > > > +{
> > > > + switch (flag) {
> > > > + case IND_INDIRECTION:
> > > > + case IND_SOURCE:
> > > > + __flush_dcache_area(addr, PAGE_SIZE);
> > > > + break;
> > >
> > > So what does __flush_dcache_area() do? Flush data caches. IIUC, addr
> > > is virtual address at this point of time. While copying pages and
> > > walking through the list, I am assuming you have switched off page
> > > tables and you are in some kind of 1:1 physical mode. So how did
> > > flushing data caches related to a virtual address help. I guess we
> > > are not even accessing that virtual address now.
> >
> > __flush_dcache_area(), and the underling aarch64 civac instruction
> > operate on virtual addresses. Here we are still running with the
> > MMU on and the identity mapping has not yet been enabled. This is
> > the sequence:
> >
> > flush dcache -> turn off MMU, dcache -> access memory (PoC) directly
>
> Sorry, I don't understand that why do we need to flush dcache for source
> and indirection page addresses. Some information here will help.
I think Mark answered this. The architecture requires us to flush to
the point of coherency (PoC) anything that will be used after the
dcache is disabled.
For more info you can look at the section'D4.4.7 Cache maintenance
operations' in the ARMv8 Reference Manual you can get from here (after
registering):
http://infocenter.arm.com/help/topic/com.arm.doc.subset.architecture.reference/index.html
-Geoff
next prev parent reply other threads:[~2014-10-03 18:35 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-25 0:23 [PATCH 0/7] arm64 kexec kernel patches V3 Geoff Levand
2014-09-25 0:23 ` [PATCH 2/7] arm64: Convert hcalls to use ISS field Geoff Levand
2014-10-03 10:51 ` Mark Rutland
2014-10-03 21:56 ` Geoff Levand
2014-10-06 10:13 ` Mark Rutland
2014-09-25 0:23 ` [PATCH 4/7] arm64: Add EL2 switch to soft_restart Geoff Levand
2014-09-25 0:23 ` [PATCH 3/7] arm64: Add new hcall HVC_CALL_FUNC Geoff Levand
2014-09-25 0:23 ` [PATCH 1/7] arm64/kvm: Fix assembler compatibility of macros Geoff Levand
2014-10-03 10:26 ` Mark Rutland
2014-10-03 22:27 ` Geoff Levand
2014-10-06 10:10 ` Mark Rutland
2014-09-25 0:23 ` [PATCH 7/7] arm64/kexec: Enable kexec in the arm64 defconfig Geoff Levand
2014-09-25 0:23 ` [PATCH 5/7] arm64: Move proc-macros.S to include/asm Geoff Levand
2014-09-25 0:23 ` [PATCH 6/7] arm64/kexec: Add core kexec support Geoff Levand
2014-09-25 18:28 ` Vivek Goyal
2014-09-25 19:02 ` Geoff Levand
2014-09-25 19:08 ` Vivek Goyal
2014-09-30 18:18 ` Vivek Goyal
2014-09-30 19:54 ` Geoff Levand
2014-10-01 14:56 ` Vivek Goyal
2014-10-03 18:35 ` Geoff Levand [this message]
2014-10-07 13:44 ` Vivek Goyal
2014-10-07 18:42 ` Geoff Levand
2014-10-07 18:45 ` Vivek Goyal
2014-10-07 20:12 ` Geoff Levand
2014-10-07 20:22 ` Vivek Goyal
2014-10-09 22:26 ` Geoff Levand
2014-10-23 23:08 ` Geoff Levand
2014-10-08 9:28 ` Mark Rutland
2014-10-07 18:48 ` Vivek Goyal
2014-10-01 16:16 ` Mark Rutland
2014-10-01 17:36 ` Vivek Goyal
2014-10-01 17:56 ` Mark Rutland
2014-10-01 17:47 ` Vivek Goyal
2014-10-01 18:03 ` Mark Rutland
2014-10-01 18:09 ` Vivek Goyal
2014-10-01 18:19 ` Mark Rutland
2014-10-01 18:31 ` Vivek Goyal
2014-10-01 19:22 ` Vivek Goyal
2014-10-02 10:26 ` Mark Rutland
2014-10-02 13:54 ` Vivek Goyal
2014-10-02 16:53 ` Mark Rutland
2014-09-30 23:59 ` [PATCH V2 " Geoff Levand
2014-09-30 20:29 ` [PATCH 0/7] arm64 kexec kernel patches V3 Vivek Goyal
2014-09-30 21:27 ` Geoff Levand
2014-10-02 19:08 ` Vivek Goyal
2014-10-02 22:59 ` Geoff Levand
2014-10-07 13:43 ` Vivek Goyal
2014-10-07 14:06 ` Mark Rutland
2014-10-01 15:19 ` Vivek Goyal
2014-10-03 21:16 ` Geoff Levand
2014-10-07 13:40 ` Vivek Goyal
2014-10-07 18:29 ` Geoff Levand
2014-10-08 9:42 ` Mark Rutland
2014-10-09 3:21 ` Dave Young
2014-10-09 10:09 ` Mark Rutland
2014-10-09 10:19 ` Ard Biesheuvel
2014-10-10 5:30 ` Dave Young
2014-10-07 15:22 ` Mark Rutland
2014-10-07 18:28 ` Geoff Levand
2014-10-07 18:09 ` Vivek Goyal
2014-10-07 20:07 ` Geoff Levand
2014-10-08 9:52 ` Leif Lindholm
2014-10-08 10:07 ` Mark Rutland
2014-10-09 9:22 ` Will Deacon
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=1412361303.32313.24.camel@smoke \
--to=geoff@infradead.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