From: lorenzo.pieralisi@arm.com (Lorenzo Pieralisi)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] ARM: suspend: use flush range instead of flush all
Date: Wed, 12 Sep 2012 09:58:25 +0100 [thread overview]
Message-ID: <20120912085825.GA4111@e102568-lin.cambridge.arm.com> (raw)
In-Reply-To: <CAMQu2gwK+TP+7qQG0cET04y7+BYn--5UwkVuffOUu0kuv8Ps6A@mail.gmail.com>
On Wed, Sep 12, 2012 at 08:43:33AM +0100, Shilimkar, Santosh wrote:
> + Lorenzo,
>
> On Wed, Sep 12, 2012 at 12:48 PM, wzch <wzch@marvell.com> wrote:
> > From: Wenzeng Chen <wzch@marvell.com>
> >
> > In cpu suspend function __cpu_suspend_save(), we save cp15 registers,
> > resume function, sp and suspend_pgd, then flush the data to DDR, but
> > no need to flush all D cache, only need to flush range.
> >
> > Change-Id: I591a1fde929f3f987c69306b601843ed975d3e41
> You should drop above.
>
> > Signed-off-by: Wenzeng Chen <wzch@marvell.com>
> > ---
> Lorenzo and myself discussed about the above expensive flush and he
> is planning to post a similar patch but with small difference.
>
> > arch/arm/kernel/suspend.c | 4 +++-
> > 1 files changed, 3 insertions(+), 1 deletions(-)
> >
> > diff --git a/arch/arm/kernel/suspend.c b/arch/arm/kernel/suspend.c
> > index 1794cc3..bb582d8 100644
> > --- a/arch/arm/kernel/suspend.c
> > +++ b/arch/arm/kernel/suspend.c
> > @@ -17,6 +17,7 @@ extern void cpu_resume_mmu(void);
> > */
> > void __cpu_suspend_save(u32 *ptr, u32 ptrsz, u32 sp, u32 *save_ptr)
> > {
> > + u32 *ptr_orig = ptr;
> > *save_ptr = virt_to_phys(ptr);
> >
> > /* This must correspond to the LDM in cpu_resume() assembly */
> > @@ -26,7 +27,8 @@ void __cpu_suspend_save(u32 *ptr, u32 ptrsz, u32 sp, u32 *save_ptr)
> >
> > cpu_do_suspend(ptr);
> >
> > - flush_cache_all();
> Lorenzo's patch was limiting above flush to local cache (LOUs) instead
> of dropping
> it completely.
Because if we remove it completely we have to make sure that every given
suspend finisher calls flush_cache_all(), hence from my viewpoint this
patch is incomplete. Either we remove it, and add it to ALL suspend
finisher (or just make sure it is there) or we leave it but it should use
the new LoUIS API we are going to add.
>
> > + __cpuc_flush_dcache_area((void *)ptr_orig, ptrsz);
> > + __cpuc_flush_dcache_area((void *)save_ptr, sizeof(*save_ptr));
> > outer_clean_range(*save_ptr, *save_ptr + ptrsz);
> > outer_clean_range(virt_to_phys(save_ptr),
> > virt_to_phys(save_ptr) + sizeof(*save_ptr));
>
> Just thinking bit more, even in case we drop the flush_cache_all()
> completely, it should be safe since the suspend_finisher() takes
> care of the cache maintenance already.
We already discussed this. Fine by me, but we have to make sure it is
called on all suspend finishers in the mainline.
Lorenzo
next prev parent reply other threads:[~2012-09-12 8:58 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1347434328-7207-1-git-send-email-wzch@marvell.com>
2012-09-12 7:43 ` [PATCH] ARM: suspend: use flush range instead of flush all Shilimkar, Santosh
2012-09-12 8:54 ` Russell King - ARM Linux
2012-09-12 9:10 ` Shilimkar, Santosh
2012-09-12 9:46 ` Russell King - ARM Linux
2012-09-12 9:57 ` Shilimkar, Santosh
2012-09-13 2:20 ` Raul Xiong
2012-09-13 8:52 ` Russell King - ARM Linux
2012-09-12 8:58 ` Lorenzo Pieralisi [this message]
2012-09-12 9:20 ` Shilimkar, Santosh
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=20120912085825.GA4111@e102568-lin.cambridge.arm.com \
--to=lorenzo.pieralisi@arm.com \
--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).