From: Pavel Machek <pavel@ucw.cz>
To: Ingo Molnar <mingo@kernel.org>
Cc: Chen Yu <yu.c.chen@intel.com>,
rjw@rjwysocki.net, tglx@linutronix.de, mingo@redhat.com,
hpa@zytor.com, rui.zhang@intel.com, x86@kernel.org,
linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] x86, suspend: Save/restore THERM_CONTROL register for suspend
Date: Mon, 17 Aug 2015 15:27:26 +0200 [thread overview]
Message-ID: <20150817132726.GA11047@amd> (raw)
In-Reply-To: <20150817101115.GA27204@gmail.com>
On Mon 2015-08-17 12:11:15, Ingo Molnar wrote:
>
> * Chen Yu <yu.c.chen@intel.com> wrote:
>
> > A bug is reported(https://bugzilla.redhat.com/show_bug.cgi?id=1227208)
Access denied :-(
> > that, after resuming from S3, CPU is working at a low speed.
> > After investigation, it is found that, BIOS has modified the value
> > of THERM_CONTROL register during S3, changes it from 0 to 0x10,
> > while the latter means CPU can only get 25% of the Duty Cycle,
> > and this caused the problem.
What HW is this on?
> > --- a/arch/x86/power/cpu.c
> > +++ b/arch/x86/power/cpu.c
> > @@ -97,6 +97,7 @@ static void __save_processor_state(struct saved_context *ctxt)
> > mtrr_save_fixed_ranges(NULL);
> >
> > rdmsrl(MSR_EFER, ctxt->efer);
> > + rdmsrl(MSR_IA32_THERM_CONTROL, ctxt->clock_modulation);
>
> So what your changelog fails to mention:
>
> - You only add this code to the 64-bit kernel. Are 32-bit kernels not affected?
>
> - the MSR read is done unconditionally. Is MSR_IA32_THERM_CONTROL available
> architecturally and readable (and has sensible values) on all 64-bit capable
> x86 CPUs that run this code path?
- So BIOS expects to control MSR_IA32_THERM_CONTROL . Now you suspend
in hot enironment but resume in cool one. BIOS sets up
MSR_IA32_THERM_CONTROL the right way, but you override it.
As BIOS expects to control MSR_IA32_THERM_CONTROL and machine is
kept cool, BIOS will not write new value to it, and machine will
keep running slowly.
Doing this unconditionally is asking for trouble. Blacklist entry with
affected BIOS info might be acceptable, but...
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
next prev parent reply other threads:[~2015-08-17 13:27 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-17 8:29 [PATCH] x86, suspend: Save/restore THERM_CONTROL register for suspend Chen Yu
2015-08-17 10:11 ` Ingo Molnar
2015-08-17 11:43 ` Chen, Yu C
2015-08-17 13:27 ` Pavel Machek [this message]
2015-08-18 2:23 ` Yu Chen
2015-08-18 8:02 ` Pavel Machek
2015-08-18 8:54 ` Yu Chen
2015-08-18 2:02 ` Yu Chen
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=20150817132726.GA11047@amd \
--to=pavel@ucw.cz \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pm@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=mingo@redhat.com \
--cc=rjw@rjwysocki.net \
--cc=rui.zhang@intel.com \
--cc=tglx@linutronix.de \
--cc=x86@kernel.org \
--cc=yu.c.chen@intel.com \
/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).