Message ID | 1405662922-23606-1-git-send-email-tianyu.lan@intel.com (mailing list archive) |
---|---|
State | Changes Requested, archived |
Headers | show |
On Fri, Jul 18, 2014 at 01:55:22PM +0800, Lan Tianyu wrote: > Date: Fri, 18 Jul 2014 13:55:22 +0800 > From: Lan Tianyu <tianyu.lan@intel.com> > To: rjw@rjwysocki.net, lenb@kernel.org > Cc: Lan Tianyu <tianyu.lan@intel.com>, linux-acpi@vger.kernel.org, > linux-kernel@vger.kernel.org > Subject: [PATCH] ACPI/NVS: Not save NVS region for new machines to > accelerate S3 > X-Mailer: git-send-email 1.7.9.5 > > NVS region is saved and restored unconditionally for machines without > nvs_nosave quirk during S3. Tested some new machines and the operation > is not necessary. Saving NVS region also affects S2RAM speed. The time of > NVS saving and restoring depends on the size of NVS region and it consumes > 7~10ms normally. > > This patch is to make machines produced from 2012 to now not saving NVS region > to accelerate S3. > The year 2012 is a mandatory value in the spec?
On 2014?07?18? 16:00, Chen, Gong wrote: > On Fri, Jul 18, 2014 at 01:55:22PM +0800, Lan Tianyu wrote: >> Date: Fri, 18 Jul 2014 13:55:22 +0800 >> From: Lan Tianyu <tianyu.lan@intel.com> >> To: rjw@rjwysocki.net, lenb@kernel.org >> Cc: Lan Tianyu <tianyu.lan@intel.com>, linux-acpi@vger.kernel.org, >> linux-kernel@vger.kernel.org >> Subject: [PATCH] ACPI/NVS: Not save NVS region for new machines to >> accelerate S3 >> X-Mailer: git-send-email 1.7.9.5 >> >> NVS region is saved and restored unconditionally for machines without >> nvs_nosave quirk during S3. Tested some new machines and the operation >> is not necessary. Saving NVS region also affects S2RAM speed. The time of >> NVS saving and restoring depends on the size of NVS region and it consumes >> 7~10ms normally. >> >> This patch is to make machines produced from 2012 to now not saving NVS region >> to accelerate S3. >> > The year 2012 is a mandatory value in the spec? > No, spec indicates that this is only required for S4 and commit 2a6b697 added this behavior because this can fix S3 bug on some machines. But this isn't necessary for all machines and waster time for S3. So this patch is to add time base quirk to change default behavior for new machines.
On Mon, Jul 21, 2014 at 10:14:31AM +0800, Lan Tianyu wrote: > Date: Mon, 21 Jul 2014 10:14:31 +0800 > From: Lan Tianyu <tianyu.lan@intel.com> > To: rjw@rjwysocki.net, lenb@kernel.org, linux-acpi@vger.kernel.org, > linux-kernel@vger.kernel.org, gong.chen@linux.intel.com > Subject: Re: [PATCH] ACPI/NVS: Not save NVS region for new machines to > accelerate S3 > User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:14.0) Gecko/20120714 > Thunderbird/14.0 > > On 2014?07?18? 16:00, Chen, Gong wrote: > > On Fri, Jul 18, 2014 at 01:55:22PM +0800, Lan Tianyu wrote: > >> Date: Fri, 18 Jul 2014 13:55:22 +0800 > >> From: Lan Tianyu <tianyu.lan@intel.com> > >> To: rjw@rjwysocki.net, lenb@kernel.org > >> Cc: Lan Tianyu <tianyu.lan@intel.com>, linux-acpi@vger.kernel.org, > >> linux-kernel@vger.kernel.org > >> Subject: [PATCH] ACPI/NVS: Not save NVS region for new machines to > >> accelerate S3 > >> X-Mailer: git-send-email 1.7.9.5 > >> > >> NVS region is saved and restored unconditionally for machines without > >> nvs_nosave quirk during S3. Tested some new machines and the operation > >> is not necessary. Saving NVS region also affects S2RAM speed. The time of > >> NVS saving and restoring depends on the size of NVS region and it consumes > >> 7~10ms normally. > >> > >> This patch is to make machines produced from 2012 to now not saving NVS region > >> to accelerate S3. > >> > > The year 2012 is a mandatory value in the spec? > > > > No, spec indicates that this is only required for S4 and commit 2a6b697 > added this behavior because this can fix S3 bug on some machines. But > this isn't necessary for all machines and waster time for S3. So this > patch is to add time base quirk to change default behavior for new machines. > If so, I don't think a hard-coded valud in the kernel is a good idea. Why not providing a quirk via a command line parameter or module parameter.
On 2014?07?21? 13:01, Chen, Gong wrote: > On Mon, Jul 21, 2014 at 10:14:31AM +0800, Lan Tianyu wrote: >> Date: Mon, 21 Jul 2014 10:14:31 +0800 >> From: Lan Tianyu <tianyu.lan@intel.com> >> To: rjw@rjwysocki.net, lenb@kernel.org, linux-acpi@vger.kernel.org, >> linux-kernel@vger.kernel.org, gong.chen@linux.intel.com >> Subject: Re: [PATCH] ACPI/NVS: Not save NVS region for new machines to >> accelerate S3 >> User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:14.0) Gecko/20120714 >> Thunderbird/14.0 >> >> On 2014?07?18? 16:00, Chen, Gong wrote: >>> On Fri, Jul 18, 2014 at 01:55:22PM +0800, Lan Tianyu wrote: >>>> Date: Fri, 18 Jul 2014 13:55:22 +0800 >>>> From: Lan Tianyu <tianyu.lan@intel.com> >>>> To: rjw@rjwysocki.net, lenb@kernel.org >>>> Cc: Lan Tianyu <tianyu.lan@intel.com>, linux-acpi@vger.kernel.org, >>>> linux-kernel@vger.kernel.org >>>> Subject: [PATCH] ACPI/NVS: Not save NVS region for new machines to >>>> accelerate S3 >>>> X-Mailer: git-send-email 1.7.9.5 >>>> >>>> NVS region is saved and restored unconditionally for machines without >>>> nvs_nosave quirk during S3. Tested some new machines and the operation >>>> is not necessary. Saving NVS region also affects S2RAM speed. The time of >>>> NVS saving and restoring depends on the size of NVS region and it consumes >>>> 7~10ms normally. >>>> >>>> This patch is to make machines produced from 2012 to now not saving NVS region >>>> to accelerate S3. >>>> >>> The year 2012 is a mandatory value in the spec? >>> >> >> No, spec indicates that this is only required for S4 and commit 2a6b697 >> added this behavior because this can fix S3 bug on some machines. But >> this isn't necessary for all machines and waster time for S3. So this >> patch is to add time base quirk to change default behavior for new machines. >> > If so, I don't think a hard-coded valud in the kernel is a good idea. > Why not providing a quirk via a command line parameter or module parameter. > There is already a kernel command "acpi_sleep=nonvs_s3" to do that. But this needs to be set by user. Otherwise, saving/restoring NVS region also breaks system suspend on some machines and we have added 14 nonvs quirks in the acpisleep_dmi_table. From the spec side, it's not necessary and the default behavior should follow spec. For some special machines which need saving/restoring NVS region to workaround system suspend, it should be dealt with quirk and do it when necessary. To avoid regressions on the old machines, the change only applies to new machines. Other side, not saving/restoring NVS is also helpful to accelerate S3.
On Mon, Jul 21, 2014 at 01:54:56PM +0800, Lan Tianyu wrote: > Date: Mon, 21 Jul 2014 13:54:56 +0800 > From: Lan Tianyu <tianyu.lan@intel.com> > To: rjw@rjwysocki.net, lenb@kernel.org, linux-acpi@vger.kernel.org, > linux-kernel@vger.kernel.org, gong.chen@linux.intel.com > Subject: Re: [PATCH] ACPI/NVS: Not save NVS region for new machines to > accelerate S3 > User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:14.0) Gecko/20120714 > Thunderbird/14.0 > > On 2014?07?21? 13:01, Chen, Gong wrote: > > On Mon, Jul 21, 2014 at 10:14:31AM +0800, Lan Tianyu wrote: > >> Date: Mon, 21 Jul 2014 10:14:31 +0800 > >> From: Lan Tianyu <tianyu.lan@intel.com> > >> To: rjw@rjwysocki.net, lenb@kernel.org, linux-acpi@vger.kernel.org, > >> linux-kernel@vger.kernel.org, gong.chen@linux.intel.com > >> Subject: Re: [PATCH] ACPI/NVS: Not save NVS region for new machines to > >> accelerate S3 > >> User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:14.0) Gecko/20120714 > >> Thunderbird/14.0 > >> > >> On 2014?07?18? 16:00, Chen, Gong wrote: > >>> On Fri, Jul 18, 2014 at 01:55:22PM +0800, Lan Tianyu wrote: > >>>> Date: Fri, 18 Jul 2014 13:55:22 +0800 > >>>> From: Lan Tianyu <tianyu.lan@intel.com> > >>>> To: rjw@rjwysocki.net, lenb@kernel.org > >>>> Cc: Lan Tianyu <tianyu.lan@intel.com>, linux-acpi@vger.kernel.org, > >>>> linux-kernel@vger.kernel.org > >>>> Subject: [PATCH] ACPI/NVS: Not save NVS region for new machines to > >>>> accelerate S3 > >>>> X-Mailer: git-send-email 1.7.9.5 > >>>> > >>>> NVS region is saved and restored unconditionally for machines without > >>>> nvs_nosave quirk during S3. Tested some new machines and the operation > >>>> is not necessary. Saving NVS region also affects S2RAM speed. The time of > >>>> NVS saving and restoring depends on the size of NVS region and it consumes > >>>> 7~10ms normally. > >>>> > >>>> This patch is to make machines produced from 2012 to now not saving NVS region > >>>> to accelerate S3. > >>>> > >>> The year 2012 is a mandatory value in the spec? > >>> > >> > >> No, spec indicates that this is only required for S4 and commit 2a6b697 > >> added this behavior because this can fix S3 bug on some machines. But > >> this isn't necessary for all machines and waster time for S3. So this > >> patch is to add time base quirk to change default behavior for new machines. > >> > > If so, I don't think a hard-coded valud in the kernel is a good idea. > > Why not providing a quirk via a command line parameter or module parameter. > > > > There is already a kernel command "acpi_sleep=nonvs_s3" to do that. But > this needs to be set by user. Otherwise, saving/restoring NVS region > also breaks system suspend on some machines and we have added 14 > nonvs quirks in the acpisleep_dmi_table. > 14 quriks! What a terrible BIOS, isn't it? It's time to cleanup so many hacks. I'm not ACPI expert, but such yet another hack is not acceptable from my point of view.
On 2014?07?21? 14:25, Chen, Gong wrote: > On Mon, Jul 21, 2014 at 01:54:56PM +0800, Lan Tianyu wrote: >> Date: Mon, 21 Jul 2014 13:54:56 +0800 >> From: Lan Tianyu <tianyu.lan@intel.com> >> To: rjw@rjwysocki.net, lenb@kernel.org, linux-acpi@vger.kernel.org, >> linux-kernel@vger.kernel.org, gong.chen@linux.intel.com >> Subject: Re: [PATCH] ACPI/NVS: Not save NVS region for new machines to >> accelerate S3 >> User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:14.0) Gecko/20120714 >> Thunderbird/14.0 >> >> On 2014?07?21? 13:01, Chen, Gong wrote: >>> On Mon, Jul 21, 2014 at 10:14:31AM +0800, Lan Tianyu wrote: >>>> Date: Mon, 21 Jul 2014 10:14:31 +0800 >>>> From: Lan Tianyu <tianyu.lan@intel.com> >>>> To: rjw@rjwysocki.net, lenb@kernel.org, linux-acpi@vger.kernel.org, >>>> linux-kernel@vger.kernel.org, gong.chen@linux.intel.com >>>> Subject: Re: [PATCH] ACPI/NVS: Not save NVS region for new machines to >>>> accelerate S3 >>>> User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:14.0) Gecko/20120714 >>>> Thunderbird/14.0 >>>> >>>> On 2014?07?18? 16:00, Chen, Gong wrote: >>>>> On Fri, Jul 18, 2014 at 01:55:22PM +0800, Lan Tianyu wrote: >>>>>> Date: Fri, 18 Jul 2014 13:55:22 +0800 >>>>>> From: Lan Tianyu <tianyu.lan@intel.com> >>>>>> To: rjw@rjwysocki.net, lenb@kernel.org >>>>>> Cc: Lan Tianyu <tianyu.lan@intel.com>, linux-acpi@vger.kernel.org, >>>>>> linux-kernel@vger.kernel.org >>>>>> Subject: [PATCH] ACPI/NVS: Not save NVS region for new machines to >>>>>> accelerate S3 >>>>>> X-Mailer: git-send-email 1.7.9.5 >>>>>> >>>>>> NVS region is saved and restored unconditionally for machines without >>>>>> nvs_nosave quirk during S3. Tested some new machines and the operation >>>>>> is not necessary. Saving NVS region also affects S2RAM speed. The time of >>>>>> NVS saving and restoring depends on the size of NVS region and it consumes >>>>>> 7~10ms normally. >>>>>> >>>>>> This patch is to make machines produced from 2012 to now not saving NVS region >>>>>> to accelerate S3. >>>>>> >>>>> The year 2012 is a mandatory value in the spec? >>>>> >>>> >>>> No, spec indicates that this is only required for S4 and commit 2a6b697 >>>> added this behavior because this can fix S3 bug on some machines. But >>>> this isn't necessary for all machines and waster time for S3. So this >>>> patch is to add time base quirk to change default behavior for new machines. >>>> >>> If so, I don't think a hard-coded valud in the kernel is a good idea. >>> Why not providing a quirk via a command line parameter or module parameter. >>> >> >> There is already a kernel command "acpi_sleep=nonvs_s3" to do that. But >> this needs to be set by user. Otherwise, saving/restoring NVS region >> also breaks system suspend on some machines and we have added 14 >> nonvs quirks in the acpisleep_dmi_table. >> > 14 quriks! What a terrible BIOS, isn't it? It's time to cleanup so > many hacks. If change the default behavior for old machines, that may cause some regressions and need to add new quirks to save/restore nvs region again. > I'm not ACPI expert, but such yet another hack is not > acceptable from my point of view. >
On Friday, July 18, 2014 01:55:22 PM Lan Tianyu wrote: > NVS region is saved and restored unconditionally for machines without > nvs_nosave quirk during S3. Tested some new machines and the operation > is not necessary. Saving NVS region also affects S2RAM speed. The time of > NVS saving and restoring depends on the size of NVS region and it consumes > 7~10ms normally. > > This patch is to make machines produced from 2012 to now not saving NVS region > to accelerate S3. > > Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> > --- > drivers/acpi/sleep.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c > index b3e3cc7..896d8be 100644 > --- a/drivers/acpi/sleep.c > +++ b/drivers/acpi/sleep.c > @@ -322,7 +322,12 @@ static struct dmi_system_id acpisleep_dmi_table[] __initdata = { > > static void acpi_sleep_dmi_check(void) > { > + int year; > + > dmi_check_system(acpisleep_dmi_table); > + > + if (dmi_get_date(DMI_BIOS_DATE, &year, NULL, NULL) && year >= 2012) > + acpi_nvs_nosave_s3(); I'd prefer the ordering here to be different so that individual quirks could be used to change the date-based wholesale behavior. > } > > /** >
On 2014?07?23? 07:40, Rafael J. Wysocki wrote: > On Friday, July 18, 2014 01:55:22 PM Lan Tianyu wrote: >> NVS region is saved and restored unconditionally for machines without >> nvs_nosave quirk during S3. Tested some new machines and the operation >> is not necessary. Saving NVS region also affects S2RAM speed. The time of >> NVS saving and restoring depends on the size of NVS region and it consumes >> 7~10ms normally. >> >> This patch is to make machines produced from 2012 to now not saving NVS region >> to accelerate S3. >> >> Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> >> --- >> drivers/acpi/sleep.c | 5 +++++ >> 1 file changed, 5 insertions(+) >> >> diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c >> index b3e3cc7..896d8be 100644 >> --- a/drivers/acpi/sleep.c >> +++ b/drivers/acpi/sleep.c >> @@ -322,7 +322,12 @@ static struct dmi_system_id acpisleep_dmi_table[] __initdata = { >> >> static void acpi_sleep_dmi_check(void) >> { >> + int year; >> + >> dmi_check_system(acpisleep_dmi_table); >> + >> + if (dmi_get_date(DMI_BIOS_DATE, &year, NULL, NULL) && year >= 2012) >> + acpi_nvs_nosave_s3(); > > I'd prefer the ordering here to be different so that individual quirks > could be used to change the date-based wholesale behavior. Ok. I will update soon. > >> } >> >> /** >> >
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c index b3e3cc7..896d8be 100644 --- a/drivers/acpi/sleep.c +++ b/drivers/acpi/sleep.c @@ -322,7 +322,12 @@ static struct dmi_system_id acpisleep_dmi_table[] __initdata = { static void acpi_sleep_dmi_check(void) { + int year; + dmi_check_system(acpisleep_dmi_table); + + if (dmi_get_date(DMI_BIOS_DATE, &year, NULL, NULL) && year >= 2012) + acpi_nvs_nosave_s3(); } /**
NVS region is saved and restored unconditionally for machines without nvs_nosave quirk during S3. Tested some new machines and the operation is not necessary. Saving NVS region also affects S2RAM speed. The time of NVS saving and restoring depends on the size of NVS region and it consumes 7~10ms normally. This patch is to make machines produced from 2012 to now not saving NVS region to accelerate S3. Signed-off-by: Lan Tianyu <tianyu.lan@intel.com> --- drivers/acpi/sleep.c | 5 +++++ 1 file changed, 5 insertions(+)