Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-26 Thread Lorenzo Pieralisi
On Wed, Feb 26, 2014 at 05:50:55PM +, Sebastian Capella wrote: > Quoting Lorenzo Pieralisi (2014-02-26 02:24:27) > > On Tue, Feb 25, 2014 at 05:55:31PM +, Sebastian Capella wrote: > > > > Please add: > > > > "swsusp_save() is executed in the suspend finisher so that the CPU context > >

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-26 Thread Lorenzo Pieralisi
On Tue, Feb 25, 2014 at 05:55:31PM +, Sebastian Capella wrote: > Quoting Lorenzo Pieralisi (2014-02-25 03:32:51) > > On Sun, Feb 23, 2014 at 08:02:08PM +, Sebastian Capella wrote: > > > I'll go with leaving the soft_restart as is unless someone feels > > > strongly against. > > > >

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-26 Thread Lorenzo Pieralisi
On Tue, Feb 25, 2014 at 05:55:31PM +, Sebastian Capella wrote: Quoting Lorenzo Pieralisi (2014-02-25 03:32:51) On Sun, Feb 23, 2014 at 08:02:08PM +, Sebastian Capella wrote: I'll go with leaving the soft_restart as is unless someone feels strongly against. Leaving it as it is

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-26 Thread Lorenzo Pieralisi
On Wed, Feb 26, 2014 at 05:50:55PM +, Sebastian Capella wrote: Quoting Lorenzo Pieralisi (2014-02-26 02:24:27) On Tue, Feb 25, 2014 at 05:55:31PM +, Sebastian Capella wrote: Please add: swsusp_save() is executed in the suspend finisher so that the CPU context pointer and

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-25 Thread Lorenzo Pieralisi
On Sun, Feb 23, 2014 at 08:02:08PM +, Sebastian Capella wrote: > Quoting Lorenzo Pieralisi (2014-02-22 04:09:10) > > On Sat, Feb 22, 2014 at 10:38:40AM +, Russell King - ARM Linux wrote: > > > On Wed, Feb 19, 2014 at 04:12:54PM +, Lorenzo Pieralisi wrote: > > > > On Wed, Feb 19, 2014

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-25 Thread Lorenzo Pieralisi
On Sun, Feb 23, 2014 at 08:02:08PM +, Sebastian Capella wrote: Quoting Lorenzo Pieralisi (2014-02-22 04:09:10) On Sat, Feb 22, 2014 at 10:38:40AM +, Russell King - ARM Linux wrote: On Wed, Feb 19, 2014 at 04:12:54PM +, Lorenzo Pieralisi wrote: On Wed, Feb 19, 2014 at

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-23 Thread Sebastian Capella
Quoting Lorenzo Pieralisi (2014-02-22 04:09:10) > On Sat, Feb 22, 2014 at 10:38:40AM +, Russell King - ARM Linux wrote: > > On Wed, Feb 19, 2014 at 04:12:54PM +, Lorenzo Pieralisi wrote: > > > On Wed, Feb 19, 2014 at 01:52:09AM +, Sebastian Capella wrote: > > > > +/* > > > > + *

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-23 Thread Sebastian Capella
Quoting Lorenzo Pieralisi (2014-02-22 04:09:10) > On Sat, Feb 22, 2014 at 10:38:40AM +, Russell King - ARM Linux wrote: > > On Wed, Feb 19, 2014 at 04:12:54PM +, Lorenzo Pieralisi wrote: > > > > + cpu_switch_mm(idmap_pgd, _mm); > > > > You need the idmap_pgd in place to call cpu_resume at

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-23 Thread Sebastian Capella
Quoting Lorenzo Pieralisi (2014-02-22 04:09:10) On Sat, Feb 22, 2014 at 10:38:40AM +, Russell King - ARM Linux wrote: On Wed, Feb 19, 2014 at 04:12:54PM +, Lorenzo Pieralisi wrote: + cpu_switch_mm(idmap_pgd, init_mm); You need the idmap_pgd in place to call cpu_resume at it's

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-23 Thread Sebastian Capella
Quoting Lorenzo Pieralisi (2014-02-22 04:09:10) On Sat, Feb 22, 2014 at 10:38:40AM +, Russell King - ARM Linux wrote: On Wed, Feb 19, 2014 at 04:12:54PM +, Lorenzo Pieralisi wrote: On Wed, Feb 19, 2014 at 01:52:09AM +, Sebastian Capella wrote: +/* + * Snapshot kernel

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-22 Thread Pavel Machek
On Sat 2014-02-22 10:16:55, Russell King - ARM Linux wrote: > On Thu, Feb 20, 2014 at 04:27:55PM +, Lorenzo Pieralisi wrote: > > I still do not understand why switching to idmap, which is a clone of > > init_mm + 1:1 kernel mappings is required here. Why idmap ? > > > > And while at it, can't

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-22 Thread Pavel Machek
Hi! > > return from the finisher will always be interpreted as an abort rather > > than success (because the state has to be unwound.) > > > > This is the only way to get a zero return from cpu_suspend(). > > Yes, that's the only reason why this code is jumping to cpu_resume, since > all it is

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-22 Thread Lorenzo Pieralisi
On Sat, Feb 22, 2014 at 10:16:55AM +, Russell King - ARM Linux wrote: > On Thu, Feb 20, 2014 at 04:27:55PM +, Lorenzo Pieralisi wrote: > > I still do not understand why switching to idmap, which is a clone of > > init_mm + 1:1 kernel mappings is required here. Why idmap ? > > > > And

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-22 Thread Lorenzo Pieralisi
On Sat, Feb 22, 2014 at 10:38:40AM +, Russell King - ARM Linux wrote: > On Wed, Feb 19, 2014 at 04:12:54PM +, Lorenzo Pieralisi wrote: > > On Wed, Feb 19, 2014 at 01:52:09AM +, Sebastian Capella wrote: > > > +/* > > > + * Snapshot kernel memory and reset the system. > > > + * After

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-22 Thread Russell King - ARM Linux
On Wed, Feb 19, 2014 at 04:12:54PM +, Lorenzo Pieralisi wrote: > On Wed, Feb 19, 2014 at 01:52:09AM +, Sebastian Capella wrote: > > +/* > > + * Snapshot kernel memory and reset the system. > > + * After resume, the hibernation snapshot is written out. > > + */ > > +static int notrace

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-22 Thread Russell King - ARM Linux
On Fri, Feb 21, 2014 at 10:46:59PM -0800, Russ Dill wrote: > If there is worry about this, you could setup a page mapping in a > __nosave region, preventing it from being overwritten. Why would we need _another_ set of pages tables? Aren't two (swapper_pg_dir and the idmap one) enough? You do

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-22 Thread Russell King - ARM Linux
On Thu, Feb 20, 2014 at 04:27:55PM +, Lorenzo Pieralisi wrote: > I still do not understand why switching to idmap, which is a clone of > init_mm + 1:1 kernel mappings is required here. Why idmap ? > > And while at it, can't the idmap be overwritten _while_ copying back the > resume kernel ?

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-22 Thread Russell King - ARM Linux
On Thu, Feb 20, 2014 at 04:27:55PM +, Lorenzo Pieralisi wrote: I still do not understand why switching to idmap, which is a clone of init_mm + 1:1 kernel mappings is required here. Why idmap ? And while at it, can't the idmap be overwritten _while_ copying back the resume kernel ? Is it

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-22 Thread Russell King - ARM Linux
On Fri, Feb 21, 2014 at 10:46:59PM -0800, Russ Dill wrote: If there is worry about this, you could setup a page mapping in a __nosave region, preventing it from being overwritten. Why would we need _another_ set of pages tables? Aren't two (swapper_pg_dir and the idmap one) enough? You do

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-22 Thread Russell King - ARM Linux
On Wed, Feb 19, 2014 at 04:12:54PM +, Lorenzo Pieralisi wrote: On Wed, Feb 19, 2014 at 01:52:09AM +, Sebastian Capella wrote: +/* + * Snapshot kernel memory and reset the system. + * After resume, the hibernation snapshot is written out. + */ +static int notrace

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-22 Thread Lorenzo Pieralisi
On Sat, Feb 22, 2014 at 10:38:40AM +, Russell King - ARM Linux wrote: On Wed, Feb 19, 2014 at 04:12:54PM +, Lorenzo Pieralisi wrote: On Wed, Feb 19, 2014 at 01:52:09AM +, Sebastian Capella wrote: +/* + * Snapshot kernel memory and reset the system. + * After resume, the

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-22 Thread Lorenzo Pieralisi
On Sat, Feb 22, 2014 at 10:16:55AM +, Russell King - ARM Linux wrote: On Thu, Feb 20, 2014 at 04:27:55PM +, Lorenzo Pieralisi wrote: I still do not understand why switching to idmap, which is a clone of init_mm + 1:1 kernel mappings is required here. Why idmap ? And while at it,

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-22 Thread Pavel Machek
Hi! return from the finisher will always be interpreted as an abort rather than success (because the state has to be unwound.) This is the only way to get a zero return from cpu_suspend(). Yes, that's the only reason why this code is jumping to cpu_resume, since all it is needed is

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-22 Thread Pavel Machek
On Sat 2014-02-22 10:16:55, Russell King - ARM Linux wrote: On Thu, Feb 20, 2014 at 04:27:55PM +, Lorenzo Pieralisi wrote: I still do not understand why switching to idmap, which is a clone of init_mm + 1:1 kernel mappings is required here. Why idmap ? And while at it, can't the

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-21 Thread Russ Dill
On 02/21/2014 08:37 PM, Sebastian Capella wrote: > Quoting Sebastian Capella (2014-02-21 15:59:11) >> - Cyril Chemparathy as his email is bouncing back to me. >> >> Quoting Sebastian Capella (2014-02-21 10:39:56) >>> Quoting Lorenzo Pieralisi (2014-02-20 08:27:55) >>> +

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-21 Thread Russ Dill
On 02/21/2014 08:37 PM, Sebastian Capella wrote: Quoting Sebastian Capella (2014-02-21 15:59:11) - Cyril Chemparathy as his email is bouncing back to me. Quoting Sebastian Capella (2014-02-21 10:39:56) Quoting Lorenzo Pieralisi (2014-02-20 08:27:55) + cpu_switch_mm(idmap_pgd, init_mm);

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-20 Thread Lorenzo Pieralisi
Hi Sebastian, On Wed, Feb 19, 2014 at 07:33:15PM +, Sebastian Capella wrote: > Quoting Lorenzo Pieralisi (2014-02-19 08:12:54) > > On Wed, Feb 19, 2014 at 01:52:09AM +, Sebastian Capella wrote: > > [...] > > > diff --git a/arch/arm/kernel/hibernate.c b/arch/arm/kernel/hibernate.c > > >

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-20 Thread Lorenzo Pieralisi
On Wed, Feb 19, 2014 at 07:10:31PM +, Russ Dill wrote: > -BEGIN PGP SIGNED MESSAGE- > Hash: SHA1 > > On 02/19/2014 08:12 AM, Lorenzo Pieralisi wrote: > > + * https://patchwork.kernel.org/patch/96442/ > I am guessing the snippets of code your comments refer to. > I think the idea

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-20 Thread Lorenzo Pieralisi
On Wed, Feb 19, 2014 at 07:10:31PM +, Russ Dill wrote: -BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 02/19/2014 08:12 AM, Lorenzo Pieralisi wrote: + * https://patchwork.kernel.org/patch/96442/ I am guessing the snippets of code your comments refer to. I think the idea here is

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-20 Thread Lorenzo Pieralisi
Hi Sebastian, On Wed, Feb 19, 2014 at 07:33:15PM +, Sebastian Capella wrote: Quoting Lorenzo Pieralisi (2014-02-19 08:12:54) On Wed, Feb 19, 2014 at 01:52:09AM +, Sebastian Capella wrote: [...] diff --git a/arch/arm/kernel/hibernate.c b/arch/arm/kernel/hibernate.c new file mode

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-19 Thread Russ Dill
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 02/19/2014 08:12 AM, Lorenzo Pieralisi wrote: + * https://patchwork.kernel.org/patch/96442/ I think the idea here is to get the CPU into a state so that later when we resume from the resume kernel, the actual CPU state matches the state we have

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-19 Thread Lorenzo Pieralisi
On Wed, Feb 19, 2014 at 01:52:09AM +, Sebastian Capella wrote: [...] > diff --git a/arch/arm/kernel/hibernate.c b/arch/arm/kernel/hibernate.c > new file mode 100644 > index 000..16f406f > --- /dev/null > +++ b/arch/arm/kernel/hibernate.c > @@ -0,0 +1,106 @@ > +/* > + * Hibernation

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-19 Thread Lorenzo Pieralisi
On Wed, Feb 19, 2014 at 01:52:09AM +, Sebastian Capella wrote: [...] diff --git a/arch/arm/kernel/hibernate.c b/arch/arm/kernel/hibernate.c new file mode 100644 index 000..16f406f --- /dev/null +++ b/arch/arm/kernel/hibernate.c @@ -0,0 +1,106 @@ +/* + * Hibernation support

Re: [PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-19 Thread Russ Dill
-BEGIN PGP SIGNED MESSAGE- Hash: SHA1 On 02/19/2014 08:12 AM, Lorenzo Pieralisi wrote: + * https://patchwork.kernel.org/patch/96442/ I think the idea here is to get the CPU into a state so that later when we resume from the resume kernel, the actual CPU state matches the state we have

[PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-18 Thread Sebastian Capella
From: Russ Dill Enable hibernation for ARM architectures and provide ARM architecture specific calls used during hibernation. The swsusp hibernation framework depends on the platform first having functional suspend/resume. Then, in order to enable hibernation on a given platform, a

[PATCH RFC v1 3/3] ARM hibernation / suspend-to-disk

2014-02-18 Thread Sebastian Capella
From: Russ Dill russ.d...@ti.com Enable hibernation for ARM architectures and provide ARM architecture specific calls used during hibernation. The swsusp hibernation framework depends on the platform first having functional suspend/resume. Then, in order to enable hibernation on a given